前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dji RoboMaster Tello SDK封装.2

Dji RoboMaster Tello SDK封装.2

作者头像
云深无际
发布2021-03-30 17:05:28
7100
发布2021-03-30 17:05:28
举报
文章被收录于专栏:云深之无迹云深之无迹

显示视频流的功能,可能用了线程会好一些

其实可以用队列来实现,后面可能会写相关的一些实现

这个就是我们万事第一步,连接。具体可以看上面的初始化

和SDK里面的说法是对应的

对偶操作,关闭视频流

而且更新一次流状态

在SDK里面有所体现

注意看第一个的响应,一定是OK。然后下面的操作都才会有意义

这个是对移动的指令的打包,如果自己想重新打包也可以。

我对ESP32的扩展器没有做封装,后面再做封装

使用指令的时候,对比官方的SDK里面的取值范围

对里面的控制命令的封装,最新的SDK又有了新的指令,我可能有没有封装到位的,可以自己去封装。下文会有安装的方法

参考的SDK,以上的设置类的主要参考资料

读取的指令都是一样的,只是它的命令不一样

以及还有若干指令未封装,就像SN,SDK的号码什么的。

代码语言:javascript
复制
 def get_log(self):
     return self.log
 def close(self):
     self.socket.close()
 # 告诉飞机进入SDK控制模式
 def command(self):
     self.send_command('command')
 def takeoff(self):
     self.send_command('takeoff')
 def land(self):
     self.send_command('land')
 def downvision(self):
     self.send_command('downvision 1')
 # 此时打开下视摄像头
 def streamon(self):
     self.send_command('streamon')
     # 首先打开视频流的功能
     self.stream_state = True
     # 将视频流的状态更新一次
     self.video_thread = threading.Thread(target=self._video_thread)
     # 这个函数看我初始化的代码
     self.video_thread.daemon = True
     self.video_thread.start()
 def streamoff(self):
     self.stream_state = False
     self.send_command('streamoff')
 def emergency(self):
     self.send_command('emergency')
 # 移动指令
 def up(self, dist: int):
     self.send_command('up {}'.format(dist))
 def down(self, dist: int):
     self.send_command('down {}'.format(dist))
 def left(self, dist: int):
     self.send_command('left {}'.format(dist))
 def right(self, dist: int):
     self.send_command('right {}'.format(dist))
 def forward(self, dist: int):
     self.send_command('forward {}'.format(dist))
 def back(self, dist: int):
     self.send_command('back {}'.format(dist))
 def cw(self, degr: int):
     self.send_command('cw {}'.format(degr))
 def ccw(self, degr: int):
     self.send_command('ccw {}'.format(degr))
 def flip(self, direc: str):
     self.send_command('flip {}'.format(direc))
 def go(self, x: int, y: int, z: int, speed: int):
     self.send_command('go {} {} {} {}'.format(x, y, z, speed))
 def curve(self, x1: int, y1: int, z1: int, x2: int, y2: int, z2: int,
     self.send_command('curve {} {} {} {} {} {} {}'.format(
         x1, y1, z1, x2, y2, z2, speed))
 # 设置指令
 def set_speed(self, speed: int):
     self.send_command('speed {}'.format(speed))
     # 设置熟读
 def rc_control(self, a: int, b: int, c: int, d: int):
     self.send_command('rc {} {} {} {}'.format(a, b, c, d))
     # 这个rc指令是对于自动控制必须有的
 def set_wifi(self, ssid: str, passwrd: str):
     self.send_command('wifi {} {}'.format(ssid, passwrd))
 def station(self, ssid: str, passwrd: str):
     self.send_command('ap {} {}'.format(ssid, passwrd))
 def wifisetchannel(self, xxx: int):
     self.send_command('wifisetchannel {}'.format(xxx))
 def mon(self):
     self.send_command('mon')
 def moff(self):
     self.send_command('moff')
 def mdirection(self, x: int):
     self.send_command('mdirection {}'.format(x))
 # 读取指令
 def get_speed(self):
     self.send_command('speed?', True)
     return self.log[-1].get_response()
 def get_battery(self):
     self.send_command('battery?', True)
     return self.log[-1].get_response()
 def get_time(self):
     self.send_command('time?', True)
     return self.log[-1].get_response()
 def get_height(self):
     self.send_command('height?', True)
     return self.log[-1].get_response()
 def get_temp(self):
     self.send_command('temp?', True)
     return self.log[-1].get_response()
 def get_attitude(self):
     self.send_command('attitude?', True)
     return self.log[-1].get_response()
 def get_baro(self):
     self.send_command('baro?', True)
     return self.log[-1].get_response()
 def get_acceleration(self):
     self.send_command('acceleration?', True)
     return self.log[-1].get_response()
 def get_tof(self):
     self.send_command('tof?', True)
     return self.log[-1].get_response()
 def get_wifi(self):
     self.send_command('wifi?', True)
     return self.log[-1].get_response()

都加入了日志功能,加到log里面

这个是读取命令的SDK,同上。参考资料

这里其实还有对ESP32的命令的集成,我没有写。

有空再写,就是体力活

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档