global(1732).h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #ifndef _GLOBAL_H_
  2. #define _GLOBAL_H_
  3. /* includes ----------------------------------------------------------*/
  4. #include "stm32f1xx_hal.h"
  5. #include "usart.h"
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9. #include <stdbool.h>
  10. #include "EC800.h"
  11. #include "flash.h"
  12. #include "comm_car_485.h"
  13. #include "task_communication.h"
  14. #include "gpio.h"
  15. #include "norflash.h"
  16. /* typedef -----------------------------------------------------------*/
  17. typedef struct{
  18. uint16_t ctrEvent; // 中控板事件
  19. // bit0:中控板迁移事件
  20. // 故障相关
  21. uint16_t mqttTimeoutCnt; // MQTT通信超时计数
  22. uint8_t positionErrorCnt; // 定位信息错误计数
  23. uint8_t InitFaultFlag_4G; // 4g模块初始化标志 1:初始化失败 0:初始化成功
  24. uint8_t timeoutCnt_485; // 485通信超时计数
  25. uint8_t gyroDataFaultFlag; // 陀螺仪数据故障标志
  26. uint8_t otaUpgradeStartFlag; // OTA升级开始标志
  27. // 超级权限--超级用户
  28. uint8_t superUser; // 超级权限 1:开启超级权限 0:关闭超级权限
  29. // 运行中进行围栏数据更新
  30. uint32_t fence_update;
  31. // 通过定位数据获取到时间数据
  32. uint32_t time_stamp_flag; // 1: 获取到 0:未获取到
  33. // 重新连接Mqtt服务器标志
  34. uint8_t reconnect_server_flag; // 1: 需要重新连接
  35. }global_par;
  36. extern global_par s_global_par;
  37. // 事件枚举
  38. enum event{
  39. CtrlPanelMigration, // 中控板迁移事件
  40. };
  41. // 定义故障结构体
  42. typedef struct {
  43. char errid[32]; // 假设errid的最大长度为32字节
  44. char errorInfo[128]; // 假设errorInfo的最大长度为128字节
  45. } Fault;
  46. /* define ------------------------------------------------------------*/
  47. #define TIMEOUT_485 10 // 10s 485通信超时时间
  48. #define FILTER_TIME_gyro 3 // 3s 陀螺仪故障滤波时间
  49. #define FILTER_TIME_GPS 240 // GPS滤波时间,单位:秒
  50. #define TIME_OUT_OTA 600 // 120s OTA升级超时时间设置为2min 跟升级周期链接现在是200ms
  51. #define MAX_RECORDS 500 // 历史故障记录的最大条数
  52. #define FAULT_RECORD_TIME 120 // 同一条故障记录的间隔时间 2min
  53. /* macro -------------------------------------------------------------*/
  54. /* variables ---------------------------------------------------------*/
  55. /* function prototypes -----------------------------------------------*/
  56. // @brief 中控板初始化
  57. extern void centralCtrSys_Init(param_boot *p_param_boot, global_par *p_global_par);
  58. // @brief 中控板故障检测
  59. extern void faultDetection(global_par *p_global_par);
  60. // @brief 控制蜂鸣器响应
  61. extern void control_beep_response(void);
  62. // @brief 历史故障存储
  63. void storeFaultRecord(void);
  64. // @brief 更新保存的时间信息
  65. void refreshSavedTime(void);
  66. #endif