控制命令

一、说明

GUI Builder支持串口和蓝牙两种控制方式。由于不同的客户需求不同,可能会对此部分做一些修改。

二、控制协议

目前存在两套协议格式以及处理流程,一套是SiFli定义的内部通信格式,一套是预留给客户的自定义格式。 在此我们以自定义格式的协议进行说明。

1.协议格式

字段名称

header

data_len

cmd

param

crc

tail

字节长度

2

1

dynamic

dynamic

2

2

默认值

55 AA

AA 55

含义

帧头

数据段长度

命令码

参数

数据段校验

帧尾

数据段内容:\

  1. cmd:命令码,此长度为动态长度。与GUI工具中设置的命令码进行匹配。\

  2. param:命令参数,当此参数的内容为空时,会使用工具中配置的参数。比如工具命令要设置运动目标为600,当此参数值为400,则发送此命令以后会设置运动目标为400。

2.代码说明

配置文件:《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校验方式。

三、串口配置

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。

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

四、蓝牙配置

1.代码说明

使用默认配置,有需改需求请联系管理员。

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"
    },
  ]
}