sentry_chassis_hzz/modules/master_machine/seasky_protocol.h

37 lines
1.0 KiB
C
Raw Normal View History

2022-11-03 20:38:55 +08:00
#ifndef __SEASKY_PROTOCOL_H
#define __SEASKY_PROTOCOL_H
#include <stdio.h>
2022-12-12 22:29:51 +08:00
#include <stdint.h>
2022-11-03 20:38:55 +08:00
#define PROTOCOL_CMD_ID 0XA5
2022-11-12 18:03:18 +08:00
#define OFFSET_BYTE 8 // 出数据段外,其他部分所占字节数
2022-11-03 20:38:55 +08:00
typedef struct
{
struct
{
uint8_t sof;
uint16_t data_length;
2022-11-12 18:03:18 +08:00
uint8_t crc_check; // 帧头CRC校验
} header; // 数据帧头
uint16_t cmd_id; // 数据ID
uint16_t frame_tail; // 帧尾CRC校验
2022-11-03 20:38:55 +08:00
} protocol_rm_struct;
2022-11-03 20:38:55 +08:00
/*更新发送数据帧,并计算发送数据帧长度*/
2022-11-12 18:03:18 +08:00
void get_protocol_send_data(uint16_t send_id, // 信号id
2022-11-03 20:38:55 +08:00
uint16_t flags_register, // 16位寄存器
2022-11-12 18:03:18 +08:00
float *tx_data, // 待发送的float数据
2022-11-03 20:38:55 +08:00
uint8_t float_length, // float的数据长度
2022-11-12 18:03:18 +08:00
uint8_t *tx_buf, // 待发送的数据帧
uint16_t *tx_buf_len); // 待发送的数据帧长度
2022-11-03 20:38:55 +08:00
/*接收数据处理*/
2022-11-12 18:03:18 +08:00
uint16_t get_protocol_info(uint8_t *rx_buf, // 接收到的原始数据
uint16_t *flags_register, // 接收数据的16位寄存器地址
uint8_t *rx_data); // 接收的float数据存储地址
2022-11-03 20:38:55 +08:00
#endif