为了方便开发者了解我司的地面站产品,我们编写了关于地面站调参软件和SDK的使用文档。通过阅读地面站调参软件的使用文档,开发者能更加全面地了解地面站的强大功能。通过阅读SDK的使用文档,开发者可以通过对应的接口来获取地面站的物理通道数据(摇杆、旋钮、拨轮、按键、三档开关、急停开关)、SBUS数据、电量、链路的信号强度等。
监控界面实时更新地面站的物理通道数据和两路SBUS数据,物理通道数据包括地面站所有的物理开关,SBUS数据包括16个通道的数据。
SBUS设置界面为SBUS的16个通道提供舵机相位取反、中点微调、舵机行程量、失控保护设置和通道映射功能。
相位取反功能可以对相应SBUS通道的输出值进行取反。
行程量可以改变相应SBUS通道的输出范围,默认行程量为[-100,100],**行程量为[-150,150]。
失控保护设置可以打开相应SBUS通道的失控保护开关并设置相应的失控保护输出值,用于链路断开后输出指定值。
通道映射功能用于将物理开关和软件虚拟的开关映射到相对应的通道。
通道保持界面实时更新SBUS数据,使能一个三档开关,设置该开关的不同档位需要保持的通道,当开关打到对应档位时,打勾选中的SBUS通道的输出值会一直保持不变。
按键设置界面提供了组合键设置、超级组合键设置和按键属性设置功能。
为了满足客户的需求,组合键和超级组合键是由软件虚拟的,多个按键组合形成的,为SBUS数据设计的一种特殊的映射关系。
组合键通常由两个按键进行组合,设置对应的单步增量,当组合按键按下时,增加或减少相应SBUS通道的输出值。
超级组合键由最多6个按键组合,设置对应的输出值,当超级组合按键按下时,相应SBUS通道的输出值会一直保持对应按键设置的输出值。
按键属性设置同样由软件虚拟的,是一种只作用于SBUS数据的功能,提供单态、双态、三态三种属性。单态属性按键则是正常使用的非自锁按键;双态属性将按键虚拟成自锁按键,有按下锁定,再按下解锁两种状态;三态属性将按键虚拟成三档开关,有上、中、下三种档位。
综合设置界面提供了HID设置、油门保持、蜂鸣器设置、波特率设置、SBUS设置和获取设备信息的功能。
地面站提供了USB HID设备,该设备支持HID游戏手柄和HID通讯模式两种模式,通过地面站调参软件可以设置相应的模式,HID游戏手柄模式还支持修改通道映射,不同的模式有不同的PID和VID,具体参数和通讯协议参考HID Device页面。
油门保持设置可以使能一个三档开关,设置档位、油门保持值、恢复速度、保持速度。当开关切换到对应的档位时,SBUS1数据的通道3会输出固定的油门保持值。
蜂鸣器设置包括空闲报警和低电压报警设置。空闲报警可以设置一个时间,当所有的物理开关没有变化时,超过设定的时间后,地面站的蜂鸣器会工作,从而提醒用户操作地面站设备。操作地面站设备后,蜂鸣器会停止工作。
低压报警设置可以设置一个电压值,当地面站的工作电压低于设置值时,地面站的蜂鸣器会工作,从而提醒用户及时为地面站设备进行充电。当地面站的工作电压超过设置值后,蜂鸣器会停止工作。
波特率设置可以修改透传链路的传输波特率,默认波特率是115200。观察链路的信号强度。
SBUS设置提供SBUS输出状态设置、SBUS优先级和协议设置和SBUS控制开关设置功能。
SBUS输出状态设置可以设置SBUS1输出状态和SBUS2输出状态。
SBUS优先级和协议设置可以设置SBUS优先级,优先级范围为[0,15],数值越大,优先级越高。当多个地面站连接同一个天空端时,SBUS会输出优先级高的数据,优先级高的SBUS数据丢失后,SBUS会输出优先级低的数据。当所有的SBUS数据全丢失了,SBUS才会输出最后更新的失控保护数据。SBUS协议支持SBUS1.0和SBUS2.0协议,默认输出SBUS2.0协议。
SBUS控制开关可以设置一个开关,设置对应的档位,当开关切换到对应的档位时,用于实时控制SBUS的输出状态和外部SBUS的输入状态。当前只有T40地面站支持外部SBUS输入功能。地面站使用的SBUS协议下载如下:
华之翼电台SBUS协议.docx
关于设备可以获取当前链路的所有设备的固件信息,包括地面站固件、模组固件和天空端固件信息。
图传设置支持模块电源控制和通过物理开关控制模块电源,支持重置地面端模块参数和天空端模块参数,支持模块参数配置。
部分手持地面站(T30、T31、T40)支持模块电源控制功能,T20、T26手持地面站不支持该项功能。
重置地面端模块参数可以将手持地面站内置的模块参数恢复出厂设置。
在确保正常建链的情况下,重置天空端模块参数可以将天空端的模块参数恢复出厂设置。
模块参数配置功能支持配置模块内部参数,包括重启设备、秘钥设置、主从设置、跳频设置、上下行设置、**发射功率设置、建链组设置(带宽、功率、频点)、日志上报和AT指令配置。日志存储在安装目录的log文件夹里,当重新访问其他IP时,上次访问的log日志将会被清除。
自定义设置界面提供了自定义CAN协议和自定义串口协议的设置功能。该界面只支持D01系列的模组,目前地面站模组型号有图传模组和D01G模组,D01G模组兼容无链路版本。
自定义CAN协议设置提供以下功能:
可以设置D01G模组的输出模式,当输出模式设置为SBUS输出时,地面站为无链路版本,仅支持输出SBUS数据和透传数据;当输出模式设置为TTL或RS232时,则地面站为D01系列版本,配套D01M扩展坞使用,支持设置自定义CAN协议和自定义串口协议功能。
波特率设置可以修改D01M扩展坞的CAN接口的波特率,CAN输出设置可以设置D01M扩展坞的CAN接口输出状态,发送频率表示D01M扩展坞CAN接口的发送频率。
刷新按键可以获取D01M扩展坞当前设置的CAN协议。
增加按键和删除按键用于增加和删除自定义CAN协议。
进入数据解析界面,如下图所示。1个数据支持设置最多8个非线性映射或者1个线性映射。非线性映射主要由按键、三档开关、急停开关组成,而线性映射主要由摇杆、旋钮、拨轮组成。
自定义串口协议设置提供以下功能:
可以设置D01M扩展坞TTL接口和RS232接口的输出状态。
通道数据范围为[-10000,10000],默认是[0,1200],单位为short类型。
可以自定义协议的帧头和帧尾,D01M扩展坞的TTL接口和RS232接口的发送频率。
数据格式用于设置协议数据的解析方式,支持大端和小端模式。
校验模式支持和校验、异或校验、CRC16校验和CRC32校验。和校验和异或校验的校验码为1个字节,CRC16校验的校验码为2个字节,CRC32校验的校验码为4个字节。
D01M扩展坞的TTL接口和RS232接口输出的自定义串口协议格式如下:
帧头 | 数据长度 | 校验码 | 数据 | 帧尾 |
unsigned char | unsigned short | -- | unsigned char* | unsigned char |
数据长度为校验码的字节数加上数据的字节数。数据类型超过1个字节的以小端模式写入。
开发者可以通过地面站的端口来获取地面站的物理通道数据(摇杆、旋钮、拨轮、按键、三档开关、急停开关)、SBUS数据、电量、链路的信号强度等。
各地面站的端口表格如下:
T20 | Windows | 不支持 |
Linux | 不支持 | |
Android | ttyUSB1 | |
T26 | Windows | 支持 |
Linux | 不支持 | |
Android | 不支持 | |
T30 | Windows | COM5 |
Linux | ttyS2 | |
Android | 不支持 | |
T31 | Windows | COM5 |
Linux | ttyS2 | |
Android | 不支持 | |
T40 | Windows | COM5 |
Linux | ttyS2 | |
Android | 不支持 |
地面站T26的端口是外部USB转串口接入松下平板的USB接口,因此端口并不是固定的。所有的端口通讯的波特率为115200,8个数据位,1个停止位,无奇偶校验。
具体发送和接收的协议格式如下:
帧头 | 代码标识 | 数据长度 | 数据 | 帧尾 |
unsigned char | unsigned char | unsigned short | unsigned char* | unsigned char |
数据类型超过1个字节的,按小端模式写入。
获取地面站的物理通道数据和SBUS数据
请求协议格式如下:
帧头 | 代码标识 | 数据长度 | 数据Bn | 帧尾 | |
0xfa | 0xe5 | 0x01 | 0x00 | B0 | 0x5f |
B0: 请求发送数据的类型:
0x00 | 物理通道数据 |
0x01 | SBUS数据 |
0x02 | 物理通道数据和SBUS数据 |
返回协议格式如下:
帧头 | 代码标识 | 数据长度 | 数据Bn | 帧尾 | |
0xfa | 0xe5 | 0x01 | 0x00 | B0 | 0x5f |
B0: 返回值
0x00 | 请求成功 |
0xee | 请求失败 |
请求成功后,通过端口获取到相应数据类型的协议数据。具体协议格式下载如下:
地面站通道数据协议_V2.0.xlsx
获取地面站的当前电量和链路的信号强度
请求协议格式如下:
帧头 | 代码标识 | 数据长度 | 数据Bn | 帧尾 | |
0xfa | 0xad | 0x01 | 0x00 | B0 | 0x5f |
B0: 请求发送数据的类型:
0x00 | 关闭 |
0x01 | 打开 |
返回协议格式如下:
帧头 | 代码标识 | 数据长度 | 数据Bn | 帧尾 | |
0xfa | 0xad | 0x01 | 0x00 | B0 | 0x5f |
B0: 返回值
0x00 | 请求成功 |
0xee | 请求失败 |
请求成功后,通过端口获取到相应数据类型的协议数据。具体接收数据协议格式如下:
帧头 | 代码标识 | 数据长度 | 数据Bn | 帧尾 | |
0xfa | 0xad | 0x06 | 0x00 | B0 B1 B2 B3 B4 B5 | 0x5f |
B0: 电池电量整数部分
B1: 电池电量小数部分(不超过两位数)
B2: 电池电量百分比,0~100
B3 ~ B4: RSSI数值,最高位为符号位(1表示负值)
B5: RSSI百分比,0~100
地面站还可以通过USB HID设备来获取地面站物理通道数据,通过前面地面站调参软件的介绍,我们在综合设置可以看到关于HID设置的功能,可以发现HID设备有两种模式,分别是HID游戏手柄模式和HID通讯模式。
HID游戏手柄模式主要提供了通道映射功能,方便客户根据自己的使用习惯,通过HID设置修改通道映射,来实现改变游戏手柄的操作位置。缺点就是线性通道(摇杆、旋钮、拨轮)的数据最多为8个,所以如果地面站软件的线性通道超过8个,开发者往往不能从HID游戏手柄模式获取所有的物理通道数据。
HID通讯模式主要是针对开发者设计的,考虑到开发者可能需要通过USB HID设备来获取地面站的所有物理通道数据,当用户通过地面站调参软件,在综合设置处的HID设置HID通讯模式后,开发者能通过USB HID设备来获取地面站的所有物理通道数据。
不同的模式有不同的PID和VID,解析的协议也不一样,具体协议下载:
地面站USB_HID设备协议_V2.0.xlsx