trap_api.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /********************************* (C) РОТЕК ***********************************
  2. * @module trap_api
  3. * @file trap_api.h
  4. * @version 1.0.0
  5. * @date XX.XX.XXXX
  6. * $brief trap_api
  7. *******************************************************************************
  8. * @history Version Author Comment
  9. * XX.XX.XXXX 1.0.0 Telenkov D.A. First release.
  10. *******************************************************************************
  11. */
  12. /* Define to prevent recursive ----------------------------------------------*/
  13. #ifndef TRAP_API_H
  14. #define TRAP_API_H
  15. #include <stdbool.h>
  16. typedef enum
  17. {
  18. SIMPLE_TRAP = 0,
  19. VARBIND_TRAP,
  20. } TRAP_TYPE_t;
  21. typedef enum
  22. {
  23. FW_VERSION_UPDATE = 1,
  24. FW_VERSION_UPDATED,
  25. DEVICE_RESTORED,
  26. DEVICE_REBOOTED,
  27. #ifndef HARDWARE_BT6709
  28. DI0_NORM,
  29. DI0_ALARM,
  30. DO0_TOGGLED,
  31. DO1_TOGGLED,
  32. #if defined HARDWARE_BT6707
  33. DO2_TOGGLED,
  34. #endif
  35. #endif
  36. BATTERY_HIGH_TEMPERATURE_NORM,
  37. BATTERY_HIGH_TEMPERATURE_ALARM,
  38. LINE_ALARM,
  39. LINE_NORM,
  40. LOW_BAT_ALARM,
  41. LOW_BAT_NORM,
  42. POWER_ALARM,
  43. POWER_NORM,
  44. CONNECT_MONITOR_ALARM,
  45. CONNECT_MONITOR_NORM,
  46. BATTERY_CONNECT_ALARM,
  47. BATTERY_CONNECT_NORM,
  48. BATTERY_LOW_TEMPERATURE_NORM,
  49. BATTERY_LOW_TEMPERATURE_ALARM,
  50. #ifdef HARDWARE_BT6709
  51. BATTERY_CHANGE_ALARM,
  52. BATTERY_CHANGE_MORM,
  53. #endif
  54. ALL_TRAPS
  55. } TRAP_LIST_t;
  56. /**
  57. * @brief
  58. */
  59. typedef struct
  60. {
  61. TRAP_LIST_t listName;
  62. uint8_t trapId; // ID в ветке traps
  63. uint8_t varbindId; // ID присоединенной переменной
  64. bool trapEnable; // false - отправка трапа не разрешена, true - отправка разрешена
  65. void (*handle)(char*, uint8_t*);
  66. } TRAP_t;
  67. /**
  68. * @brief Отправка обычного трапа с сообщением, зарегистрированного в базе.
  69. */
  70. bool SNMP_SendMessageTrap(TRAP_t trap, char* msg, uint8_t len);
  71. /**
  72. * @brief Отправка трапа с переменной, зарегистрированного в базе.
  73. * @retval
  74. */
  75. bool SNMP_SendVarbindTrap(TRAP_t *trap);
  76. /**
  77. * @brief Инициализация базы трапов
  78. */
  79. void SNMP_InitTrapsBase(void);
  80. /**
  81. * @brief Отправка трапа, зарегистрированного в базе
  82. */
  83. bool SNMP_SendTrap(TRAP_t trap);
  84. #endif /* #ifndef TRAP_API_H */
  85. /********************************* (C) РОТЕК **********************************/