web_params_api.h 4.0 KB

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