FishBot底盘通讯协议V1.0.0.220806_beta
-
FishBot底盘通讯协议V1.0.0.220806_beta
本协议基于V1.0.0.2200621_alpha进行改进,相比之下数据帧协议保持不变,数据段进行了添加,主要添加内容如下。
数据编号:
- 0x01-左右轮编码器
- 0x02-IMU传感器
- 0x03-速度控制数据
- 0x04-PID设置
- 0x05-版本信息
- 0x06-WIFI配置
- 0x07-设备控制
- 0x08-通讯模式设置
/** * @brief 数据ID定义 * */ typedef enum { DATA_ENCODER = 0x01, // 0x01-左右轮编码器 DATA_IMU, // 0x02-IMU传感器 DATA_SPEED, // 0x03-速度控制数据 DATA_PID, // 0x04-PID设置 DATA_VER_INFO, // 0x05-版本信息 DATA_WIFI_CONFIG, // 0x06-WIFI配置 DATA_DEV_CONTROL, // 0x07-设备控制 DATA_PROTO_MODE, // 0x08-通讯模式设置 } __attribute__((packed)) proto_data_id_t;
数据操作:
- 0X01,反馈数据(底盘向主控)
- 0X02,命令数据(主控向底盘)
新增数据协议
新增协议1: WIFI配置
/**************************************设备控制数据结构*******************************************/ /** * @brief WIFI配置结构体 * */ typedef struct { wifi_mode_t wifi_mode; char ssid[16]; char password[24]; } __attribute__((packed)) proto_wifi_config_t;
数据总数 数据编号n 数据长度 数据操作 数据 0x01 0X06 0X00 0X29 0X02 0X00 0X01 0X00 0X02 ... 新增协议2:设备控制
/**************************************设备控制数据结构*******************************************/ /** * @brief 设备编号 * */ typedef enum { DEVICE_MOTION_CONTROL = 0x01, // 0x01 运动控制板 DEVICE_LASER_CONTROL, // 雷达转接控制板 DEVICE_POWER_CONTROL, // 电源管理板 } __attribute__((packed)) proto_device_id_t; /** * @brief 对设备的操作 * */ typedef enum { DEIVCE_RESTART = 0x01, // 0x01 重启设备 DEVICE_SHUTDOWN, // 使得设备关机 DEVICE_SLEEP, // 使设备进入休眠状态 } __attribute__((packed)) proto_device_operation_t; /** * @brief 设备控制结构体 * */ typedef struct { proto_device_id_t id; proto_device_operation_t operation; } __attribute__((packed)) proto_device_control_t;
数据总数 数据编号n 数据长度 数据操作 数据 0x01 0X07 0X00 0X02 0X02 0X00 0X01 新增协议3:通讯模式设置
struct { uint8_t mode; uint16_t baut; uint16_t ip; char ip[16]; }
数据总数 数据编号n 数据长度 数据操作 数据 0x01 0X08 0X00 0X15 0X02 0X00 0X01 0X00 0X02 ... V1.0.0.220621未实现协议
协议3:PID
数据总数 数据编号n 数据长度 数据操作 数据 0x01 0X04 0X00 0X06 0X01/0X02 0X00 0X01 0X00 0X02 0X00 0X03 协议4:版本
软硬件版本以ASCII明文传输
数据总数 数据编号1 数据长度 数据操作 数据 0x01 0X05 0X00 0X04 0X01/0X02 硬件版本,软件版本(ASCII) 小思考
1.将通信方式切换为FishBot为服务端模式,如果是STA模式则可以直接连接OLED上的IP即可,如果是AP模式亦可。 2.关于LaserBoard,如果使用服务端模式(没有OLED,如何显示,进配置模式,通过串口查看?还是说连接FBMC进行显示) WIFI启动顺序: 开机优先进入STA模式,STA失败后自动进入AP模式 作为SERVER无需管客户端的IP地址是什么,所以只需要配置wifi的用户名密码即可(SmartConfig OR AP配置)。 断线重连工作来到了PC端。