11import socket
22import threading
33import time
4+ import datetime
45
56import cv2
67
@@ -42,20 +43,20 @@ def send_command(self, command: str, query: bool = False):
4243 self .socket .sendto (command .encode ('utf-8' ), self .te_address )
4344 # 显示确认消息
4445 if self .debug is True :
45- print ('Sending command : {}' .format (command ))
46+ print ('发送命令 : {}' .format (command ))
4647
4748 # 检查命令是否超时(基于MAX_TIME_OUT中的值)
4849 start = time .time ()
4950 while not self .log [- 1 ].got_response (): # 在日志中未收到任何响应的情况下运行
5051 now = time .time ()
5152 difference = now - start
5253 if difference > self .MAX_TIME_OUT :
53- print ('Connection timed out !' )
54+ print ('连接超时 !' )
5455 break
5556
5657 # 打印出无人机响应
5758 if self .debug is True and query is False :
58- print ('Response : {}' .format (self .log [- 1 ].get_response ()))
59+ print ('响应 : {}' .format (self .log [- 1 ].get_response ()))
5960
6061 def _receive_thread (self ):
6162 while True :
@@ -64,7 +65,7 @@ def _receive_thread(self):
6465 self .response , ip = self .socket .recvfrom (1024 )
6566 self .log [- 1 ].add_response (self .response )
6667 except socket .error as exc :
67- print ('Socket error : {}' .format (exc ))
68+ print ('错误 : {}' .format (exc ))
6869
6970 def _video_thread (self ):
7071 # 创建流捕获对象
@@ -74,17 +75,24 @@ def _video_thread(self):
7475 ret , frame = cap .read ()
7576 cv2 .imshow ('DJI Tello' , frame )
7677
77- # 如果按Esc键,视频流关闭
7878 k = cv2 .waitKey (1 ) & 0xFF
79+
80+ # 如果按Esc键,视频流关闭
7981 if k == 27 :
8082 break
83+
84+ # 如果按F1键,截图到当前位置
85+ if k == 0 :
86+ str_now = datetime .datetime .now ().strftime ('%Y.%m.%d-%H:%M:%S' )
87+ png_name = str_now + '.png'
88+ cv2 .imwrite (png_name , frame )
8189 cap .release ()
8290 cv2 .destroyAllWindows ()
8391
8492 def wait (self , delay : float ):
8593 # 显示等待消息
8694 if self .debug is True :
87- print ('Waiting {} seconds ...' .format (delay ))
95+ print ('等待 {} 秒 ...' .format (delay ))
8896
8997 # 日志条目增加了延迟
9098 self .log .append (Stats ('wait' , len (self .log )))
@@ -289,31 +297,31 @@ def get_sn(self):
289297 return self .log [- 1 ].get_response ()
290298
291299 def get_height (self ):
292- """获取高度"""
300+ """获取高度,新版本中已停用 """
293301 self .send_command ('height?' , True )
294302 return self .log [- 1 ].get_response ()
295303
296304 def get_temp (self ):
297- """获取温度"""
305+ """获取温度,新版本中已停用 """
298306 self .send_command ('temp?' , True )
299307 return self .log [- 1 ].get_response ()
300308
301309 def get_attitude (self ):
302- """获取飞行姿态"""
310+ """获取飞行姿态,新版本中已停用 """
303311 self .send_command ('attitude?' , True )
304312 return self .log [- 1 ].get_response ()
305313
306314 def get_baro (self ):
307- """获取压力"""
315+ """获取压力,新版本中已停用 """
308316 self .send_command ('baro?' , True )
309317 return self .log [- 1 ].get_response ()
310318
311319 def get_acceleration (self ):
312- """获取加速度"""
320+ """获取加速度,新版本中已停用 """
313321 self .send_command ('acceleration?' , True )
314322 return self .log [- 1 ].get_response ()
315323
316324 def get_tof (self ):
317- """获取飞行时间"""
325+ """获取飞行时间,新版本中已停用 """
318326 self .send_command ('tof?' , True )
319327 return self .log [- 1 ].get_response ()
0 commit comments