| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- #ifndef _GLOBALDEF_H_
- #define _GLOBALDEF_H_
- #include "../_Lib-3.5/CMSIS/stm32f10x.h"
- #include "./network/timeout.h"
- #include "./network/nettimer.h"
- #define READ_TIMER 3
- #define UP_DEVICE_TYPE_GATE 0x0101 // 网关A
- #define UP_DEVICE_FIRMWARE 0x03 // APP程序
- enum {
- UPDATE_PROG_NULL = 0x00,
- UPDATE_PROG_FROM_NET = 0x01,
- UPDATE_PROG_FROM_GATEWAY = 0x02,
- };
- typedef struct _updata_prog {
- uint32_t sn[4];
- uint32_t appVr[4];
- uint8_t status[4];// 状态码
- uint16_t num;
- uint8_t upCount; // 上报的次数
- uint8_t updateProgFrom; // 升级程序的开源
- timeout_t upStatusOut;
- uint8_t rec0x16; // 接收到16指令,
- OS_TMR update_total_time;
- }updateProg;
- extern updateProg g_updateProg;
- extern char g_upLinkTopic[64];
- /* LED 灯的记录 */
- #define LED_M_QUICK 1
- #define LED_M_LOW 5
- #pragma pack(push,1)
- typedef union _LED_16_{
- uint16_t status;
- struct {
- uint16_t led01 : 1;
- uint16_t led02 : 1;
- uint16_t led03 : 1;
- uint16_t led04 : 1;
- uint16_t led05 : 1;
- uint16_t led06 : 1;
- uint16_t led07 : 1;
- uint16_t led08 : 1;
- uint16_t led09 : 1;
- uint16_t led10 : 1;
- uint16_t led11 : 1;
- uint16_t led12 : 1;
- uint16_t led13 : 1;
- uint16_t led14 : 1;
- uint16_t led15 : 1;
- uint16_t led16 : 1;
- }led;
- }Led16;
- #pragma pack(pop)
- typedef struct _LED_STATUS_{
- uint8_t ledM; // M灯的情况 快闪还是慢闪
- Led16 led16;
- uint16_t collNum; // 采集器个数
- }LedStatus;
- extern LedStatus g_ledStatus;
- /*时间信息记录*/
- typedef struct _CUR_TICK_{
- uint32_t powerTime; // 上电时间
- uint32_t curTime; // 当前时间
- }CurTick;
- extern CurTick g_curTick;
- typedef struct _FIRMWARE_EXPLAIN_{
- uint16_t dd;
- uint8_t ff;
- uint16_t nn;
- }__attribute__((packed)) FirmwareExpl;
- extern FirmwareExpl g_firmwareExpl;
- #define UPDATE_COLLECT_TOTALTIME 90000 // 升级总的时间
- #define UPDATE_CONTINUE_TIME 300 // 升级续传每条间隔的时候300毫秒
- #define UPDATE_REPEAT_TIME 7000 // 接收重传超时的时间 2S
- #define UPDATE_READSTATUS_TIME 10000 // 升级完成 到读取升级状态的时间
- #define UPDATE_READSTATUS_TIME_GATEWAY 60000 // 升级完成 到读取升级状态的时间
- /*运行数据*/
- typedef struct _RUN_DATA_{
- uint16_t rssi_lora; // lora信息强度
- uint16_t rssi_4G; // 4G信息强度
- uint8_t timeSendStatus; // 第5分钟发送一次状态信息的标志 0:不发送 1:发送
- uint8_t bInitNetProc; // 是否创建网络队列
- uint16_t updateDeviceTyp; // 升级类型 0x0101:网关;0x0201;采集器:0x0301:液位仪采集器;0x0401:屏采集器
- uint8_t bUpdate; // 正在升级中
- uint32_t startUpdateTotalTime; // 重传开始时间记录
- uint32_t repeatUpdateTime; // 接收到重传指令型时间记录
- uint32_t readUpdateStatusTime; // 读取升级状态的时间记录
- uint8_t bsendOilData; // 发送油罐数据到服务器
- uint8_t bAutoReadOilData; // 自动读取油罐数据
- uint8_t bsendUpdateStatus; // 向服务器发送状态码
- uint8_t bResetUpdate; // 升级完成后,需要上报服务器
- uint8_t bsendGatewaySttus; //
- uint8_t bsendGatewayVersion;
- uint8_t frameNo; // 是否为多帧
- uint8_t cregStatus; // 网络注册状态
- uint8_t bUpdateHost; //是否是主设备 1:为主设备 其它为从设备,升级时,从设备不处理0x22指令
- uint16_t loraConnectTime; // lora 连接的时间
- uint8_t bread; // 服务器下发的读取液位仪的指令
- }RunData;
- extern RunData g_runData;
- typedef struct _DATA_4G_{
- uint8_t bconnect4G; // 是否连接4G
- uint8_t errorTime; // 4G断开的时间 如果断开1小时,则芯片复位重新启动
- }Da4G;
- extern Da4G g_data4G;
- /* 网关固件信息存储 这个只有在产测时写入,要程序中不再写入*/
- typedef struct _GATEWAY_HARDWARE_MSG_{
- uint8_t bInit; // 是否初始化过
- uint32_t gateway_sn; // 网关的sn
- uint16_t devicType; // 类型
- uint16_t factoryMsg; // 厂家信息
- uint16_t seqNo ; // 生产批次号
- uint32_t data; // 生产日期
- uint8_t pcbVersion; // 硬件(PCB)版本
- uint32_t sqare; //备用
- }__attribute__((packed)) GateHareWareMsg;
- /* 网关的固件信息存储*/
- typedef struct _GATEWAY_SOFT_MSG_{
- uint16_t bInit; // 是否配置过
- uint8_t coll_num; // 此网关对应采集器的数量
- uint16_t sqare; // 备用
- }__attribute__((packed)) GateConfigMsg;
- /* 网关的版本信息*/
- typedef struct _GATEWAY_VERSION_MSG_{
- uint32_t gate_bootloaderVr; //网关的bootloaderVr
- uint32_t pt_version; // 产测版本
- uint32_t gate_appVr; // appt版本
- uint32_t gate_appVr2; // app2的版本
- uint32_t gate_appVr3; // app3的版本
- }__attribute__((packed)) GateVersionMsg;
- typedef union _VOLTAGE_{
- uint32_t voltage; // 电压
- float fvoltage;
- }voltage;
- typedef union _TEMPERATURE_{
- uint32_t temperature; // 温度
- float ftemperature;
- }temperature;
- typedef struct _GATEWAY_MSG_{
- GateHareWareMsg hardwareMsg; //
- GateConfigMsg configmsg; // 软件信息
- GateVersionMsg verMsg; // 版本信息
- uint32_t gate_resetnum; //复位次数
- uint8_t gate_resetType; //最后一次复位类型
- uint32_t gate_runTime; // 运行时长
- voltage fVol;
- temperature fTemper;
- uint8_t Uuid[12];//UUID
- uint8_t Imei[15]; //IMEI
- uint8_t Iccid1[20];//ICCID1
- uint8_t Iccid2[20];//ICCID2
- uint8_t Iccid3[20];//ICCID3
- uint16_t devicTypeID; // 103 303 这个是读取上来的
- }GateWayMsg;
- /* mqtt IP地址 端口号*/
- typedef struct _MQTT_IP_PORT_{
- uint8_t flag;
- char port[6]; // 端口号
- char ip[32]; //IP地址
- char admin[8]; // 用户名
- char password[16]; // 密码
- }__attribute__((packed)) MqttIdPort;
- typedef struct _FIRMWARE_MSG_{ // 固件信息存储
- GateWayMsg gatewayMsg; // 网关固件信息
- MqttIdPort mqttidport; // mqtt的IP地址和端口
- }FirmwareMsg;
- extern FirmwareMsg g_firmwareMsg; // 网关 采集器固件信息存储
- typedef struct _OIL_READ_MSG_{
- uint8_t bInit; // 是否初始化
- uint16_t paraLen; // 参数长度
- char param[48]; // 参数
- }__attribute__((packed)) oilReadMsg;
- extern oilReadMsg g_oilReadMsg;
- typedef struct _run_mqtt_data_{
- uint8_t bChangeMqtt; // 1:为切换mqtt 服务器
- uint8_t bChangeSuc; // 0:初始值 1: 切换成功 2: 切换连接失败
- uint8_t connectNum; // 连接次数
- uint8_t mqttIdlen;
- uint8_t mqttPortlen;
- uint8_t mqttUserlen;
- uint8_t mqttPwdlen;
- MqttIdPort mqttMsg; // mqtt的IP地址和端口
- }__attribute__((packed)) MqttRunDa;
- extern MqttRunDa g_mqttRunDa;
- typedef struct{
- uint8_t oil_buff[1024]; //
- uint16_t len; //数据长度
- uint16_t len1; // 用于没有结束符的长度
- uint8_t bfinish; // 收到03 结束
- uint8_t bAutoRead; // 是否自动读取
- uint8_t bstart; // 收到了 i20100指令
- }__attribute__((packed))OilRunData;
- extern OilRunData g_oilreadDa;
- #endif
|