web_params_api.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /********************************* (C) РОТЕК ***********************************
  2. * @module web_params_api
  3. * @file web_params_api.h
  4. * @version 1.0.0
  5. * @date XX.XX.XXXX
  6. * $brief template
  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 WEB_PARAMS_API_H
  14. #define WEB_PARAMS_API_H
  15. #include "stdbool.h"
  16. #define JSON_ADD_TAG(tag, get_param, cjson_param) \
  17. do { \
  18. char str[SETTINGS_FIELD_MAX_LEN]; \
  19. memset(str, 0, sizeof(str)); \
  20. get_param(str, &len); \
  21. if (strncmp(tag, "tn_enabled", sizeof(tag)) == 0 \
  22. || strncmp(tag, "ssh_enabled", sizeof(tag)) == 0 \
  23. || strncmp(tag, "dhcp", sizeof(tag)) == 0 \
  24. || strncmp(tag, "swauth", sizeof(tag)) == 0 \
  25. || strncmp(tag, "ups_max_power", sizeof(tag)) == 0 \
  26. || strncmp(tag, "syslog_enable", sizeof(tag)) == 0 \
  27. || strncmp(tag, "rs_enabled", sizeof(tag)) == 0) { \
  28. cJSON_AddNumberToObject(cjson_param, tag, atoi(str)); \
  29. } else if (strncmp(tag, "pgw_en", sizeof(tag)) == 0 ) { \
  30. if (strncmp(str, "true", 4) == 0 ) { \
  31. cJSON_AddBoolToObject(cjson_param, tag, true); \
  32. } else { \
  33. cJSON_AddBoolToObject(cjson_param, tag, false); \
  34. }\
  35. } else { \
  36. cJSON_AddStringToObject(cjson_param, tag, str); \
  37. } \
  38. } while (0);
  39. #define JSON_SET_PARAM(tag, set_param, buf) \
  40. do { \
  41. memset(value, 0, sizeof(value)); \
  42. memset(str, 0, sizeof(str)); \
  43. if (GetParamValue(buf, tag, value, &valueLen)) { \
  44. url_decode(str, sizeof(str), value); \
  45. set_param(str); \
  46. } else { \
  47. if (strncmp(tag, "tn_enabled", sizeof(tag)) == 0 \
  48. || strncmp(tag, "ssh_enabled", sizeof(tag)) == 0 \
  49. || strncmp(tag, "dhcp", sizeof(tag)) == 0 \
  50. || strncmp(tag, "swauth", sizeof(tag)) == 0 \
  51. || strncmp(tag, "pgw_en", sizeof(tag)) == 0 \
  52. || strncmp(tag, "syslog_enable", sizeof(tag)) == 0 \
  53. || strncmp(tag, "rs_enabled", sizeof(tag)) == 0) { \
  54. set_param(value); \
  55. } \
  56. } \
  57. } while (0);
  58. /**
  59. * @brief Заполнение JSON строки параметров
  60. */
  61. char *HTTP_GetParamsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  62. /**
  63. * @brief Возвращяет строку с настройками на второй странице
  64. */
  65. char *HTTP_GetSettingsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  66. #ifdef NOTIFICATION_CONTROL_ENABLE
  67. /**
  68. * @brief Возвращяет строку с настройками уведомлений (есть/нет отправка)
  69. * @retval None
  70. */
  71. char *HTTP_GetTrapAccess(char *params, uint16_t len_params, char *buf, uint16_t *len_out);
  72. #endif
  73. /**
  74. * @brief Возвращяет строку с информацией об устройстве
  75. */
  76. char *HTTP_GetInfo(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  77. void HTTP_GetHistoryPage(char* buf, uint32_t pageNumber);
  78. void HTTP_GetUpsHistoryPage(char* buf, uint32_t pageNumber);
  79. /**
  80. * @brief Возвращает uptime, freq, dutycicle
  81. */
  82. void HTTP_GetProgonParams(char *buf);
  83. /**
  84. * @brief Сброс настроек
  85. */
  86. void HTTP_ResetSettings(void);
  87. /**
  88. * @brief Сброс настроек
  89. */
  90. void HTTP_SaveSettings(void);
  91. /**
  92. * @brief Перезагрузка контроллера
  93. */
  94. char *HTTP_Reboot(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  95. /**
  96. * @brief
  97. */
  98. void HTTP_StartResetTask(bool fBootMode);
  99. /**
  100. * @brief
  101. */
  102. void vTaskReboot(void * pvParameters);
  103. #endif /* #ifndef WEB_PARAMS_API_H */
  104. /********************************* (C) РОТЕК **********************************/