SystemAlarm.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #ifndef __SYSTEMALARM_H__
  2. #define __SYSTEMALARM_H__
  3. /*--------------------------------------------------------------------------------------
  4. * @file SystemAlarm.h
  5. * @author ZhangJing
  6. * @version base on stm32f0x
  7. * @date 2015.10.12
  8. * @brief 系统报警处理
  9. ---------------------------------------------------------------------------------------*/
  10. #include "stdint.h"
  11. #define ALARM_OFF 0//报警关
  12. #define ALARM_ON 1//报警开
  13. #define ALARM_SCREEN 2//报警屏蔽
  14. #define ALARM_CONTINUE 3//持续报警
  15. #define ALARM_PREPARE 4//预报警
  16. //压力正常值
  17. /*
  18. #define PRESSURE_ALARM_VALUE_A 11 //无药盒报警阈值
  19. //#define PRESSURE_ALARM_VALUE_B 30 //无液或气泡报警阈值低
  20. #define PRESSURE_ALARM_VALUE_B 16 //无液或气泡报警阈值低
  21. #define PRESSURE_ALARM_VALUE_C 10 //管路脱落暂定10kpa
  22. //#define PRESSURE_ALARM_VALUE_D 45 //无液或气泡报警阈值高
  23. #define PRESSURE_ALARM_VALUE_D 23 //无液或气泡报警阈值高
  24. //#define PRESSURE_ALARM_VALUE_E 56 //堵塞报警阈值
  25. #define PRESSURE_ALARM_VALUE_E 33 //堵塞报警阈值*/
  26. #define PRESSURE_ALARM_VALUE_A 11 //无药盒报警阈值
  27. //#define PRESSURE_ALARM_VALUE_B 30 //无液或气泡报警阈值低
  28. #define PRESSURE_ALARM_VALUE_B 11 //无液或气泡报警阈值低
  29. #define PRESSURE_ALARM_VALUE_C 10 //管路脱落暂定10kpa
  30. //#define PRESSURE_ALARM_VALUE_D 45 //无液或气泡报警阈值高
  31. #define PRESSURE_ALARM_VALUE_D 24 //无液或气泡报警阈值高
  32. //#define PRESSURE_ALARM_VALUE_E 56 //堵塞报警阈值
  33. #define PRESSURE_ALARM_VALUE_E 40 //堵塞报警阈值
  34. //压力测试值
  35. // #define PRESSURE_ALARM_VALUE_A 5 //无药盒报警阈值
  36. // #define PRESSURE_ALARM_VALUE_B 7 //无液或气泡报警阈值低
  37. // #define PRESSURE_ALARM_VALUE_C 10 //管路脱落暂定10kpa
  38. // #define PRESSURE_ALARM_VALUE_D 14 //无液或气泡报警阈值高
  39. // #define PRESSURE_ALARM_VALUE_E 24 //堵塞报警阈值
  40. //电压测试值
  41. // #define BATTERY_VOLT_LOW_LIMIT 47 //电池低电压下限 SOC < 47% 3.7V
  42. //电压正常值
  43. #define BATTERY_VOLT_LOW_LIMIT 20 //电池低电压下限 SOC < 40% 3.3V
  44. #define BATTERY_VOLT_LOW_PREPARE 40 //电池低电压预报 SOC < 80% 4.6V
  45. typedef struct
  46. {
  47. uint8_t SysRunTest;//系统运行测试
  48. uint8_t alarmCollect;//报警收集
  49. uint8_t MechanicalFault;//机械故障
  50. uint8_t JamFault;//堵塞故障
  51. uint8_t MaxFault;//极限值故障
  52. uint8_t BubbleFault;//气泡或无液故障
  53. uint8_t NonePillCase;//未装药盒故障
  54. uint8_t InputEnding;//输液将结束
  55. uint8_t InputEnd; //输液结束
  56. uint8_t VoltLowest; //电池电量低
  57. uint8_t MotorFalt;//电机故障
  58. uint8_t LineLost;//管道脱落
  59. uint8_t InstallFalt;//未夹装到位
  60. uint8_t Zhentongxiaoguo;//镇痛效果
  61. uint8_t InputTotal;//输入总量
  62. }AlarmTypeFrame;
  63. typedef struct
  64. {
  65. uint8_t JamFaultJudgeFlag;//堵塞故障判断标志
  66. uint8_t BubbleFaultJudgeFlag;//气泡或无液故障标志
  67. uint8_t NonePillCaseJudgeFlag;//未装药盒故障标志
  68. uint8_t VoltLowestJudgeFlag; //电池电量低标志
  69. uint8_t JamFaultJudgeCounts;//堵塞故障判断次数
  70. uint8_t BubbleFaultJudgeCounts;//气泡或无液故障次数
  71. uint8_t NonePillCaseJudgeCounts;//未装药盒故障次数
  72. uint8_t VoltLowestJudgeCounts; //电池电量低次数
  73. }AlarmJudgeFrame;
  74. void PECASelfTestHandle( void );
  75. void MechanicalFaultHandle( void );
  76. void JamFaultHandle( void );
  77. void MaxFaultHandle( void );
  78. void BubbleFaultHandle( void );
  79. void NonePillCaseHandle( void );
  80. void BatteryVoltLowHandle( void );
  81. void LineLostHandle( void );
  82. void SystemAlarmJudge( void );
  83. void InputTotalHandle( void );
  84. extern AlarmJudgeFrame SysAlarmJudge;//报警判断
  85. //extern uint8_t MechanicalFaultCounts;//机械故障报警计数,大于2次则报警
  86. extern uint32_t Timer_VoltLowes; //预报警延时30分钟
  87. extern uint8_t VoltLowest_Alarm_Flag; //低电量报警标志
  88. extern AlarmTypeFrame sysAlarmFlag; //报警标志位
  89. extern AlarmTypeFrame AlarmRecord;
  90. extern uint8_t JamSelfcheckCycle; //堵塞自检周期
  91. extern uint8_t JamSelfcheckThroughCycle; //堵塞自检通过周期
  92. #endif