123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #ifndef _GLOBAL_H_
- #define _GLOBAL_H_
- /* includes ----------------------------------------------------------*/
- #include "stm32f1xx_hal.h"
- #include "usart.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdbool.h>
- #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: 需要重新连接
- // 模块信号
- uint8_t moduleSig; // 模块信号
- }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
- #define NO_CAR_STATIC_INFO // 没有车辆的状态信息
- /* macro -------------------------------------------------------------*/
- /* variables ---------------------------------------------------------*/
- /* function prototypes -----------------------------------------------*/
- // @brief 中控板初始化
- extern void centralCtrSys_Init(param_boot *p_param_boot);
- // @brief 中控板故障检测
- extern void faultDetection(global_par *p_global_par);
- // @brief 控制蜂鸣器响应
- extern void control_beep_response(void);
- // @brief 历史故障存储
- void storeFaultRecord(void);
- // @brief 更新保存的时间信息
- void refreshSavedTime(void);
- // @brief 车辆行驶里程计算
- void calculate_driving_distance(uint32_t totalMileage);
- // @brief 车辆行驶时长计算
- void calculateDriveTime(void);
- // @brief 车辆状态参数数据迁移
- void vehStateDataMig(uint8_t timeDate);
- // @brief 测试使用
- void fun(void);
- // @brief 绑定车辆比对
- void VehicleCompare(void);
- #endif
|