控制命令¶
1.说明¶
通过串口和蓝牙两种方式,向GUI Builder制作的应用/表盘发送指令。固件接收并解析,会执行指令所对应的事件。
由于内置的事件处理可能无法满足用户的需求,此时需要用户自行添加事件与行为的处理。参照文档:GUI Builder 事件-行为
2. 控制协议¶
目前给用于预留了一套协议以及处理流程,在此我们以自定义格式的协议进行说明。用户如果有自定义的协议,可以参照当前的处理方式来修改。
2.1 协议格式¶
字段名称 |
header |
data_len |
cmd |
param |
crc |
tail |
|---|---|---|---|---|---|---|
字节长度 |
2 |
1 |
dynamic |
dynamic |
2 |
2 |
默认值 |
55 AA |
AA 55 |
||||
含义 |
帧头 |
数据段长度 |
命令码 |
参数 |
数据段校验 |
帧尾 |
数据段内容:
cmd:命令码,此长度为动态长度。与GUI工具中设置的命令码进行匹配。
param:命令参数,当此参数的内容为空时,会使用工具中配置的参数。比如工具命令要设置运动目标为600,当此参数值为400,则发送此命令以后会设置运动目标为400。
2.2 代码说明¶
配置文件:
solution\components\app_tool\app_tool_uart_custom.c
#define SFAT_UART_FRAME_HEADER_LEN 2
#define SFAT_UART_FRAME_DATA_LEN 1
#define SFAT_UART_FRAME_CRC_LEN 2
#define SFAT_UART_FRAME_TAIL_LEN 2
#define SFAT_UART_FRAME_HEADER 0x55AA
#define SFAT_UART_FRAME_TAIL 0xAA55
固件当中配置的宏定义需要保持和协议中的长度相同。
#define SFAT_UART_FRAME_CRC_CHECK(data, total_count, crc) (combine_buffer_hex(&data[total_count - SFAT_UART_FRAME_CRC_LEN - SFAT_UART_FRAME_TAIL_LEN], SFAT_UART_FRAME_CRC_LEN) == crc)
/*CRC校验无效*/
if (false == (SFAT_UART_FRAME_CRC_CHECK(data, total_count, sfat_crc16(&data[SFAT_UART_FRAME_HEADER_LEN + SFAT_UART_FRAME_DATA_LEN], data_len))))
{
return false;
}
由于不同客户的CRC校验方式不同,长度也可能不同,所以在此宏定义了一个CRC的校验。用户请根据需求修改代码中的校验计算方式。
如果保持定义的协议格式与示例的协议格式相同,可以根据此格式自行修改任意字段的长度。需要修改的代码部分仅仅上诉内容中的宏定义字段长度与CRC校验方式。
3. 串口配置¶
3.1 代码说明¶
配置文件:《app_tool_uart.h》
#define SFAT_UART_NAME "uart2" //串口驱动的名称
#define SFAT_UART_BAUD_RATE 1000000 //串口波特率
#define SFAT_UART_DATA_MAX_LEN 1024 //串口接收包最大长度
代码中将串口名配置到uart2,所以需要到HCPU的menuconfig中去使能uart2。

3.2 使用方式¶
用户需要根据自己的硬件设计,在工程的pinmux中添加串口引脚的配置。将配置的串口引脚与外部串口设备进行连接,设备在接收到串口消息以后,会按照协议规则进行解析并应用。
HAL_PIN_Set(PAD_PA29, USART2_RXD, PIN_PULLUP, 1); //将PA29配置为串口RX
HAL_PIN_Set(PAD_PA28, USART2_TXD, PIN_PULLUP, 1); //将PA28配置为串口TX
4. 蓝牙配置¶
4.1 代码说明¶
使用默认配置,有需改需求请联系管理员。
4.2 使用方式¶


打开sifli demo app,并连接目标设备的蓝牙。 点击‘PUSH APP MSG’进入消息推送页面。


点击‘SELECT CMDS’进入文件管理页面,选中文件《BleCommands.json》,这个文件中配置了控制命令的内容,app会根据json文件自动生成发送命令的按键。用户可以按照此格式自行修改控件命令。
{
"title": "App Commands",
"list": [
{
"name": "豆粉+",
"command": "55AA08534245414E4144440325AA55"
},
{
"name": "豆粉-",
"command": "55AA08534245414E5355427EA2AA55"
},
{
"name": "奶泡+",
"command": "55AA08534D494C4B4144441F10AA55"
},
]
}