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:
+11
-11
@@ -1,4 +1,4 @@
|
||||
#ifndef __ALGORITHM_H
|
||||
#ifndef __ALGORITHM_H
|
||||
#define __ALGORITHM_H
|
||||
|
||||
#include <math.h>
|
||||
@@ -11,20 +11,20 @@
|
||||
#define CRC16_BASE 0xA001
|
||||
|
||||
|
||||
// 峰值谷值检查结果结构体
|
||||
// 峰值谷值检查结果结构体
|
||||
typedef struct {
|
||||
bool peaks_positive; // 所有峰值是否大于0
|
||||
bool valleys_negative; // 所有谷值是否小于0
|
||||
int peak_count; // 检测到的峰值数量
|
||||
int valley_count; // 检测到的谷值数量
|
||||
bool peaks_positive; // 所有峰值是否大于0
|
||||
bool valleys_negative; // 所有谷值是否小于0
|
||||
int peak_count; // 检测到的峰值数量
|
||||
int valley_count; // 检测到的谷值数量
|
||||
} PeakValleyCheck;
|
||||
|
||||
// 趋势分析结果结构体
|
||||
// 趋势分析结果结构体
|
||||
typedef struct {
|
||||
double slope; // 线性斜率
|
||||
int sign_changes; // 符号变化次数
|
||||
char trend_type; // 趋势类型
|
||||
char steepness; // 陡峭度
|
||||
double slope; // 线性斜率
|
||||
int sign_changes; // 符号变化次数
|
||||
char trend_type; // 趋势类型
|
||||
char steepness; // 陡峭度
|
||||
} TrendResult;
|
||||
|
||||
PeakValleyCheck check_peaks_valleys(int data[], int length);
|
||||
|
||||
+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;
|
||||
|
||||
|
||||
+5
-5
@@ -1,4 +1,4 @@
|
||||
#ifndef __UPDATE_H
|
||||
#ifndef __UPDATE_H
|
||||
#define __UPDATE_H
|
||||
|
||||
#include <stdint.h>
|
||||
@@ -23,14 +23,14 @@
|
||||
#define BOOT_PARA_ADDRESS (0x0001FC00)//(FLASH_BASE + BOOT_SIZE)
|
||||
#define BOOT_PARA_SIZE (FLASH_SECTOR_SIZE)
|
||||
|
||||
//主机下发升级请求载荷结构体
|
||||
//主机下发升级请求载荷结构体
|
||||
typedef struct {
|
||||
uint16_t PackageNum;
|
||||
uint32_t AppSize;
|
||||
uint32_t AppCrc32;
|
||||
}__attribute__ ((packed))UpDataRequset_t, *UDReq;
|
||||
|
||||
//帧头结构体
|
||||
//帧头结构体
|
||||
typedef struct {
|
||||
uint8_t Header;
|
||||
uint8_t DevMac[6];
|
||||
@@ -39,14 +39,14 @@ typedef struct {
|
||||
}__attribute__((packed))UpdateFrameHeader_t,*pUpdateFrameHeader;
|
||||
|
||||
|
||||
//输入接口函数定义,需根据接口重新定义
|
||||
//输入接口函数定义,需根据接口重新定义
|
||||
#define U_DBG_LOG(...) DBG_LOG(__VA_ARGS__)
|
||||
#define U_DELAY_MS(x) delay_ms(x)
|
||||
#define U_SYSTEM_TESET() SystemReset()
|
||||
#define SAVE_BOOT_PARA(addr) SAVE_APP_PARA(addr)
|
||||
#define READ_BOOT_PARA(addr) READ_APP_PARA(addr)
|
||||
|
||||
//输出接口
|
||||
//输出接口
|
||||
void Update(uint8_t *PayLoad);
|
||||
void UpdateInit(void);
|
||||
#endif
|
||||
+115
-115
@@ -1,4 +1,4 @@
|
||||
#ifndef _BSP_H
|
||||
#ifndef _BSP_H
|
||||
#define _BSP_H
|
||||
|
||||
#include <stdint.h>
|
||||
@@ -8,23 +8,23 @@
|
||||
#include "spi.h"
|
||||
#include "Update.h"
|
||||
|
||||
/*模块启用与关闭*/
|
||||
#define USE_DEBUG 1 //调试串口选择,0、关闭,1、启用
|
||||
#define USE_VBAT_AD 1 //电池电压AD获取选择,0、关闭,1、启用
|
||||
#define USE_WDT 1 //看门狗选择,0、关闭,1启用
|
||||
#define USE_EXFALSE 0 //外部FALSE存储选择,0、关闭,1、启用
|
||||
#define USE_LED 1 //状态灯选择,0、关闭,1、启用
|
||||
#define USE_RTC 1 //RTC时钟开关,0、关闭,1、开启
|
||||
/*模块启用与关闭*/
|
||||
#define USE_DEBUG 1 //调试串口选择,0、关闭,1、启用
|
||||
#define USE_VBAT_AD 1 //电池电压AD获取选择,0、关闭,1、启用
|
||||
#define USE_WDT 1 //看门狗选择,0、关闭,1启用
|
||||
#define USE_EXFALSE 0 //外部FALSE存储选择,0、关闭,1、启用
|
||||
#define USE_LED 1 //状态灯选择,0、关闭,1、启用
|
||||
#define USE_RTC 1 //RTC时钟开关,0、关闭,1、开启
|
||||
|
||||
#define USE_LPUART0 1 //LPUART0开关,0、关闭,1、启用
|
||||
#define USE_UART0 1 //UART0开关,0、关闭,1、启用
|
||||
#define USE_UART1 0 //UART0开关,0、关闭,1、启用
|
||||
#define USE_I2C0 1 //I2C0开关,0、关闭,1、启用
|
||||
#define USE_I2C1 1 //I2C1开关,0、关闭,1、启用
|
||||
#define USE_SPI0 1 //SPI1开关,0、关闭,1、启用
|
||||
#define USE_SPI1 0 //SPI1开关,0、关闭,1、启用
|
||||
#define USE_LPUART0 1 //LPUART0开关,0、关闭,1、启用
|
||||
#define USE_UART0 1 //UART0开关,0、关闭,1、启用
|
||||
#define USE_UART1 0 //UART0开关,0、关闭,1、启用
|
||||
#define USE_I2C0 1 //I2C0开关,0、关闭,1、启用
|
||||
#define USE_I2C1 1 //I2C1开关,0、关闭,1、启用
|
||||
#define USE_SPI0 1 //SPI1开关,0、关闭,1、启用
|
||||
#define USE_SPI1 0 //SPI1开关,0、关闭,1、启用
|
||||
|
||||
//#define USE_BOOTLOADER 1 //BOOTLOADER开关,0、关闭,1、启用
|
||||
//#define USE_BOOTLOADER 1 //BOOTLOADER开关,0、关闭,1、启用
|
||||
|
||||
//<<---------------------------- MCU -------------------------------->>
|
||||
//< UART0
|
||||
@@ -45,167 +45,167 @@
|
||||
#define UART1_RX_PIN GpioPin1
|
||||
#define UART1_RX_AF GpioAf3
|
||||
|
||||
//< 低功耗串口
|
||||
#define LPUart0_TxPortx GpioPortB //低功耗串口0通道
|
||||
#define LPUART0_TxPinx GpioPin10 //配置PB10为LPUART0_Tx
|
||||
//< 低功耗串口
|
||||
#define LPUart0_TxPortx GpioPortB //低功耗串口0通道
|
||||
#define LPUART0_TxPinx GpioPin10 //配置PB10为LPUART0_Tx
|
||||
#define LPUART0_TX_AF GpioAf4
|
||||
|
||||
#define LPUart0_RxPortx GpioPortB //低功耗串口0通道
|
||||
#define LPUART0_RxPinx GpioPin11 //配置PB11为LPUART0_Rx
|
||||
#define LPUart0_RxPortx GpioPortB //低功耗串口0通道
|
||||
#define LPUART0_RxPinx GpioPin11 //配置PB11为LPUART0_Rx
|
||||
#define LPUART0_RX_AF GpioAf3
|
||||
|
||||
//< SPI0
|
||||
#define SPI0_NSS_PORTx GpioPortA //NSSIO口
|
||||
#define SPI0_NSS_PINx GpioPin15 //配置PA04为NSS
|
||||
#define SET_SPI0_NSS() Gpio_SetIO(SPI0_NSS_PORTx, SPI0_NSS_PINx) //NSS拉高
|
||||
#define CLR_SPI0_NSS() Gpio_ClrIO(SPI0_NSS_PORTx, SPI0_NSS_PINx) //NSS拉低
|
||||
#define SPI0_NSS_PORTx GpioPortA //NSSIO口
|
||||
#define SPI0_NSS_PINx GpioPin15 //配置PA04为NSS
|
||||
#define SET_SPI0_NSS() Gpio_SetIO(SPI0_NSS_PORTx, SPI0_NSS_PINx) //NSS拉高
|
||||
#define CLR_SPI0_NSS() Gpio_ClrIO(SPI0_NSS_PORTx, SPI0_NSS_PINx) //NSS拉低
|
||||
#define SPI0_NSS_AF GpioAf1
|
||||
|
||||
#define SPI0_SCK_PORTx GpioPortB //SCKIO口
|
||||
#define SPI0_SCK_PINx GpioPin3 //配置PA05为SCK
|
||||
#define SET_SPI0_SCK() Gpio_SetIO(SPI0_SCK_PORTx, SPI0_SCK_PINx) //SCK拉高
|
||||
#define CLR_SPI0_SCK() Gpio_ClrIO(SPI0_SCK_PORTx, SPI0_SCK_PINx) //SCK拉低
|
||||
#define SPI0_SCK_PORTx GpioPortB //SCKIO口
|
||||
#define SPI0_SCK_PINx GpioPin3 //配置PA05为SCK
|
||||
#define SET_SPI0_SCK() Gpio_SetIO(SPI0_SCK_PORTx, SPI0_SCK_PINx) //SCK拉高
|
||||
#define CLR_SPI0_SCK() Gpio_ClrIO(SPI0_SCK_PORTx, SPI0_SCK_PINx) //SCK拉低
|
||||
#define SPI0_SCK_AF GpioAf1
|
||||
|
||||
#define SPI0_MISO_PORTx GpioPortB //MISOIO口
|
||||
#define SPI0_MISO_PINx GpioPin4 //配置PA06为MISO
|
||||
#define SET_SPI0_MISO() Gpio_SetIO(SPI0_MISO_PORTx, SPI0_MISO_PINx) //MISO拉高
|
||||
#define CLR_SPI0_MISO() Gpio_ClrIO(SPI0_MISO_PORTx, SPI0_MISO_PINx) //MISO拉低
|
||||
#define SPI0_MISO_PORTx GpioPortB //MISOIO口
|
||||
#define SPI0_MISO_PINx GpioPin4 //配置PA06为MISO
|
||||
#define SET_SPI0_MISO() Gpio_SetIO(SPI0_MISO_PORTx, SPI0_MISO_PINx) //MISO拉高
|
||||
#define CLR_SPI0_MISO() Gpio_ClrIO(SPI0_MISO_PORTx, SPI0_MISO_PINx) //MISO拉低
|
||||
#define SPI0_MISO_AF GpioAf1
|
||||
|
||||
#define SPI0_MOSI_PORTx GpioPortB //MOSIIO口
|
||||
#define SPI0_MOSI_PINx GpioPin5 //配置PA07为MOSI
|
||||
#define SET_SPI0_MOSI() Gpio_SetIO(SPI0_MOSI_PORTx, SPI0_MOSI_PINx) //MOSI拉高
|
||||
#define CLR_SPI0_MOSI() Gpio_ClrIO(SPI0_MOSI_PORTx, SPI0_MOSI_PINx) //MOSI拉低
|
||||
#define SPI0_MOSI_PORTx GpioPortB //MOSIIO口
|
||||
#define SPI0_MOSI_PINx GpioPin5 //配置PA07为MOSI
|
||||
#define SET_SPI0_MOSI() Gpio_SetIO(SPI0_MOSI_PORTx, SPI0_MOSI_PINx) //MOSI拉高
|
||||
#define CLR_SPI0_MOSI() Gpio_ClrIO(SPI0_MOSI_PORTx, SPI0_MOSI_PINx) //MOSI拉低
|
||||
#define SPI0_MOSI_AF GpioAf1
|
||||
|
||||
//< SPI1
|
||||
#define SPI1_NSS_PORTx GpioPortB //NSSIO口
|
||||
#define SPI1_NSS_PINx GpioPin12 //配置PB12为NSS
|
||||
#define SET_SPI1_NSS() Gpio_SetIO(SPI1_NSS_PORTx, SPI1_NSS_PINx) //NSS拉高
|
||||
#define CLR_SPI1_NSS() Gpio_ClrIO(SPI1_NSS_PORTx, SPI1_NSS_PINx) //NSS拉低
|
||||
#define SPI1_NSS_PORTx GpioPortB //NSSIO口
|
||||
#define SPI1_NSS_PINx GpioPin12 //配置PB12为NSS
|
||||
#define SET_SPI1_NSS() Gpio_SetIO(SPI1_NSS_PORTx, SPI1_NSS_PINx) //NSS拉高
|
||||
#define CLR_SPI1_NSS() Gpio_ClrIO(SPI1_NSS_PORTx, SPI1_NSS_PINx) //NSS拉低
|
||||
#define SPI1_NSS_AF GpioAf1
|
||||
|
||||
#define SPI1_SCK_PORTx GpioPortB //SCKIO口
|
||||
#define SPI1_SCK_PINx GpioPin3 //配置PB13为SCK
|
||||
#define SET_SPI1_SCK() Gpio_SetIO(SPI1_SCK_PORTx, SPI1_SCK_PINx) //SCK拉高
|
||||
#define CLR_SPI1_SCK() Gpio_ClrIO(SPI1_SCK_PORTx, SPI1_SCK_PINx) //SCK拉低
|
||||
#define SPI1_SCK_PORTx GpioPortB //SCKIO口
|
||||
#define SPI1_SCK_PINx GpioPin3 //配置PB13为SCK
|
||||
#define SET_SPI1_SCK() Gpio_SetIO(SPI1_SCK_PORTx, SPI1_SCK_PINx) //SCK拉高
|
||||
#define CLR_SPI1_SCK() Gpio_ClrIO(SPI1_SCK_PORTx, SPI1_SCK_PINx) //SCK拉低
|
||||
#define SPI1_SCK_AF GpioAf1
|
||||
|
||||
#define SPI1_MISO_PORTx GpioPortB //MISOIO口
|
||||
#define SPI1_MISO_PINx GpioPin4 //配置PB14为MISO
|
||||
#define SET_SPI1_MISO() Gpio_SetIO(SPI1_MISO_PORTx, SPI1_MISO_PINx) //MISO拉高
|
||||
#define CLR_SPI1_MISO() Gpio_ClrIO(SPI1_MISO_PORTx, SPI1_MISO_PINx) //MISO拉低
|
||||
#define SPI1_MISO_PORTx GpioPortB //MISOIO口
|
||||
#define SPI1_MISO_PINx GpioPin4 //配置PB14为MISO
|
||||
#define SET_SPI1_MISO() Gpio_SetIO(SPI1_MISO_PORTx, SPI1_MISO_PINx) //MISO拉高
|
||||
#define CLR_SPI1_MISO() Gpio_ClrIO(SPI1_MISO_PORTx, SPI1_MISO_PINx) //MISO拉低
|
||||
#define SPI1_MISO_AF GpioAf1
|
||||
|
||||
#define SPI1_MOSI_PORTx GpioPortB //MOSIIO口
|
||||
#define SPI1_MOSI_PINx GpioPin5 //配置PB15为MOSI
|
||||
#define SET_SPI1_MOSI() Gpio_SetIO(SPI1_MOSI_PORTx, SPI1_MOSI_PINx) //MOSI拉高
|
||||
#define CLR_SPI1_MOSI() Gpio_ClrIO(SPI1_MOSI_PORTx, SPI1_MOSI_PINx) //MOSI拉低
|
||||
#define SPI1_MOSI_PORTx GpioPortB //MOSIIO口
|
||||
#define SPI1_MOSI_PINx GpioPin5 //配置PB15为MOSI
|
||||
#define SET_SPI1_MOSI() Gpio_SetIO(SPI1_MOSI_PORTx, SPI1_MOSI_PINx) //MOSI拉高
|
||||
#define CLR_SPI1_MOSI() Gpio_ClrIO(SPI1_MOSI_PORTx, SPI1_MOSI_PINx) //MOSI拉低
|
||||
#define SPI1_MOSI_AF GpioAf1
|
||||
|
||||
//< I2C0
|
||||
#define I2C0_SCL_PORTx GpioPortF //SCL的GPIO通道
|
||||
#define I2C0_SCL_PINx GpioPin1 //SCL的通道位
|
||||
#define I2C0_SCL_PORTx GpioPortF //SCL的GPIO通道
|
||||
#define I2C0_SCL_PINx GpioPin1 //SCL的通道位
|
||||
#define I2C0_SCL_AF GpioAf1
|
||||
#define SET_I2C0_SCL() Gpio_SetIO(I2C0_SCL_PORTx, I2C0_SCL_PINx)
|
||||
#define CLR_I2C0_SCL() Gpio_ClrIO(I2C0_SCL_PORTx, I2C0_SCL_PINx)
|
||||
|
||||
#define I2C0_SDA_PORTx GpioPortF //SDA的GPIO通道
|
||||
#define I2C0_SDA_PINx GpioPin0 //SDA的通道位
|
||||
#define I2C0_SDA_PORTx GpioPortF //SDA的GPIO通道
|
||||
#define I2C0_SDA_PINx GpioPin0 //SDA的通道位
|
||||
#define I2C0_SDA_AF GpioAf1
|
||||
#define SET_I2C0_SDA() Gpio_SetIO(I2C0_SDA_PORTx, I2C0_SDA_PINx)
|
||||
#define CLR_I2C0_SDA() Gpio_ClrIO(I2C0_SDA_PORTx, I2C0_SDA_PINx)
|
||||
|
||||
//< I2C1
|
||||
#define I2C1_SCL_PORTx GpioPortA //SCL的GPIO通道
|
||||
#define I2C1_SCL_PINx GpioPin11 //SCL的通道位
|
||||
#define I2C1_SCL_PORTx GpioPortA //SCL的GPIO通道
|
||||
#define I2C1_SCL_PINx GpioPin11 //SCL的通道位
|
||||
#define I2C1_SCL_AF GpioAf3
|
||||
#define SET_I2C1_SCL() Gpio_SetIO(I2C1_SCL_PORTx, I2C1_SCL_PINx)
|
||||
#define CLR_I2C1_SCL() Gpio_ClrIO(I2C1_SCL_PORTx, I2C1_SCL_PINx)
|
||||
|
||||
#define I2C1_SDA_PORTx GpioPortA //SDA的GPIO通道
|
||||
#define I2C1_SDA_PINx GpioPin12 //SDA的通道位
|
||||
#define I2C1_SDA_PORTx GpioPortA //SDA的GPIO通道
|
||||
#define I2C1_SDA_PINx GpioPin12 //SDA的通道位
|
||||
#define I2C1_SDA_AF GpioAf3
|
||||
#define SET_I2C1_SDA() Gpio_SetIO(I2C1_SDA_PORTx, I2C1_SDA_PINx)
|
||||
#define CLR_I2C1_SDA() Gpio_ClrIO(I2C1_SDA_PORTx, I2C1_SDA_PINx)
|
||||
|
||||
//<<---------------------------- 485 -------------------------------->>
|
||||
//< LPUart0
|
||||
#define RS485_CTRL_PORTx GpioPortB //RS485_1通信控制
|
||||
#define RS485_CTRL_PINx GpioPin1 //配置PB02为RS485_1_CTRL
|
||||
#define RS485_CTRL_TX() Gpio_SetIO(RS485_CTRL_PORTx, RS485_CTRL_PINx) //RS485_1_CTRL拉高发送
|
||||
#define RS485_CTRL_RX() Gpio_ClrIO(RS485_CTRL_PORTx, RS485_CTRL_PINx) //RS485_1_CTRL拉低接收
|
||||
#define RS485_CTRL_PORTx GpioPortB //RS485_1通信控制
|
||||
#define RS485_CTRL_PINx GpioPin1 //配置PB02为RS485_1_CTRL
|
||||
#define RS485_CTRL_TX() Gpio_SetIO(RS485_CTRL_PORTx, RS485_CTRL_PINx) //RS485_1_CTRL拉高发送
|
||||
#define RS485_CTRL_RX() Gpio_ClrIO(RS485_CTRL_PORTx, RS485_CTRL_PINx) //RS485_1_CTRL拉低接收
|
||||
|
||||
//<<---------------------------- LED -------------------------------->>
|
||||
//< LED_State
|
||||
#define LED_STATE_PORTx GpioPortF //状态指示灯IO通道
|
||||
#define LED_STATE_PINx GpioPin7 //状态指示灯脚位
|
||||
#define LED_ON() Gpio_SetIO(LED_STATE_PORTx, LED_STATE_PINx);//状态指示灯亮
|
||||
#define LED_OFF() Gpio_ClrIO(LED_STATE_PORTx, LED_STATE_PINx);//状态指示灯灭
|
||||
#define LED_STATE_PORTx GpioPortF //状态指示灯IO通道
|
||||
#define LED_STATE_PINx GpioPin7 //状态指示灯脚位
|
||||
#define LED_ON() Gpio_SetIO(LED_STATE_PORTx, LED_STATE_PINx);//状态指示灯亮
|
||||
#define LED_OFF() Gpio_ClrIO(LED_STATE_PORTx, LED_STATE_PINx);//状态指示灯灭
|
||||
|
||||
//<<---------------------------- LORA --> SPI0 -------------------------------->>
|
||||
//< LORA --> DIO0
|
||||
#define LORA_DIO0_PORTx GpioPortB //LORA_DIO0口
|
||||
#define LORA_DIO0_PINx GpioPin7 //配置PA01为DIO0
|
||||
#define GET_LORA_DIO0() Gpio_GetInputIO(LORA_DIO0_PORTx, LORA_DIO0_PINx) //获取LORA_DIO0电平状态
|
||||
#define LORA_DIO0_PORTx GpioPortB //LORA_DIO0口
|
||||
#define LORA_DIO0_PINx GpioPin7 //配置PA01为DIO0
|
||||
#define GET_LORA_DIO0() Gpio_GetInputIO(LORA_DIO0_PORTx, LORA_DIO0_PINx) //获取LORA_DIO0电平状态
|
||||
//< LORA --> DIO1
|
||||
#define LORA_DIO1_PORTx GpioPortB //LORA_DIO0口
|
||||
#define LORA_DIO1_PINx GpioPin0 //配置PA01为DIO0
|
||||
#define GET_LORA_DIO1() Gpio_GetInputIO(LORA_DIO1_PORTx, LORA_DIO1_PINx) //获取LORA_DIO0电平状态
|
||||
#define LORA_DIO1_PORTx GpioPortB //LORA_DIO0口
|
||||
#define LORA_DIO1_PINx GpioPin0 //配置PA01为DIO0
|
||||
#define GET_LORA_DIO1() Gpio_GetInputIO(LORA_DIO1_PORTx, LORA_DIO1_PINx) //获取LORA_DIO0电平状态
|
||||
|
||||
//< LORA --> RST
|
||||
#define LORA_RST_PORTx GpioPortB //LORA_RST口
|
||||
#define LORA_RST_PINx GpioPin6 //配置PA00为RST
|
||||
#define SET_LORA_RST() Gpio_SetIO(LORA_RST_PORTx, LORA_RST_PINx) //LORA复位脚拉高
|
||||
#define CLR_LORA_RST() Gpio_ClrIO(LORA_RST_PORTx, LORA_RST_PINx) //LORA复位脚拉低
|
||||
#define LORA_RST_PORTx GpioPortB //LORA_RST口
|
||||
#define LORA_RST_PINx GpioPin6 //配置PA00为RST
|
||||
#define SET_LORA_RST() Gpio_SetIO(LORA_RST_PORTx, LORA_RST_PINx) //LORA复位脚拉高
|
||||
#define CLR_LORA_RST() Gpio_ClrIO(LORA_RST_PORTx, LORA_RST_PINx) //LORA复位脚拉低
|
||||
|
||||
//<<---------------------------- LSM6DSLTR --> I2C0 -------------------------------->>
|
||||
//< ACC_INT1
|
||||
#define LSM6DSLTR_INT1_PORTx GpioPortC //LSM6DSLTR中断1IO通道
|
||||
#define LSM6DSLTR_INT1_PINx GpioPin15 //配置PB01为ACC_INT1
|
||||
#define GET_LSM6DSLTR_INT1() Gpio_GetInputIO(LSM6DSLTR_INT1_PORTx, LSM6DSLTR_INT1_PINx) //获取ACC_INT1电平状态
|
||||
#define LSM6DSLTR_INT1_PORTx GpioPortC //LSM6DSLTR中断1IO通道
|
||||
#define LSM6DSLTR_INT1_PINx GpioPin15 //配置PB01为ACC_INT1
|
||||
#define GET_LSM6DSLTR_INT1() Gpio_GetInputIO(LSM6DSLTR_INT1_PORTx, LSM6DSLTR_INT1_PINx) //获取ACC_INT1电平状态
|
||||
|
||||
//< ACC_INT2
|
||||
#define LSM6DSLTR_INT2_PORTx GpioPortC //LSM6DSLTR中断1IO通道
|
||||
#define LSM6DSLTR_INT2_PINx GpioPin13 //配置PA08为ACC_INT2
|
||||
#define GET_LSM6DSLTR_INT2() Gpio_GetInputIO(LSM6DSLTR_INT2_PORTx, LSM6DSLTR_INT2_PINx) //获取ACC_INT2电平状态
|
||||
#define LSM6DSLTR_INT2_PORTx GpioPortC //LSM6DSLTR中断1IO通道
|
||||
#define LSM6DSLTR_INT2_PINx GpioPin13 //配置PA08为ACC_INT2
|
||||
#define GET_LSM6DSLTR_INT2() Gpio_GetInputIO(LSM6DSLTR_INT2_PORTx, LSM6DSLTR_INT2_PINx) //获取ACC_INT2电平状态
|
||||
|
||||
//<<---------------------------- MMC5983MA --> I2C0 -------------------------------->>
|
||||
//< MMC0_INT
|
||||
#define MMC5983MA_INT_PORTx GpioPortC //MMC5983MA中断IO通道
|
||||
#define MMC5983MA_INT_PINx GpioPin14 //配置PB00为MMC_INT
|
||||
#define GET_MMC5983MA_INT() Gpio_GetInputIO(MMC5983MA_INT_PORTx, MMC5983MA_INT_PINx) //获取ACC_INT2电平状态
|
||||
#define MMC5983MA_INT_PORTx GpioPortC //MMC5983MA中断IO通道
|
||||
#define MMC5983MA_INT_PINx GpioPin14 //配置PB00为MMC_INT
|
||||
#define GET_MMC5983MA_INT() Gpio_GetInputIO(MMC5983MA_INT_PORTx, MMC5983MA_INT_PINx) //获取ACC_INT2电平状态
|
||||
|
||||
//<<---------------------------- LASER -------------------------------->>
|
||||
//< LASER1
|
||||
#define LASER1_ON_OFF_PORTx GpioPortB
|
||||
#define LASER1_ON_OFF_PINx GpioPin14
|
||||
#define LASER1_ON() Gpio_SetIO(LASER1_ON_OFF_PORTx, LASER1_ON_OFF_PINx) //LORA复位脚拉高
|
||||
#define LASER1_OFF() Gpio_ClrIO(LASER1_ON_OFF_PORTx, LASER1_ON_OFF_PINx) //LORA复位脚拉低
|
||||
#define LASER1_ON() Gpio_SetIO(LASER1_ON_OFF_PORTx, LASER1_ON_OFF_PINx) //LORA复位脚拉高
|
||||
#define LASER1_OFF() Gpio_ClrIO(LASER1_ON_OFF_PORTx, LASER1_ON_OFF_PINx) //LORA复位脚拉低
|
||||
//< LASER2
|
||||
#define LASER2_ON_OFF_PORTx GpioPortB
|
||||
#define LASER2_ON_OFF_PINx GpioPin13
|
||||
#define LASER2_ON() Gpio_SetIO(LASER2_ON_OFF_PORTx, LASER2_ON_OFF_PINx) //LORA复位脚拉高
|
||||
#define LASER2_OFF() Gpio_ClrIO(LASER2_ON_OFF_PORTx, LASER2_ON_OFF_PINx) //LORA复位脚拉低
|
||||
#define LASER2_ON() Gpio_SetIO(LASER2_ON_OFF_PORTx, LASER2_ON_OFF_PINx) //LORA复位脚拉高
|
||||
#define LASER2_OFF() Gpio_ClrIO(LASER2_ON_OFF_PORTx, LASER2_ON_OFF_PINx) //LORA复位脚拉低
|
||||
//< LASER3
|
||||
#define LASER3_ON_OFF_PORTx GpioPortB
|
||||
#define LASER3_ON_OFF_PINx GpioPin12
|
||||
#define LASER3_ON() Gpio_SetIO(LASER3_ON_OFF_PORTx, LASER3_ON_OFF_PINx) //LORA复位脚拉高
|
||||
#define LASER3_OFF() Gpio_ClrIO(LASER3_ON_OFF_PORTx, LASER3_ON_OFF_PINx) //LORA复位脚拉低
|
||||
#define LASER3_ON() Gpio_SetIO(LASER3_ON_OFF_PORTx, LASER3_ON_OFF_PINx) //LORA复位脚拉高
|
||||
#define LASER3_OFF() Gpio_ClrIO(LASER3_ON_OFF_PORTx, LASER3_ON_OFF_PINx) //LORA复位脚拉低
|
||||
|
||||
//<<------------------------------ ADC ---------------------------------->>
|
||||
#define AD_ON_OFF_PORTx GpioPortA
|
||||
#define AD_ON_OFF_PINx GpioPin3
|
||||
#define AD_ON() Gpio_SetIO(AD_ON_OFF_PORTx, AD_ON_OFF_PINx) //LORA复位脚拉高
|
||||
#define AD_OFF() Gpio_ClrIO(AD_ON_OFF_PORTx, AD_ON_OFF_PINx) //LORA复位脚拉低
|
||||
#define AD_ON() Gpio_SetIO(AD_ON_OFF_PORTx, AD_ON_OFF_PINx)
|
||||
#define AD_OFF() Gpio_ClrIO(AD_ON_OFF_PORTx, AD_ON_OFF_PINx)
|
||||
|
||||
#define VBAT_PORTx GpioPortA
|
||||
#define VBAT_PINx GpioPin4
|
||||
#define VBAT_ADC_PORTx AdcExInputCH4//采样通道
|
||||
#define VBAT_CAL 3.5 //电池电压校准
|
||||
#define VBAT_ADC_PORTx AdcExInputCH4//采样通道
|
||||
#define VBAT_CAL 3.5 //电池电压校准
|
||||
|
||||
//< 电池电压
|
||||
//< 电池电压
|
||||
extern float VBAT_8V4;
|
||||
extern uint8_t VBAT_Percentage;
|
||||
|
||||
@@ -215,23 +215,23 @@ typedef struct {
|
||||
uint32_t PackageCnt;
|
||||
uint32_t AppSize;
|
||||
uint32_t Crc32Check;
|
||||
uint32_t FirstRunFlag;//第一次运行
|
||||
uint8_t DevMac[6];//设备MAC
|
||||
uint32_t LoraFreq;//Lora频率
|
||||
uint32_t FirstRunFlag;//第一次运行
|
||||
uint8_t DevMac[6];//设备MAC
|
||||
uint32_t LoraFreq;//Lora频率
|
||||
}BootPara_t, *BootPara;
|
||||
|
||||
typedef struct {
|
||||
uint16_t CollectTime; //数据采集时间间隔,设置范围30*N秒,1<=N<=240,(默认300秒,N=10)
|
||||
uint16_t ReportInterval; //上报时间间隔,设置范围,30*N秒,10<=N<=1440(默认1200秒,N=40)
|
||||
uint8_t ERInterval; //紧急上报时间间隔,设置范围,30*N秒,2<=N<=10(默认120秒,N=4)
|
||||
uint8_t ERTime; //紧急上报时长,设置范围,30*N秒,20<=N<=240(默认1200秒,N=40)
|
||||
uint32_t TimeStamp; //网关返回RTC时间戳
|
||||
}__attribute__((packed))LayoutPara_t,*LayoutPara;//上位机下发的配置参数
|
||||
uint16_t CollectTime; //数据采集时间间隔,设置范围30*N秒,1<=N<=240,(默认300秒,N=10)
|
||||
uint16_t ReportInterval; //上报时间间隔,设置范围,30*N秒,10<=N<=1440(默认1200秒,N=40)
|
||||
uint8_t ERInterval; //紧急上报时间间隔,设置范围,30*N秒,2<=N<=10(默认120秒,N=4)
|
||||
uint8_t ERTime; //紧急上报时长,设置范围,30*N秒,20<=N<=240(默认1200秒,N=40)
|
||||
uint32_t TimeStamp; //网关返回RTC时间戳
|
||||
}__attribute__((packed))LayoutPara_t,*LayoutPara;//上位机下发的配置参数
|
||||
|
||||
typedef struct {
|
||||
int16_t PitchZero; //俯仰角零点
|
||||
int16_t RollZero; //横滚角零点
|
||||
int16_t YawZero; //偏航角零点
|
||||
int16_t PitchZero; //俯仰角零点
|
||||
int16_t RollZero; //横滚角零点
|
||||
int16_t YawZero; //偏航角零点
|
||||
}__attribute__ ((packed))CalibratePara_t, *CalibratePara;
|
||||
|
||||
typedef struct {
|
||||
@@ -246,9 +246,9 @@ typedef struct {
|
||||
}__attribute__ ((packed))LoraPara_t, *pLoraPara;
|
||||
|
||||
typedef struct {
|
||||
bool Enable; //串口使能
|
||||
bool UpgradeEnable;//升级功能使能
|
||||
uint32_t Addr; //本机485地址
|
||||
bool Enable; //串口使能
|
||||
bool UpgradeEnable;//升级功能使能
|
||||
uint32_t Addr; //本机485地址
|
||||
uint32_t BaudRate;
|
||||
}__attribute__((packed))RS485Para_t, *RS485Para;
|
||||
|
||||
@@ -258,7 +258,7 @@ typedef struct {
|
||||
CalibratePara_t CaliPara;
|
||||
RS485Para_t Rs485Ch1;
|
||||
RS485Para_t Rs485Ch2;
|
||||
uint32_t FactoryFlag;//出厂标志位
|
||||
uint32_t FactoryFlag;//出厂标志位
|
||||
LoraPara_t Lora;
|
||||
}AppPara_T, *pAppPara;
|
||||
//#define APP_PARA_ADDRESS (0x0001FC00)
|
||||
|
||||
+39
-37
@@ -1,12 +1,12 @@
|
||||
#ifndef __MAIN_H
|
||||
#ifndef __MAIN_H
|
||||
#define __MAIN_H
|
||||
#include "bsp.h"
|
||||
#include "UartDebug.h"
|
||||
#include "Update.h"
|
||||
#include "Imu.h"
|
||||
|
||||
#define SOFTWARE_VERSION 12 //软件版本
|
||||
#define HARDWARE_VERSION 11 //硬件版本
|
||||
#define SOFTWARE_VERSION 12 //软件版本
|
||||
#define HARDWARE_VERSION 11 //硬件版本
|
||||
|
||||
#define MAIN_DBG_LOG(...) { if(MainDispEn) DBG_LOG(__VA_ARGS__);}
|
||||
#define DATA_DBG_LOG(...) { if(DataDispEn) DBG_LOG(__VA_ARGS__);}
|
||||
@@ -17,34 +17,34 @@
|
||||
#define Z 2
|
||||
#define XYZ 3
|
||||
|
||||
#define SYSTEM_TIMING_LOGIN (86400 / 30) //系统定时注册时间(一天86400秒)
|
||||
#define ERR_TIMING_LOGIN (1800 / 30) //注册错误重新注册时间(半个小时1800秒)
|
||||
#define SYSTEM_TIMING_LOGIN (86400 / 30) //系统定时注册时间(一天86400秒)
|
||||
#define ERR_TIMING_LOGIN (1800 / 30) //注册错误重新注册时间(半个小时1800秒)
|
||||
|
||||
#define TEST_TIME (60*60*1000)
|
||||
|
||||
#define ERINTERVAL_VPT 10 //紧急上报阈值,单位0.1°
|
||||
#define ERINTERVAL_VPT 10 //紧急上报阈值,单位0.1°
|
||||
#define ERINTERVAL_VPT 10 //紧急上报阈值,单位0.1°
|
||||
#define ERINTERVAL_VPT 10 //紧急上报阈值,单位0.1°
|
||||
|
||||
typedef struct {//传感器原始数据
|
||||
typedef struct {//传感器原始数据
|
||||
float acce[XYZ];
|
||||
float gy[XYZ];
|
||||
float mag[XYZ];
|
||||
}__attribute__ ((packed))SensorData_T,*SensorDp;//传感器数据
|
||||
}__attribute__ ((packed))SensorData_T,*SensorDp;//传感器数据
|
||||
|
||||
typedef struct {//转换的数据
|
||||
int16_t Pitch; //俯仰角偏斜 (范围±900)单位0.1°
|
||||
int16_t Roll; //横滚角偏斜 (范围±900)单位0.1°
|
||||
int16_t Yaw; //偏航角偏斜 (范围0~3600)单位0.1°
|
||||
// int16_t Temp; //温度值
|
||||
// int32_t AD; //AD值
|
||||
typedef struct {//转换的数据
|
||||
int16_t Pitch; //俯仰角偏斜 (范围±900)单位0.1°
|
||||
int16_t Roll; //横滚角偏斜 (范围±900)单位0.1°
|
||||
int16_t Yaw; //偏航角偏斜 (范围0~3600)单位0.1°
|
||||
// int16_t Temp; //温度值
|
||||
// int32_t AD; //AD值
|
||||
}__attribute__ ((packed))ConvertedData_T, *ConvertedDp;
|
||||
|
||||
typedef struct {// 姿态角数据
|
||||
typedef struct {// 姿态角数据
|
||||
Rad_T Rad;
|
||||
Deg_T Deg;
|
||||
}__attribute__ ((packed))AHRSData_T,*AHRSDp;
|
||||
|
||||
/*主程序状态机*/
|
||||
/*主程序状态机*/
|
||||
typedef enum {
|
||||
APP_STATUS_IDLE,
|
||||
APP_STATUS_SLEEP,
|
||||
@@ -55,7 +55,7 @@ typedef enum {
|
||||
APP_STATUS_WAIT_UPLOAD,
|
||||
}AppStatus_m;
|
||||
|
||||
/*数据读取状态机*/
|
||||
/*数据读取状态机*/
|
||||
typedef enum {
|
||||
READDATA_STATUS_IDLE,
|
||||
READDATA_STATUS_UPDAING,
|
||||
@@ -64,8 +64,8 @@ typedef enum {
|
||||
}ReadDataStatus_m;
|
||||
|
||||
typedef struct {
|
||||
AppStatus_m Status;//状态
|
||||
ReadDataStatus_m RDStatus;//读取数据状态
|
||||
AppStatus_m Status;//状态
|
||||
ReadDataStatus_m RDStatus;//读取数据状态
|
||||
|
||||
uint32_t TD1mSDelayCnt;
|
||||
uint8_t FeedDogDlyCnt;
|
||||
@@ -77,30 +77,32 @@ typedef struct {
|
||||
AHRSData_T AHRSData;
|
||||
ConvertedData_T ConvertedData;
|
||||
|
||||
uint32_t RepeLoginCount; //24h重复注册计数
|
||||
uint8_t Login30MinCount; //注册30分定时计数
|
||||
uint8_t Login2Min30SCount; //注册100ms~2分+30s定时计数
|
||||
bool Login_RTC; //注册30分定时器启动标志位
|
||||
bool Login_LPTimer0; //注册100ms~2分+30s定时器启动标志位
|
||||
bool LoginFlag; //注册标志位
|
||||
uint32_t RepeLoginCount; //24h重复注册计数
|
||||
uint8_t Login30MinCount; //注册30分定时计数
|
||||
uint8_t Login2Min30SCount; //注册100ms~2分+30s定时计数
|
||||
bool Login_RTC; //注册30分定时器启动标志位
|
||||
bool Login_LPTimer0; //注册100ms~2分+30s定时器启动标志位
|
||||
bool LoginFlag; //注册标志位
|
||||
|
||||
uint16_t Coll_N; //数据采集时间计数
|
||||
uint16_t Repor_N; //上报时间计数
|
||||
uint16_t ERInterval_N; //紧急上报时间间隔计数
|
||||
uint8_t ERTime_N; //紧急上报时间计数
|
||||
bool ERFlag; //紧急上报标志位
|
||||
uint16_t Coll_N; //数据采集时间计数
|
||||
uint16_t Repor_N; //上报时间计数
|
||||
uint16_t ERInterval_N; //紧急上报时间间隔计数
|
||||
uint8_t ERTime_N; //紧急上报时间计数
|
||||
bool ERFlag; //紧急上报标志位
|
||||
|
||||
bool UploadFlag; //上传数据标志位
|
||||
uint8_t Upload45S10SCount; //上传数据超时计数
|
||||
bool Upload_LPTimer0; //上传100~10000ms+45秒定时器启动标志位
|
||||
bool UploadFlag; //上传数据标志位
|
||||
uint8_t Upload45S10SCount; //上传数据超时计数
|
||||
bool Upload_LPTimer0; //上传100~10000ms+45秒定时器启动标志位
|
||||
|
||||
bool MagRead_EndFlag;
|
||||
bool AccRead_EndFlag;
|
||||
bool UpdateOk; //数据更新标志位
|
||||
bool UpdateOk; //数据更新标志位
|
||||
|
||||
bool CaliFlag; //标校标志位
|
||||
bool CaliFlag; //标校标志位
|
||||
|
||||
uint16_t Nonce; //随机数
|
||||
uint16_t Nonce; //随机数
|
||||
bool AttTestMode; //姿态测试模式标志位
|
||||
uint32_t AttTestCnt; //姿态测试打印计数(ms)
|
||||
}AppDetect_t;
|
||||
extern AppDetect_t App;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user