feat: 新增激光定时关闭与姿态角持续输出测试功能,编码转UTF-8
1. 激光定时自动关闭:默认10分钟,laser on启动计时,超时自动关并上报 2. laser time <min>可配置定时分钟数,0=关闭定时 3. att on/off持续输出姿态角(Pitch/Roll/Yaw),不注册不低功耗 4. 20个源文件从GB2312编码转为UTF-8 with BOM
This commit is contained in:
+124
-122
@@ -1,13 +1,13 @@
|
||||
/* 传感器通用通讯协议V1.0*/
|
||||
/* 传感器通用通讯协议V1.0*/
|
||||
|
||||
#ifndef __SGCP_H
|
||||
#define __SGCP_H
|
||||
#include "bsp.h"
|
||||
|
||||
#define WORK_MODE 1 //工作模式选择,0、本机为查询模式,1、本机为上报模式(低功耗)
|
||||
#define SGCP_SELECT 1 //协议选择,0、本机为单个主设备接多个子设备,1、本机为单个主设备不接子设备,2、本机为单个子设备
|
||||
#define WORK_MODE 1 //工作模式选择,0、本机为查询模式,1、本机为上报模式(低功耗)
|
||||
#define SGCP_SELECT 1 //协议选择,0、本机为单个主设备接多个子设备,1、本机为单个主设备不接子设备,2、本机为单个子设备
|
||||
|
||||
typedef struct {//网关与主设备固定帧
|
||||
typedef struct {//网关与主设备固定帧
|
||||
uint8_t Header;
|
||||
uint8_t GWAddr[6];
|
||||
uint8_t MDAddr[6];
|
||||
@@ -15,56 +15,56 @@ typedef struct {//
|
||||
uint16_t PayloadLen;
|
||||
}__attribute__ ((packed))GatewayFrameHeader_t,*GatewayFrameHeader;
|
||||
|
||||
typedef struct {//主设备与子设备固定帧
|
||||
typedef struct {//主设备与子设备固定帧
|
||||
uint8_t Header;
|
||||
uint8_t Addr;
|
||||
uint8_t Cmd;
|
||||
uint8_t PayloadLen;
|
||||
}__attribute__ ((packed))SubsetFrameHeader_t,*SubsetFrameHeader;
|
||||
|
||||
typedef struct {//内部指令固定帧
|
||||
typedef struct {//内部指令固定帧
|
||||
uint8_t Header;
|
||||
uint8_t MAC[6];
|
||||
uint8_t Cmd;
|
||||
uint8_t PayloadLen;
|
||||
}__attribute__ ((packed))InsideFrameHeader_t,*InsideFrameHeader;
|
||||
|
||||
typedef struct {//主设备固定包头
|
||||
uint8_t BatLevel; //电池电量
|
||||
int8_t RSSI; //信号强度
|
||||
int8_t Nsr; //信噪比
|
||||
typedef struct {//主设备固定包头
|
||||
uint8_t BatLevel; //电池电量
|
||||
int8_t RSSI; //信号强度
|
||||
int8_t Nsr; //信噪比
|
||||
}__attribute__ ((packed))MasterDev_T,*MasterDevDp;
|
||||
|
||||
typedef struct {//0x0006 三维连续变形
|
||||
int16_t PitchAngle; //俯仰角 (范围±900)单位0.1°
|
||||
int16_t RollAngle; //横滚角 (范围±900)单位0.1°
|
||||
int16_t YawAngle; //偏航角 (范围0~3600)单位0.1°
|
||||
typedef struct {//0x0006 三维连续变形
|
||||
int16_t PitchAngle; //俯仰角 (范围±1800)单位0.1°
|
||||
int16_t RollAngle; //横滚角 (范围±1800)单位0.1°
|
||||
int16_t YawAngle; //偏航角 (范围0~3600)单位0.1°
|
||||
}__attribute__ ((packed))ContDefor3D_T,*ContDefor3DDp;
|
||||
|
||||
typedef struct {//0x0007 通讯单元
|
||||
typedef struct {//0x0007 通讯单元
|
||||
MasterDev_T MasterDev;
|
||||
}__attribute__ ((packed))CommUnit_T,*CommUnitDp;
|
||||
|
||||
typedef struct {//0x0008 三维应力
|
||||
int16_t PitchAngle; //俯仰角(范围±900)单位0.1°
|
||||
int16_t RollAngle; //横滚角(范围±900)单位0.1°
|
||||
int16_t YawAngle; //偏航角(范围0~3600)单位0.1°
|
||||
int32_t Strain1; //X轴应力值(范围±10MPa,单位Pa)
|
||||
int32_t Strain2; //Y轴应力值(范围±10MPa,单位Pa)
|
||||
int32_t Strain3; //Z轴应力值(范围±10MPa,单位Pa)
|
||||
typedef struct {//0x0008 三维应力
|
||||
int16_t PitchAngle; //俯仰角(范围±900)单位0.1°
|
||||
int16_t RollAngle; //横滚角(范围±900)单位0.1°
|
||||
int16_t YawAngle; //偏航角(范围0~3600)单位0.1°
|
||||
int32_t Strain1; //X轴应力值(范围±10MPa,单位Pa)
|
||||
int32_t Strain2; //Y轴应力值(范围±10MPa,单位Pa)
|
||||
int32_t Strain3; //Z轴应力值(范围±10MPa,单位Pa)
|
||||
}__attribute__ ((packed))Force3D_T,*Force3DDp;
|
||||
|
||||
typedef struct {//0x0009 激光示踪
|
||||
typedef struct {//0x0009 激光示踪
|
||||
MasterDev_T MasterDev;
|
||||
int16_t PitchAngle; //俯仰角 (范围±900)单位0.1°
|
||||
int16_t RollAngle; //横滚角 (范围±900)单位0.1°
|
||||
int16_t YawAngle; //偏航角 (范围0~3600)单位0.1°
|
||||
int16_t PitchAngle; //俯仰角 (范围±900)单位0.1°
|
||||
int16_t RollAngle; //横滚角 (范围±900)单位0.1°
|
||||
int16_t YawAngle; //偏航角 (范围0~3600)单位0.1°
|
||||
}__attribute__ ((packed))LaserTracing_T,*LaserTracingDp;
|
||||
|
||||
typedef struct {//0x000E 裂缝仪
|
||||
int16_t XwiseDist; //横向位移量(范围0~150mm)
|
||||
int16_t LgthwysDist; //纵向位移距离(范围0~150mm)
|
||||
int16_t RotationDist; //旋转位移距离(范围0~150mm)
|
||||
typedef struct {//0x000E 裂缝仪
|
||||
int16_t XwiseDist; //横向位移量(范围0~150mm)
|
||||
int16_t LgthwysDist; //纵向位移距离(范围0~150mm)
|
||||
int16_t RotationDist; //旋转位移距离(范围0~150mm)
|
||||
}__attribute__ ((packed))Crack_T,*CrackDp;
|
||||
|
||||
typedef struct {
|
||||
@@ -73,9 +73,9 @@ typedef struct {
|
||||
Force3D_T Force3D;
|
||||
Crack_T Crack;
|
||||
LaserTracing_T LaserTracing;
|
||||
}__attribute__ ((packed))DeviceData_T,*DeviceDp; //设备数据
|
||||
}__attribute__ ((packed))DeviceData_T,*DeviceDp; //设备数据
|
||||
|
||||
/*接收子设备数据状态机*/
|
||||
/*接收子设备数据状态机*/
|
||||
typedef enum {
|
||||
SUB_STATUS_IDLE,
|
||||
SUB_STATUS_BROADCAST_CALI,
|
||||
@@ -89,7 +89,7 @@ typedef enum {
|
||||
SUB_STATUS_BROADCAST_SYNC_TIME,
|
||||
}SubStatus_m;
|
||||
|
||||
/*接收网关数据状态机*/
|
||||
/*接收网关数据状态机*/
|
||||
typedef enum {
|
||||
GW_STATUS_IDLE,
|
||||
GW_STATUS_WAIT_SUBIDLE,
|
||||
@@ -99,13 +99,13 @@ typedef enum {
|
||||
GW_STATUS_READ_SENSOR,
|
||||
GW_STATUS_SET_COL_TIME,
|
||||
GW_STATUS_SYNC_TIME,
|
||||
GW_STATUS_UPLOAD_SENSOR,//主动上报模式时会使用该状态
|
||||
GW_STATUS_WAIT_UPLOAD,//主动上报模式时会使用该状态
|
||||
GW_STATUS_LASER_STARES,//激光状态回应
|
||||
GW_STATUS_UPLOAD_SENSOR,//主动上报模式时会使用该状态
|
||||
GW_STATUS_WAIT_UPLOAD,//主动上报模式时会使用该状态
|
||||
GW_STATUS_LASER_STARES,//激光状态回应
|
||||
GW_STATUS_SIGNAL,
|
||||
GW_STATUS_WAIT_SIGNAL,
|
||||
}GWStatus_m;
|
||||
/*接收主设备数据状态机*/
|
||||
/*接收主设备数据状态机*/
|
||||
typedef enum {
|
||||
MAS_STATUS_IDLE,
|
||||
MAS_STATUS_CALI,
|
||||
@@ -114,81 +114,81 @@ typedef enum {
|
||||
MAS_STATUS_SET_COL_TIME,
|
||||
MAS_STATUS_SYNC_TIME,
|
||||
}MasStatus_m;
|
||||
/*内部指令数据状态机*/
|
||||
/*内部指令数据状态机*/
|
||||
typedef enum {
|
||||
IN_STATUS_IDLE,
|
||||
IN_STATUS_UPDATE,
|
||||
IN_STATUS_ALTER_485ADDR,
|
||||
}InStatus_m;
|
||||
/*网关到主设备命令集*/
|
||||
/*网关到主设备命令集*/
|
||||
typedef enum {
|
||||
GWTOMD_CMD_LOGIN = 0x00, //0x00,设备注册
|
||||
GWTOMD_CMD_CALI = 0x01, //0x01, 校准指令
|
||||
GWTOMD_CMD_READ_UPLOAD_SENSOR = 0x02, //0x02,读取数据指令or上传数据指令
|
||||
GWTOMD_CMD_SET_COL_TIME = 0x05, //0x05,设置采集时间间隔
|
||||
GWTOMD_CMD_SYNC_TIME = 0x06, //0x06,时间同步
|
||||
GWTOMD_CMD_SET_LASER = 0x08,//打开or关闭激光
|
||||
GWTOMD_CMD_LOGIN = 0x00, //0x00,设备注册
|
||||
GWTOMD_CMD_CALI = 0x01, //0x01, 校准指令
|
||||
GWTOMD_CMD_READ_UPLOAD_SENSOR = 0x02, //0x02,读取数据指令or上传数据指令
|
||||
GWTOMD_CMD_SET_COL_TIME = 0x05, //0x05,设置采集时间间隔
|
||||
GWTOMD_CMD_SYNC_TIME = 0x06, //0x06,时间同步
|
||||
GWTOMD_CMD_SET_LASER = 0x08,//打开or关闭激光
|
||||
GWTOMD_CMD_SIGNAL = 0x09,
|
||||
}GWTOMD_CMD_M;
|
||||
|
||||
/*主设备到子设备命令集*/
|
||||
/*主设备到子设备命令集*/
|
||||
typedef enum {
|
||||
MDTOSD_CMD_CALI = 0x01, //0x01, 校准指令
|
||||
MDTOSD_CMD_READ_DATA = 0x02, //0x02,读取数据指令
|
||||
MDTOSD_CMD_INQUIRE = 0x03, //0x03, 设备查询指令
|
||||
MDTOSD_CMD_SET_COL_TIME = 0x05, //0x05,设置采集时间间隔
|
||||
MDTOSD_CMD_SYNC_TIME = 0x06, //0x06,时间同步
|
||||
MDTOSD_CMD_CALI = 0x01, //0x01, 校准指令
|
||||
MDTOSD_CMD_READ_DATA = 0x02, //0x02,读取数据指令
|
||||
MDTOSD_CMD_INQUIRE = 0x03, //0x03, 设备查询指令
|
||||
MDTOSD_CMD_SET_COL_TIME = 0x05, //0x05,设置采集时间间隔
|
||||
MDTOSD_CMD_SYNC_TIME = 0x06, //0x06,时间同步
|
||||
}MDTOSD_CMD_M;
|
||||
/*内部指令命令集*/
|
||||
/*内部指令命令集*/
|
||||
typedef enum {
|
||||
INSIDE_CMD_UPDATE = 0x81, //0x81,升级程序下发请求,由主机发起,从机应答
|
||||
INSIDE_CMD_ALTER_485ADDR = 0x04, //0x04, 设置设备485地址
|
||||
INSIDE_CMD_UPDATE = 0x81, //0x81,升级程序下发请求,由主机发起,从机应答
|
||||
INSIDE_CMD_ALTER_485ADDR = 0x04, //0x04, 设置设备485地址
|
||||
}INSIDE_CMD_M;
|
||||
/*设备类型*/
|
||||
/*设备类型*/
|
||||
typedef enum {
|
||||
NUL, //0x0000 空设备
|
||||
FORCE_6D, //0x0001 六维应力
|
||||
OSMOTIC_PRESSURE, //0x0002 渗透压
|
||||
ELASTIC_WAVEGUIDE, //0x0003 弹性波导
|
||||
DIELECTRIC_MASS, //0x0004 介电质普
|
||||
_0x0005, //0x0005 保留
|
||||
CONT_DEFOR_3D, //0x0006 三维连续变形
|
||||
COMM_UNIT, //0x0007 通讯单元
|
||||
FORCE_3D, //0x0008 三维应力
|
||||
LASER_TRACING, //0x0009 激光示踪
|
||||
_0x000A, //0x000A 保留
|
||||
_0x000B, //0x000B 保留
|
||||
_0x000C, //0x000C 保留
|
||||
MULTI_PARAMETER_FUSION, //0x000D 多参数融合
|
||||
CRACK_DETECTION, //0x000E 裂缝仪
|
||||
_0x000F, //0x000F 保留
|
||||
ATTITUDE_MONITOR, //0x0010 姿态检测
|
||||
LASER_DISPLACE, //0x0011 激光位移
|
||||
REBAR_STRESS, //0x0012 钢筋应力
|
||||
ANCHOR_ROD_STRESS, //0x0013 锚杆轴力
|
||||
SURFACE_STRESS, //0x0014 表面应力
|
||||
PRESSURE, //0x0015 压力
|
||||
MICROWAVE_DISPLACE, //0x0016 微波测距
|
||||
NUL, //0x0000 空设备
|
||||
FORCE_6D, //0x0001 六维应力
|
||||
OSMOTIC_PRESSURE, //0x0002 渗透压
|
||||
ELASTIC_WAVEGUIDE, //0x0003 弹性波导
|
||||
DIELECTRIC_MASS, //0x0004 介电质普
|
||||
_0x0005, //0x0005 保留
|
||||
CONT_DEFOR_3D, //0x0006 三维连续变形
|
||||
COMM_UNIT, //0x0007 通讯单元
|
||||
FORCE_3D, //0x0008 三维应力
|
||||
LASER_TRACING, //0x0009 激光示踪
|
||||
_0x000A, //0x000A 保留
|
||||
_0x000B, //0x000B 保留
|
||||
_0x000C, //0x000C 保留
|
||||
MULTI_PARAMETER_FUSION, //0x000D 多参数融合
|
||||
CRACK_DETECTION, //0x000E 裂缝仪
|
||||
_0x000F, //0x000F 保留
|
||||
ATTITUDE_MONITOR, //0x0010 姿态检测
|
||||
LASER_DISPLACE, //0x0011 激光位移
|
||||
REBAR_STRESS, //0x0012 钢筋应力
|
||||
ANCHOR_ROD_STRESS, //0x0013 锚杆轴力
|
||||
SURFACE_STRESS, //0x0014 表面应力
|
||||
PRESSURE, //0x0015 压力
|
||||
MICROWAVE_DISPLACE, //0x0016 微波测距
|
||||
}DEVICE_TYPE_M;
|
||||
/*通讯方式*/
|
||||
/*通讯方式*/
|
||||
typedef enum {
|
||||
LORA = 0x01, //0x01 LORA通讯
|
||||
RS485 = 0x02, //0x02 RS485通讯
|
||||
RS232 = 0x03, //0x03 RS232通讯
|
||||
CAN = 0x04, //0x04 CAN通讯
|
||||
CATONE = 0x05, //0x05 _4G通讯
|
||||
BLE = 0x06, //0x06 BLE通讯
|
||||
WIFI = 0x07, //0x07 WIFI通讯
|
||||
UART = 0x08, //0x08 UART通讯
|
||||
LORA = 0x01, //0x01 LORA通讯
|
||||
RS485 = 0x02, //0x02 RS485通讯
|
||||
RS232 = 0x03, //0x03 RS232通讯
|
||||
CAN = 0x04, //0x04 CAN通讯
|
||||
CATONE = 0x05, //0x05 _4G通讯
|
||||
BLE = 0x06, //0x06 BLE通讯
|
||||
WIFI = 0x07, //0x07 WIFI通讯
|
||||
UART = 0x08, //0x08 UART通讯
|
||||
}COMM_WAY_M;
|
||||
/*设备标志*/
|
||||
/*设备标志*/
|
||||
typedef enum {
|
||||
MASTER = 0x000000, //0x000000 主设备
|
||||
SUBSET = 0x800000, //0x800000 子设备
|
||||
MASTER = 0x000000, //0x000000 主设备
|
||||
SUBSET = 0x800000, //0x800000 子设备
|
||||
}DEVICE_SIGN_M;
|
||||
typedef struct {
|
||||
__IO GWTOMD_CMD_M rCmdGWToMD; //网关下发命令
|
||||
__IO GWTOMD_CMD_M sCmdMDToGW; //主设备返回命令
|
||||
__IO GWTOMD_CMD_M rCmdGWToMD; //网关下发命令
|
||||
__IO GWTOMD_CMD_M sCmdMDToGW; //主设备返回命令
|
||||
__IO uint16_t rPayLen;
|
||||
__IO bool HeaderFrame;
|
||||
__IO uint8_t RxLen;
|
||||
@@ -196,8 +196,8 @@ typedef struct {
|
||||
}GWTOMD_Rx_T;
|
||||
|
||||
typedef struct {
|
||||
__IO MDTOSD_CMD_M rCmdSDToMD; //子设备返回命令
|
||||
__IO MDTOSD_CMD_M sCmdMDToSD; //主设备下发命令
|
||||
__IO MDTOSD_CMD_M rCmdSDToMD; //子设备返回命令
|
||||
__IO MDTOSD_CMD_M sCmdMDToSD; //主设备下发命令
|
||||
__IO uint8_t rPayLen;
|
||||
__IO bool HeaderFrame;
|
||||
__IO uint8_t RxLen;
|
||||
@@ -215,12 +215,12 @@ typedef struct {
|
||||
GWTOMD_Rx_T GWRS485Rx;
|
||||
uint8_t GatewayBuffLen;
|
||||
uint8_t GatewayBuff[256];
|
||||
uint8_t GatewayRevTimeoutCnt; //网关串口接收超时计数
|
||||
uint8_t GatewayRevTimeoutCnt; //网关串口接收超时计数
|
||||
|
||||
MDTOSD_Rx_T SDRS485Rx;
|
||||
uint8_t SubsetBuffLen;
|
||||
uint8_t SubsetBuff[256];
|
||||
uint8_t SubsetRevTimeoutCnt; //子设备串口接收超时计数
|
||||
uint8_t SubsetRevTimeoutCnt; //子设备串口接收超时计数
|
||||
|
||||
uint8_t InsidePayLen;
|
||||
uint8_t InsideBuffLen;
|
||||
@@ -236,45 +236,47 @@ typedef struct {
|
||||
|
||||
DeviceData_T DevData;
|
||||
|
||||
bool SubsetCaliOk; //子设备校准标志位
|
||||
bool MasterCaliOk; //主设备标校标志位
|
||||
bool SubsetCaliOk; //子设备校准标志位
|
||||
bool MasterCaliOk; //主设备标校标志位
|
||||
|
||||
uint8_t ReadDataAdd; //获取数据地址
|
||||
uint16_t DeviceDataLen; //在线设备采集到的数据长度总和
|
||||
uint8_t DeviceDataBuff[512]; //在线设备采集到的数据缓存(主设备的数据永远排在最前面)
|
||||
uint8_t DeviceData[512]; //在线设备采集到的数据(主设备的数据永远排在最前面)
|
||||
bool SubsetReadDataOk; //子设备读取数据成功标志位
|
||||
bool DeviceReadDataOk; //设备读取数据完成标志位
|
||||
uint8_t ReadDataAdd; //获取数据地址
|
||||
uint16_t DeviceDataLen; //在线设备采集到的数据长度总和
|
||||
uint8_t DeviceDataBuff[512]; //在线设备采集到的数据缓存(主设备的数据永远排在最前面)
|
||||
uint8_t DeviceData[512]; //在线设备采集到的数据(主设备的数据永远排在最前面)
|
||||
bool SubsetReadDataOk; //子设备读取数据成功标志位
|
||||
bool DeviceReadDataOk; //设备读取数据完成标志位
|
||||
|
||||
uint8_t DeviceN; //在线设备数量(最多32个子设备,1个主设备)
|
||||
uint8_t Dev485Addr; //在线设备485地址(最多32个子设备,1个主设备)
|
||||
uint8_t Dev485Addrs[16]; //在线设备485地址缓存,0位为0x00广播地址
|
||||
uint8_t DeviceMAC[16][6]; //在线设备的唯一MAC地址(主设备的MAC永远排在最前面)
|
||||
bool SubsetMACOk; //在线子设备MAC获取成功标志位
|
||||
bool DeviceMACOk; //在线设备获取完成标志位
|
||||
uint8_t DeviceN; //在线设备数量(最多32个子设备,1个主设备)
|
||||
uint8_t Dev485Addr; //在线设备485地址(最多32个子设备,1个主设备)
|
||||
uint8_t Dev485Addrs[16]; //在线设备485地址缓存,0位为0x00广播地址
|
||||
uint8_t DeviceMAC[16][6]; //在线设备的唯一MAC地址(主设备的MAC永远排在最前面)
|
||||
bool SubsetMACOk; //在线子设备MAC获取成功标志位
|
||||
bool DeviceMACOk; //在线设备获取完成标志位
|
||||
|
||||
bool CollTimeSetOk; //采集时间设置成功标志位
|
||||
uint8_t CollTimeAdd; //设置采集时间地址
|
||||
bool CollTimeSetOk; //采集时间设置成功标志位
|
||||
uint8_t CollTimeAdd; //设置采集时间地址
|
||||
|
||||
bool SyncTimeOk; //时间同步成功标志位
|
||||
uint8_t SyncTimeAdd; //时间同步设备地址
|
||||
bool SyncTimeOk; //时间同步成功标志位
|
||||
uint8_t SyncTimeAdd; //时间同步设备地址
|
||||
|
||||
bool BroadCmd; //广播命令
|
||||
bool BroadCmd; //广播命令
|
||||
|
||||
bool LoginOk; //注册成功标志位
|
||||
bool LoginOk; //注册成功标志位
|
||||
bool LoginMess;
|
||||
|
||||
bool UploadOk; //上传成功标志位
|
||||
bool UploadOk; //上传成功标志位
|
||||
bool UploadMess;
|
||||
|
||||
bool Gateway_IRQ_Status; //网关接收中断
|
||||
bool Subset_IRQ_Status; //子设备接收中断
|
||||
bool TimingAcquisition; //采集传感器数据
|
||||
bool Gateway_IRQ_Status; //网关接收中断
|
||||
bool Subset_IRQ_Status; //子设备接收中断
|
||||
bool TimingAcquisition; //采集传感器数据
|
||||
|
||||
/**激光示踪私有**/
|
||||
bool LaserOnOff; //打开与关闭激光标志位
|
||||
/**激光示踪私有**/
|
||||
bool LaserOnOff; //打开与关闭激光标志位
|
||||
int8_t SignalRSSI;
|
||||
int8_t SignalSNR;
|
||||
uint8_t LaserTimerMinutes; //激光定时关闭分钟数
|
||||
uint16_t LaserTimerCount; //激光定时计数(RTC 30s)
|
||||
}SGCP_t;
|
||||
extern SGCP_t SGCP;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user