inavflight之mspdji协议天空端请求报文(代码片段)

lida2003 lida2003     2022-12-07     196

关键词:

iNavFlight之MSP DJI协议天空端请求报文

MSP DJI协议是用于DJI天空端与飞控端之间的通信协议,其工作模式符合C/S经典设计。

这里我们重点介绍下天空端请求报文格式和命令。

1. 报文格式(请求)

  +---+---+--------+---------+--------+------+-------------+------------------------------+-------------+
  |                            Multiwii Serial Protocol V2                    length = 9 + payload size |
  +---+---+--------+---------+--------+------+-------------+------------------------------+-------------+
  | $ | X |    <   | flag(1) | cmd(2)        | size(2) = 0 | payload(16bit len)           | checksum_v2 |
  +---+---+--------+---------+--------+------+-------------+------------------------------+-------------+
  • ‘$’:表示SOF(Start Of a frame)
  • ‘X’:表示V2
  • ‘<’: 表示request

2. 报文标志(flag)

请求报文:MSP_RESULT_ACK //截止发稿日

// return positive for ACK, negative on error, zero for no reply
typedef enum 
    MSP_RESULT_ACK = 1,
    MSP_RESULT_ERROR = -1,
    MSP_RESULT_NO_REPLY = 0
 mspResult_e;

3. 报文命令(cmd)

#define DJI_MSP_API_VERSION             1    // 
#define DJI_MSP_FC_VARIANT              2    // 
#define DJI_MSP_FC_VERSION              3    // 
#define DJI_MSP_NAME                    10   // For OSD 'Craft Name'
#define DJI_MSP_OSD_CONFIG              84   // OSD item count + positions
#define DJI_MSP_FILTER_CONFIG           92   //
#define DJI_MSP_PID_ADVANCED            94   //
#define DJI_MSP_STATUS                  101  // For OSD ‘armingTime’, Flight controller arming status
#define DJI_MSP_RC                      105  //
#define DJI_MSP_RAW_GPS                 106  // For OSD ‘GPS Sats’ + coordinates
#define DJI_MSP_COMP_GPS                107  // GPS direction to home & distance to home
#define DJI_MSP_ATTITUDE                108  // For OSD ‘Angle: roll & pitch’
#define DJI_MSP_ALTITUDE                109  // For OSD ‘Numerical Vario’
#define DJI_MSP_ANALOG                  110  // For OSD ‘RSSI Value’, For OSD ‘Battery voltage’ etc
#define DJI_MSP_RC_TUNING               111  //
#define DJI_MSP_PID                     112  // For OSD ‘PID roll, yaw, pitch'
#define DJI_MSP_BATTERY_STATE           130  // For OSD ‘Battery current mAh drawn’ etc
#define DJI_MSP_ESC_SENSOR_DATA         134  // For OSD ‘ESC temperature’
#define DJI_MSP_STATUS_EX               150  // For OSD ‘Fly mode', For OSD ‘Disarmed’
#define DJI_MSP_RTC                     247  // For OSD ‘RTC date time’

4. 参考资料

【1】iNavFlight之MSP DJI协议分析
【2】BetaFlight模块设计之三十二:MSP协议模块分析
【3】iNavFlight之MSP DJI协议飞控端请求应答

inavflight之mspdji协议分析(代码片段)

iNavFlight之MSPDJI协议分析1.iNav串行口通信1.1iNav串口任务1.2调用逻辑2.iNav串行抽象2.1框架代码2.2MSP(DJI)协议处理3.DJI协议相关实现3.1DJI串口初始化3.2DJI命令集3.3.DJI相关函数4.参考资料MSPDJI协议主要是为了解决如何将飞控内部信息传送... 查看详情

inavflight之rc遥控msp协议(代码片段)

iNavFlight之RC遥控MSP协议1.RC摇杆MSP协议2.地面站配置&MSP遥控器2.1iNav地面站-配置2.2iNav地面站-MSP遥控器3.RC摇杆总体逻辑框架3.1摇杆信息获取3.2摇杆信息处理3.3摇杆处理初始化4.RC摇杆代码设计框架4.1场景分析4.2模块化抽象5.MSP摇... 查看详情

inavflight之电传mavlink协议(代码片段)

iNavFlight之电传MAVLink协议1.业务逻辑框架2.MAVLink电传报文2.1MAVLink电传报文格式2.2iNav支持地面站报文(接收)2.3iNav支持飞控报文(发送)3.MAVLink报文处理4.参考资料本章重点介绍iNav飞控的MAVLink电传协议。关于【电传框架设计】这里我们... 查看详情

inavflight之rc遥控crsf协议(代码片段)

iNavFlight之RC遥控CRSF协议1.遥控器电传框架设计1.1场景分析1.2逻辑框架1.2.1电传信息获取1.2.2电传信息处理1.2.3电传初始化1.3模块化设计2.CRSF电传报文2.1CRSF电传报文格式2.2CRSF电传报文内容2.2.1CRSF_FRAMETYPE_ATTITUDE2.2.2CRSF_FRAMETYPE_BATTERY_SE... 查看详情

inavflight之mspv2sensor报文格式(代码片段)

iNavFlight之MSPv2Sensor报文格式1.MSPv2传感报文介绍2.MSPv2协议格式3.MSPv2传感代码流程4.MSPv2传感器4.1光流传感报文-MSP2_SENSOR_RANGEFINDER4.2测距传感报文-MSP2_SENSOR_OPTIC_FLOW4.3GPS传感报文-MSP2_SENSOR_GPS4.4磁力计传感报文-MSP2_SENSOR_COMPASS4.5气压计 查看详情

javaee:http协议之请求报文响应报文

1HTTP协议特点1)客户端->服务端(请求request)有三部份 a)请求行b)请求头c)请求的内容,如果没有,就是空白字符2)服务端->客户端(响应response)有三部a)响应行 b)响应头 c)响应的内容,如果没有,就是空白字符*2HTTP请求头和响应头... 查看详情

网络编程之协议

为计算机网络中进行数据交换而建立的规则、标准或约定的集合。UDP面向无连接,数据不安全,速度快。不区分客户端与服务端。TCP  *面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。三次握手:客户端先... 查看详情

javaweb之http协议

1.Http协议针对网络上的客户端与服务端在进行通信的时候双方遵循的一种规范2.版本1.0请求数据,服务器会返回,将断开连接1.1请求数据,服务器返回后,连接继续保持3.请求数据解释请求行请求方请求地址协议版本请求头Accept... 查看详情

网络七层协议之部分协议详解

网络七层协议由上到下分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。主要介绍以下4层:1)链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接... 查看详情

java网络编程之udp网络编程

...、UDP网络通信1、类DatagramSocket和DatagramPacket实现了基于UDP协议网络程序。2、UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。3、DatagramPacket对象封... 查看详情

服务端测试实战之rpc协议(代码片段)

...过在企业的应用中,除了RESTAPI的接口,还有gRPC的协议,主要应用于金融以及货币交易等领域,当然不仅仅如此,gRPC协议是一个高性能ÿ 查看详情

计算机网路之arp协议初见

今天在做题的时候发现ARP协议不是很懂,于是我去搜了一些资料,学习了一下,这里记录一下自己的总结。 一、为什么会有ARP协议的产生呢?答:这是因为在直接相连的网络中,两个节点是利用彼此的MAC地址互相传送帧的。... 查看详情

tcp和udp的区别

...UDP的区别?什么是TCPTCP(TransmissionControlProtocol传输控制协议)是⼀种⾯向连接的,可靠的,基于字节流的传输通信协议。1、tcp(TransmissionControlProtocol传输控制协议)2、传输层协议3、原因:应⽤层需要可靠的连接&#... 查看详情

http之基础

简介HTTP协议(HyperTextTransferProtocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。工作原理TTP协... 查看详情

springboot项目之websocket消息推送

...https://www.cnblogs.com/jingmoxukong/p/7755643.html)了解计算机网络协议的人,应该都知道:HTTP协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求做出应答处理。这... 查看详情

tcp/ip中的传输层协议tcpudp

...则常用于让广播和细节控制交给应用的通信传输。传输层协议根据IP数据报判断最终的接收端应用程序。TCP/IP的众多应用协议大多以客户端/服务端的形式运行。客户端是请求的发起端,而服务端表示提供服务的意思,是请求的处... 查看详情

python网络编程—tcp套接字之http传输(代码片段)

HTTP协议(超文本传输协议) 1.用途:网页获取,数据的传输  2.特点: 应用层协议,传输层使用tcp传输简单,灵活,很多语言都有HTTP专门接口无状态,协议不记录传输内容http1.1支持持久连接,丰富了请求类型3.网... 查看详情

http协议之请求协议

一.请求协议格式:请求首行;//请求方式请求路径协议和版本,例如:GET/index.htmlHTTP/1.1请求头信息;//请求头名称:请求头内容,即为key:value格式,例如:Host:localhost空行;//用来与请求体分隔开请求体;//GET没有请求体,只有POST有请求... 查看详情