#ifndef _GLOBAL_H_ #define _GLOBAL_H_ /* includes ----------------------------------------------------------*/ #include "stm32f1xx_hal.h" #include "usart.h" #include #include #include #include #include "EC800.h" #include "flash.h" #include "comm_car_485.h" #include "task_communication.h" #include "gpio.h" #include "norflash.h" /* typedef -----------------------------------------------------------*/ typedef struct{ uint16_t ctrEvent; // 中控板事件 // bit0:中控板迁移事件 // 故障相关 uint16_t mqttTimeoutCnt; // MQTT通信超时计数 uint8_t positionErrorCnt; // 定位信息错误计数 uint8_t InitFaultFlag_4G; // 4g模块初始化标志 1:初始化失败 0:初始化成功 uint8_t timeoutCnt_485; // 485通信超时计数 uint8_t gyroDataFaultFlag; // 陀螺仪数据故障标志 uint8_t otaUpgradeStartFlag; // OTA升级开始标志 uint8_t subscribe_fail; // 订阅主题失败 uint8_t publish_fail; // 发布消息失败 uint8_t get_location_error; // 获取定位信息失败 // 超级权限--超级用户 uint8_t superUser; // 超级权限 1:开启超级权限 0:关闭超级权限 // 运行中进行围栏数据更新 uint32_t fence_update; // 通过定位数据获取到时间数据 uint32_t time_stamp_flag; // 1: 获取到 0:未获取到 // 重新连接Mqtt服务器标志 uint8_t reconnect_server_flag; // 1: 需要重新连接 }global_par; extern global_par s_global_par; // 事件枚举 enum event{ CtrlPanelMigration, // 中控板迁移事件 }; // 定义故障结构体 typedef struct { char errid[32]; // 假设errid的最大长度为32字节 char errorInfo[128]; // 假设errorInfo的最大长度为128字节 } Fault; /* define ------------------------------------------------------------*/ #define TIMEOUT_485 10 // 10s 485通信超时时间 #define FILTER_TIME_gyro 3 // 3s 陀螺仪故障滤波时间 #define FILTER_TIME_GPS 240 // GPS滤波时间,单位:秒 #define TIME_OUT_OTA 600 // 120s OTA升级超时时间设置为2min 跟升级周期链接现在是200ms #define MAX_RECORDS 500 // 历史故障记录的最大条数 #define FAULT_RECORD_TIME 120 // 同一条故障记录的间隔时间 2min /* macro -------------------------------------------------------------*/ /* variables ---------------------------------------------------------*/ /* function prototypes -----------------------------------------------*/ // @brief 中控板初始化 extern void centralCtrSys_Init(param_boot *p_param_boot, global_par *p_global_par); // @brief 中控板故障检测 extern void faultDetection(global_par *p_global_par); // @brief 控制蜂鸣器响应 extern void control_beep_response(void); // @brief 历史故障存储 void storeFaultRecord(void); // @brief 更新保存的时间信息 void refreshSavedTime(void); #endif