98 lines
2.6 KiB
Plaintext
98 lines
2.6 KiB
Plaintext
|
上位机说明
|
|||
|
由于MTU限制,建议采用分小包发送的方式进行数据读写,即上位机需要控制写入和读取的长度,不能过长,一般不超过20个字节
|
|||
|
SERVER UUID:0X00FF
|
|||
|
|
|||
|
1. 写参数设置:
|
|||
|
发送命令到UUID:0XFF01
|
|||
|
格式:0xf0 byte1 byte2 byte3 ...数据(小端)
|
|||
|
功能码 写地址 数据长度 数据
|
|||
|
|
|||
|
(1)电流:
|
|||
|
起始地址:0x0180
|
|||
|
总长度:0x0a
|
|||
|
数据结构:
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
uint16_t magic;
|
|||
|
struct _ch
|
|||
|
{
|
|||
|
uint16_t ad_4ma;
|
|||
|
uint16_t ad_20ma;
|
|||
|
} ch[2];
|
|||
|
} cal_4_20ma_t;
|
|||
|
|
|||
|
|
|||
|
(2)流量
|
|||
|
起始地址:0x0188
|
|||
|
总长度:0x14
|
|||
|
数据结构:
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
int16_t flow_min;
|
|||
|
int16_t flow_max;
|
|||
|
} ad_flow_cal_t;
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
uint16_t magic;
|
|||
|
uint16_t input_type;
|
|||
|
int16_t min_flow[2];
|
|||
|
ad_flow_cal_t ad_cal[2];
|
|||
|
uint16_t pulse_coef[2];
|
|||
|
uint16_t rsv[6];
|
|||
|
} flow_config_t;
|
|||
|
|
|||
|
(3)深度
|
|||
|
起始地址:0x0198
|
|||
|
总长度:0x1e
|
|||
|
数据结构:
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
uint16_t magic;
|
|||
|
uint8_t input_type; // 0:正交 1:正交反向 2:方向脉冲 3:方向脉冲反向
|
|||
|
uint8_t port; // 编码器端口
|
|||
|
uint16_t N; //编码器系数分子
|
|||
|
uint16_t M; //编码器系数分母
|
|||
|
// int pluse_coef; // 脉冲系数0.001mm
|
|||
|
int16_t min_depth; // 最小深度 mm
|
|||
|
int16_t max_depth; // 最大深度 mm
|
|||
|
int16_t sample_depth; // 采样深度 mm
|
|||
|
int16_t depth_offset; // 默认深度偏移
|
|||
|
int16_t min_valid_depth; // 最小有效深度
|
|||
|
int16_t inc_pile_depth; // 允许换桩深度
|
|||
|
uint16_t current_on_threshold; // 行走电机开启电流
|
|||
|
uint16_t current_off_threshold; // 行走电机关闭电流
|
|||
|
uint16_t move_on_duratino; // 持续时间
|
|||
|
uint16_t move_off_duration; // 持续时间
|
|||
|
uint16_t move_current_channel; //行走电流通道
|
|||
|
} depth_config_t;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
2. 读:
|
|||
|
发送命令到UUID:0XFF01
|
|||
|
格式:0xf1 byte1 byte2 byte3
|
|||
|
功能码 地址 长度
|
|||
|
监听UUID:0xff01即可得到数据
|
|||
|
读取得到的数据前面包含发送的信息(发送的命令 + 数据),读取者需要自行处理前面多的数据
|
|||
|
|
|||
|
|
|||
|
3. 上报实时数据:
|
|||
|
接受端需要开启上报,发送0xF2命令到UUID:0XFF01
|
|||
|
之后监听UUID:0XFF02即可得到实时数据
|
|||
|
|
|||
|
|
|||
|
|
|||
|
下位机说明
|
|||
|
1. 如需添加上报数据,在 ble_gatts_server.c文件的notify_all_data 函数中添加即可
|
|||
|
2. 如需响应上位机的控制,例如开始和暂停按键,则需要在 stm32/ModbusS.c 中的 ModBusWordWriteHook 函数中添加写入特定值的响应操作
|
|||
|
目前只实现的配置参数保存的响应,其他的没有实现
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|