/********************************* (C) РОТЕК *********************************** * @module web_params_api * @file web_params_api.h * @version 1.0.0 * @date XX.XX.XXXX * $brief template ******************************************************************************* * @history Version Author Comment * XX.XX.XXXX 1.0.0 Telenkov D.A. First release. ******************************************************************************* */ /* Define to prevent recursive ----------------------------------------------*/ #ifndef WEB_PARAMS_API_H #define WEB_PARAMS_API_H #include "stdbool.h" #define JSON_ADD_TAG(tag, get_param, cjson_param) \ do { \ char str[SETTINGS_FIELD_MAX_LEN]; \ memset(str, 0, sizeof(str)); \ get_param(str, &len); \ if (strncmp(tag, "tn_enabled", sizeof(tag)) == 0 \ || strncmp(tag, "ssh_enabled", sizeof(tag)) == 0 \ || strncmp(tag, "dhcp", sizeof(tag)) == 0 \ || strncmp(tag, "swauth", sizeof(tag)) == 0 \ || strncmp(tag, "ups_max_power", sizeof(tag)) == 0 \ || strncmp(tag, "syslog_enable", sizeof(tag)) == 0 \ || strncmp(tag, "rs_enabled", sizeof(tag)) == 0) { \ cJSON_AddNumberToObject(cjson_param, tag, atoi(str)); \ } else if (strncmp(tag, "pgw_en", sizeof(tag)) == 0 ) { \ if (strncmp(str, "true", 4) == 0 ) { \ cJSON_AddBoolToObject(cjson_param, tag, true); \ } else { \ cJSON_AddBoolToObject(cjson_param, tag, false); \ }\ } else { \ cJSON_AddStringToObject(cjson_param, tag, str); \ } \ } while (0); #define JSON_SET_PARAM(tag, set_param, buf) \ do { \ memset(value, 0, sizeof(value)); \ memset(str, 0, sizeof(str)); \ if (GetParamValue(buf, tag, value, &valueLen)) { \ url_decode(str, sizeof(str), value); \ set_param(str); \ } else { \ if (strncmp(tag, "tn_enabled", sizeof(tag)) == 0 \ || strncmp(tag, "ssh_enabled", sizeof(tag)) == 0 \ || strncmp(tag, "dhcp", sizeof(tag)) == 0 \ || strncmp(tag, "swauth", sizeof(tag)) == 0 \ || strncmp(tag, "pgw_en", sizeof(tag)) == 0 \ || strncmp(tag, "syslog_enable", sizeof(tag)) == 0 \ || strncmp(tag, "rs_enabled", sizeof(tag)) == 0) { \ set_param(value); \ } \ } \ } while (0); /** * @brief Заполнение JSON строки параметров */ char *HTTP_GetParamsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut); /** * @brief Возвращяет строку с настройками на второй странице */ char *HTTP_GetSettingsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut); #ifdef NOTIFICATION_CONTROL_ENABLE /** * @brief Возвращяет строку с настройками уведомлений (есть/нет отправка) * @retval None */ char *HTTP_GetTrapAccess(char *params, uint16_t len_params, char *buf, uint16_t *len_out); #endif /** * @brief Возвращяет строку с информацией об устройстве */ char *HTTP_GetInfo(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut); void HTTP_GetHistoryPage(char* buf, uint32_t pageNumber); void HTTP_GetUpsHistoryPage(char* buf, uint32_t pageNumber); /** * @brief Возвращает uptime, freq, dutycicle */ void HTTP_GetProgonParams(char *buf); /** * @brief Сброс настроек */ void HTTP_ResetSettings(void); /** * @brief Сброс настроек */ void HTTP_SaveSettings(void); /** * @brief Перезагрузка контроллера */ char *HTTP_Reboot(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut); /** * @brief */ void HTTP_StartResetTask(bool fBootMode); /** * @brief */ void vTaskReboot(void * pvParameters); #endif /* #ifndef WEB_PARAMS_API_H */ /********************************* (C) РОТЕК **********************************/