ping
Ping ํ
์คํธ
์กฐ์ข ๊ธฐ์ Ping์ ๋ณด๋ด๊ณ , Ack ์๋ต์ ๋ฐ์์ ํ๋ฉด์ ์ถ๋ ฅํ๋ ์์ ์ ๋๋ค.
sendPing() ํจ์๋ฅผ ํธ์ถํ๊ณ ์๋ต์ ๋ฐ์ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ sleep() ํจ์๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
๋ฐ์ดํฐ ์ก์์ ๊ณผ์ ์์ ๋ฌธ์ ๊ฐ ์๊ฒจ Ack๋ฅผ ๋ฐ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์์ผ๋ฏ๋ก 1์ด ๋์ ์๋ต์ด ์์ผ๋ฉด ์์ ์ฒ๋ฆฌ๋ฅผ ์ข ๋ฃํ๊ฒ ํ์์ต๋๋ค.
from time import sleep
from e_drone.drone import *
from e_drone.protocol import *
if __name__ == '__main__':
drone = Drone(False)
drone.open()
drone.sendPing(DeviceType.Controller)
timeStart = time.time()
while True:
sleep(0.01)
dataType = drone.check()
if dataType == DataType.Ack:
ack = drone.getData(DataType.Ack)
print("{0} / {1} / {2:04X}".format(ack.dataType.name, ack.systemTime, ack.crc16))
print("T: {0}".format(time.time() - timeStart))
break;
# 1์ด ๋์ ์๋ต์ด ์์ ๊ฒฝ์ฐ ์๋ต ํ์ธ์ ๋น ์ ธ๋๊ฐ
if time.time() > timeStart + 1:
print("Time Over")
break;
drone.close()
Ping ํ
์คํธ(์ด๋ฒคํธ ํจ์ ๋ฑ๋ก)
์กฐ์ข ๊ธฐ์ Ping์ ๋ณด๋ด๊ณ , Ack ์๋ต์ ๋ฐ์์ ํ๋ฉด์ ์ถ๋ ฅํ๋ ์์ ์ ๋๋ค.
์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์๋ฅผ ๋ง๋ค์ด setEventHandler(DataType, function)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฑ๋กํ๋ฉด ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ๋ ๋ฏธ๋ฆฌ ์ฐ๊ฒฐํ ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
๋ง์ง๋ง sleep(0.1)์ Ping ์ ์ก ํ Ack ์๋ต์ด ๋ค์ด์ฌ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ธฐ ์ํด ์ฌ์ฉํ์์ต๋๋ค.
from time import sleep
from e_drone.drone import *
from e_drone.protocol import *
def eventAck(ack):
print("eventAck()")
print("{0} / {1} / {2:04X}".format(ack.dataType.name, ack.systemTime, ack.crc16))
if __name__ == '__main__':
drone = Drone()
drone.open()
# ์ด๋ฒคํธ ํธ๋ค๋ง ํจ์ ๋ฑ๋ก
drone.setEventHandler(DataType.Ack, eventAck)
# Ping ์ ์ก
drone.sendPing(DeviceType.Controller)
sleep(0.1)
drone.close()
Last updated