75 lines
1.6 KiB
C
75 lines
1.6 KiB
C
/*
|
|
视觉与电控通信协议
|
|
协议中 主要包含了 数据帧 和CRC校验
|
|
其中数据帧用了自定义的结构体 在结构体中修改所需要的数据域的内容
|
|
*/
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define HEAD (0xFF)
|
|
#define TAIL (0xFE)
|
|
|
|
#define NAVI (0x05)
|
|
#define PICK (0x06)
|
|
|
|
#define TEAM_RED (0x01)
|
|
#define TEAM_BLUE (0x02)
|
|
|
|
|
|
typedef uint8_t Protocol_ID_t;
|
|
|
|
/* 电控 -> 视觉 MCU数据结构体*/
|
|
typedef struct __attribute__((packed)) {
|
|
|
|
int remain;
|
|
} Protocol_UpDataMCU_t;
|
|
/* 视觉 -> 电控 底盘数据结构体*/
|
|
typedef struct __attribute__((packed)) {
|
|
|
|
Protocol_ID_t recv_id;//作为帧头使用确认通信ID正确
|
|
uint8_t status; /* 控制命令 */
|
|
|
|
struct __attribute__((packed)) {
|
|
float posy; /*pitch轴*/
|
|
float posx; /*yaw轴*/
|
|
char cmd;
|
|
float dis; /*距离*/
|
|
}pick;
|
|
|
|
struct __attribute__((packed)) {
|
|
float vx; /* x轴移动速度 */
|
|
float vy; /* y轴移动速度 */
|
|
float wz; /* z轴转动速度 */
|
|
}navi;
|
|
|
|
} Protocol_DownDataChassis_t;
|
|
|
|
/* 视觉 -> 电控 上层机构数据结构体*/
|
|
typedef struct __attribute__((packed)) {
|
|
|
|
uint8_t status; /* 控制命令 */
|
|
|
|
} Protocol_DownDataUpper_t;
|
|
|
|
|
|
typedef struct __attribute__((packed)) {
|
|
Protocol_UpDataMCU_t data;
|
|
} Protocol_UpPackageMCU_t;
|
|
|
|
|
|
typedef struct __attribute__((packed)) {
|
|
Protocol_DownDataChassis_t data;
|
|
} Protocol_DownPackageChassis_t;
|
|
|
|
typedef struct __attribute__((packed)) {
|
|
Protocol_DownDataUpper_t data;
|
|
} Protocol_DownPackageUpper_t;
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|