1688 lines
81 KiB
C
1688 lines
81 KiB
C
//
|
||
// Created by cfif on 10.11.22.
|
||
//
|
||
#include "lwip/apps/httpd.h"
|
||
#include "lwip/debug.h"
|
||
#include "lwip/apps/fs.h"
|
||
#include <string.h>
|
||
#include "httpd.h"
|
||
#include "httpd_get.h"
|
||
#include "httpd_TablesPostGet.h"
|
||
#include "httpd_base_func.h"
|
||
#include "Gnss.h"
|
||
#include "ModemGonecFunc.h"
|
||
#include "stdlib.h"
|
||
#include "BootJump.h"
|
||
#include "ModemLog.h"
|
||
#include "Modem_Timer.h"
|
||
#include "ModemSendFunc.h"
|
||
#include "ModemBufCreateHeader.h"
|
||
|
||
extern uint32_t webup_status;
|
||
|
||
//uint8_t random2[20] = {80, 82, 85, 81, 86, 90, 95, 97, 98, 110, 102, 103, 104, 99, 90, 89, 88, 86, 84, 83};
|
||
//uint8_t random2_i = 0;
|
||
|
||
int httpd_get_begin(tHttpSetting *httpSetting, typeAuth auth, const char *uri, char *params,
|
||
bool *isContentFile,
|
||
char *fileNameContent,
|
||
char *bufAnswer,
|
||
// char *bigBuffer,
|
||
// bool *isBigBuffer,
|
||
uint32_t *tot_len) {
|
||
|
||
*isContentFile = false;
|
||
*tot_len = 0;
|
||
// *isBigBuffer = false;
|
||
|
||
// httpSetting->isContentFile = isContentFile;
|
||
// httpSetting->tot_len = tot_len;
|
||
// httpSetting->bufAnswer = bufAnswer;
|
||
// httpSetting->isBigBuffer = isBigBuffer;
|
||
|
||
httpSetting->params_get_uri.paramcount = extract_uri_ex_parameters(params, httpSetting->params_get_uri.params_names,
|
||
httpSetting->params_get_uri.params_vals,
|
||
MAX_POST_GET_PARAMETERS);
|
||
|
||
int pos = -1;
|
||
int len = -1;
|
||
|
||
char to[MAX_LEN_PATH_FS];
|
||
to[0] = '\0';
|
||
int urgency = -1;
|
||
int chSv = -1;
|
||
int isfile = -1;
|
||
int kvs = -1;
|
||
int routing = -1;
|
||
|
||
char fileName[MAX_LEN_PATH_FS];
|
||
fileName[0] = '\0';
|
||
|
||
|
||
//начало--------Общий запрос данных------------------------------------------------------------------
|
||
//начало--------Общий запрос данных------------------------------------------------------------------
|
||
//начало--------Общий запрос данных------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/getdata") == 0) {
|
||
|
||
|
||
time_t timestamp_block;
|
||
httpSetting->rtc->get(httpSetting->rtc, ×tamp_block);
|
||
|
||
httpSetting->modemMain->timestamp_start_block_work =
|
||
(uint32_t) timestamp_block - httpSetting->modemMain->timestamp_start_block;
|
||
|
||
|
||
uint32_t get_timestamp_gnss;
|
||
Gnss_GetTime(httpSetting->modemMain->gnss, &get_timestamp_gnss);
|
||
|
||
uint32_t vcc = getVcc(httpSetting->taskAdc);
|
||
|
||
*tot_len = json_generate_get_data(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
get_timestamp_gnss,
|
||
timestamp_block + httpSetting->storage->nvm.Settings_General.GMTcorr_v * 3600,
|
||
timestamp_block,
|
||
httpSetting->modemMain->timestamp_start_block_work +
|
||
httpSetting->modemMain->timestamp_start_block_work_add,
|
||
|
||
vcc,
|
||
|
||
httpSetting->modemMain->temp,
|
||
|
||
httpSetting->modemMain->dataRssi,
|
||
|
||
httpSetting->storage->nvm.Settings_Tracert.mTracer_v,
|
||
|
||
httpSetting->modemMain->location.valid,
|
||
(float) httpSetting->modemMain->location.latitude,
|
||
(float) httpSetting->modemMain->location.longitude,
|
||
|
||
&httpSetting->modemMain->eventWebState,
|
||
getStateWriteFileLogger(httpSetting->flog),
|
||
getStateWriteLog2(httpSetting->modemMainLog)
|
||
|
||
);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------Общий запрос данных-------------------------------------------------------------------
|
||
//конец--------Общий запрос данных-------------------------------------------------------------------
|
||
//конец--------Общий запрос данных------------------------------------------------------------------
|
||
|
||
|
||
//начало--------Процесс обновления WEB-----------------------------------------------
|
||
//начало--------Процесс обновления WEB-----------------------------------------------
|
||
//начало--------Процесс обновления WEB-----------------------------------------------
|
||
|
||
if (strcmp(uri, "/webup") == 0) {
|
||
|
||
*tot_len = json_generate_webup_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, webup_status);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------Процесс обновления WEB------------------------------------------------
|
||
//конец--------Процесс обновления WEB------------------------------------------------
|
||
//конец--------Процесс обновления WEB------------------------------------------------
|
||
|
||
|
||
//начало--------SOS------------------------------------------------------------------
|
||
//начало--------SOS------------------------------------------------------------------
|
||
//начало--------SOS------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/sos") == 0) {
|
||
|
||
sendMsd(httpSetting->modemMain);
|
||
|
||
//httpSetting->modemMain->testOne = 1;
|
||
//httpSetting->modemMain->stateRequest.stateReqCreateExtW = StateReqExtForCreate;
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------SOS------------------------------------------------------------------
|
||
//конец--------SOS------------------------------------------------------------------
|
||
//конец--------SOS------------------------------------------------------------------
|
||
|
||
//начало--------Дистанция------------------------------------------------------------------
|
||
//начало--------Дистанция------------------------------------------------------------------
|
||
//начало--------Дистанция------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/dist") == 0) {
|
||
|
||
uint32_t distAlm = 0;
|
||
|
||
int stepParam = 0;
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "dist") == 0) {
|
||
char *end;
|
||
distAlm = strtoul(httpSetting->params_get_uri.params_vals[j], &end, 10);
|
||
++stepParam;
|
||
}
|
||
|
||
}
|
||
|
||
if ((stepParam != 1) || (distAlm < 1500) || (distAlm > 5000)) {
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
|
||
if (httpSetting->storage->nvm.dist != distAlm) {
|
||
httpSetting->storage->nvm.dist = distAlm;
|
||
DeviceStorageCounterIni_DumpDist(httpSetting->storage);
|
||
|
||
}
|
||
|
||
uint32_t err = Post_OK;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
//конец--------Дистанция------------------------------------------------------------------
|
||
//конец--------Дистанция------------------------------------------------------------------
|
||
//конец--------Дистанция------------------------------------------------------------------
|
||
|
||
//начало--------Маршрутизация------------------------------------------------------------------
|
||
//начало--------Маршрутизация------------------------------------------------------------------
|
||
//начало--------Маршрутизация------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/routing") == 0) {
|
||
|
||
uint32_t routingAlm = 0;
|
||
uint32_t timeZoneInSatAlm = 0;
|
||
|
||
int stepParam = 0;
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "routing") == 0) {
|
||
char *end;
|
||
routingAlm = strtoul(httpSetting->params_get_uri.params_vals[j], &end, 10);
|
||
++stepParam;
|
||
}
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "time") == 0) {
|
||
char *end;
|
||
timeZoneInSatAlm = strtoul(httpSetting->params_get_uri.params_vals[j], &end, 10);
|
||
++stepParam;
|
||
}
|
||
|
||
}
|
||
|
||
if ((stepParam != 2) || (routingAlm > 1) || (timeZoneInSatAlm < 1) || (timeZoneInSatAlm > 15)) {
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
|
||
time_t now;
|
||
httpSetting->rtc->get(httpSetting->rtc, &now);
|
||
now += httpSetting->storage->nvm.Settings_General.GMTcorr_v * 3600;
|
||
|
||
bool almanacIsValid = GonetsAlmanac_IsValid(httpSetting->modemMain->alms, now);
|
||
if (almanacIsValid == false) {
|
||
httpSetting->storage->runtime.almaError = true;
|
||
} else {
|
||
httpSetting->storage->runtime.almaError = false;
|
||
}
|
||
|
||
FILINFO fno;
|
||
FRESULT fr = f_stat(file_cur_almhs, &fno);
|
||
// Нет файла альманаха
|
||
if (fr) {
|
||
uint32_t err = Post_NO_ALMA;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
}
|
||
|
||
// Ошибка альманаха
|
||
if ((routingAlm == 1) && (httpSetting->storage->runtime.almaError)) {
|
||
uint32_t err = Post_OLD_ALMA;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
|
||
httpSetting->storage->nvm.routing = routingAlm;
|
||
httpSetting->storage->nvm.timeZoneInSat = timeZoneInSatAlm;
|
||
|
||
if (routingAlm == 0) {
|
||
httpSetting->storage->runtime.BannedSAT_ex[0] = '\0';
|
||
strcat(httpSetting->storage->runtime.BannedSAT_ex,
|
||
httpSetting->storage->runtime.Settings_General.BannedSAT_v);
|
||
|
||
SetRoutingRestrictSc(httpSetting->modemMain, httpSetting->storage->nvm.Settings_General.BannedSAT_v);
|
||
}
|
||
|
||
DeviceStorageCounterIni_DumpRouting(httpSetting->storage);
|
||
|
||
uint32_t err = Post_OK;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
//конец--------Маршрутизация------------------------------------------------------------------
|
||
//конец--------Маршрутизация------------------------------------------------------------------
|
||
//конец--------Маршрутизация------------------------------------------------------------------
|
||
|
||
|
||
//начало--------RSSI------------------------------------------------------------------
|
||
//начало--------RSSI------------------------------------------------------------------
|
||
//начало--------RSSI------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/rssi") == 0) {
|
||
int32_t rssi;
|
||
rssi = httpSetting->modemMain->rssi;
|
||
*tot_len = json_generate_rssi_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, rssi);
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------RSSI------------------------------------------------------------------
|
||
//конец--------RSSI------------------------------------------------------------------
|
||
//конец--------RSSI------------------------------------------------------------------
|
||
|
||
//начало--------Удаление логов------------------------------------------------------------------
|
||
//начало--------Удаление логов------------------------------------------------------------------
|
||
//начало--------Удаление логов------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/dellog") == 0) {
|
||
|
||
if (osMutexAcquire(httpSettings.accessLOG, TIME_MUTEX_LOG_ACCESS) == osOK) {
|
||
bool result = delDirFileFs(httpSetting->fs, (char *) dir_logs);
|
||
osMutexRelease(httpSettings.accessLOG);
|
||
} else {
|
||
return Post_MUTEX_ERR;
|
||
}
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
if (strcmp(uri, "/dellog2") == 0) {
|
||
|
||
if (osMutexAcquire(httpSettings.accessLOG2, TIME_MUTEX_LOG_ACCESS) == osOK) {
|
||
bool result = delDirFileFs(httpSetting->fs, (char *) dir_logs2);
|
||
osMutexRelease(httpSettings.accessLOG2);
|
||
} else {
|
||
return Post_MUTEX_ERR;
|
||
}
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------Удаление логов-------------------------------------------------------------------
|
||
//конец--------Удаление логов-------------------------------------------------------------------
|
||
//конец--------Удаление логов------------------------------------------------------------------
|
||
|
||
//начало--------Тестирование АФУ------------------------------------------------------------------
|
||
//начало--------Тестирование АФУ------------------------------------------------------------------
|
||
//начало--------Тестирование АФУ------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/testafu") == 0) {
|
||
|
||
uint32_t err = Post_SET_MODEM;
|
||
|
||
bool result = TestAFU(httpSetting->modemMain);
|
||
|
||
if (result)
|
||
return Post_OK;
|
||
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
|
||
}
|
||
//конец--------Тестирование АФУ-------------------------------------------------------------------
|
||
//конец--------Тестирование АФУ-------------------------------------------------------------------
|
||
//конец--------Тестирование АФУ------------------------------------------------------------------
|
||
|
||
|
||
//начало--------Измерение уровня шума АПО------------------------------------------------------------------
|
||
//начало--------Измерение уровня шума АПО------------------------------------------------------------------
|
||
//начало--------Измерение уровня шума АПО------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/testapo") == 0) {
|
||
|
||
uint32_t err = Post_SET_MODEM;
|
||
|
||
bool result = TestAPO(httpSetting->modemMain);
|
||
|
||
if (result)
|
||
return Post_OK;
|
||
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
|
||
}
|
||
//конец--------Измерение уровня шума АПО-------------------------------------------------------------------
|
||
//конец--------Измерение уровня шума АПО-------------------------------------------------------------------
|
||
//конец--------Измерение уровня шума АПО------------------------------------------------------------------
|
||
|
||
//начало--------Перезагрузка платы------------------------------------------------------------------
|
||
//начало--------Перезагрузка платы------------------------------------------------------------------
|
||
//начало--------Перезагрузка платы------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/reboot_modem") == 0) {
|
||
|
||
GpioPinSet(&httpSetting->gpios->Power.gonec_reset, false);
|
||
SystemDelayMs(1000);
|
||
GpioPinSet(&httpSetting->gpios->Power.gonec_reset, true);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
if (strcmp(uri, "/reboot") == 0) {
|
||
|
||
if ((osMutexAcquire(httpSetting->accessLOG2, TIME_MUTEX_LOG_ACCESS) == osOK) &&
|
||
(osMutexAcquire(httpSetting->accessLOG, TIME_MUTEX_LOG_ACCESS) == osOK)) {
|
||
|
||
//GpioPinSet(&httpSetting->gpios->Power.gonec_reset, false);
|
||
|
||
NVIC_SystemReset();
|
||
//BootJumpToAddress(0x08000000);
|
||
}
|
||
|
||
return Post_OK;
|
||
}
|
||
//конец--------Перезагрузка платы-------------------------------------------------------------------
|
||
//конец--------Перезагрузка платы-------------------------------------------------------------------
|
||
//конец--------Перезагрузка платы------------------------------------------------------------------
|
||
|
||
|
||
//начало--------Проверка событий------------------------------------------------------------------
|
||
//начало--------Проверка событий------------------------------------------------------------------
|
||
//начало--------Проверка событий------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/event") == 0) {
|
||
|
||
*tot_len = json_generate_event(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
&httpSetting->modemMain->eventWebState,
|
||
getStateWriteFileLogger(httpSetting->flog),
|
||
getStateWriteLog2(httpSetting->modemMainLog));
|
||
return Post_OK;
|
||
}
|
||
//конец--------Проверка событий-------------------------------------------------------------------
|
||
//конец--------Проверка событий-------------------------------------------------------------------
|
||
//конец--------Проверка событий-------------------------------------------------------------------
|
||
|
||
|
||
//начало--------Тест прошивки------------------------------------------------------------------
|
||
//начало--------Тест прошивки------------------------------------------------------------------
|
||
//начало--------Тест прошивки------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/Software_Test_Web_File") == 0) {
|
||
|
||
bool updateFwOk = FirmwareLoader_CheckBlock(httpSetting->firmwareMainLoader,
|
||
&httpSetting->firmwareMainLoader->update);
|
||
|
||
uint32_t err = Post_CRC;
|
||
if (updateFwOk) {
|
||
err = Post_OK;
|
||
|
||
}
|
||
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
|
||
if (strcmp(uri, "/Software_Test_Boot_Web_File") == 0) {
|
||
|
||
bool updateFwOk = FirmwareLoader_CheckBlock(httpSetting->firmwareBootLoader,
|
||
&httpSetting->firmwareBootLoader->update);
|
||
|
||
uint32_t err = Post_CRC;
|
||
if (updateFwOk) {
|
||
err = Post_OK;
|
||
|
||
}
|
||
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
//конец--------Тест прошивки-------------------------------------------------------------------
|
||
//конец--------Тест прошивки-------------------------------------------------------------------
|
||
//конец--------Тест прошивки-------------------------------------------------------------------
|
||
|
||
//начало--------Получение даты и времени--------------------------------------------------------------------------------------
|
||
//начало--------Получение даты и времени--------------------------------------------------------------------------------------
|
||
//начало--------Получение даты и времени--------------------------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/setdatetime") == 0) {
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "timestamp") == 0) {
|
||
|
||
if (httpSetting->modemMain->location.isOneDateTime) {
|
||
char *end;
|
||
|
||
time_t timestamp;
|
||
|
||
// Сколько прошло до этого времени
|
||
httpSetting->modemMain->timestamp_start_block_work_add = SystemGetMs() / 1000;
|
||
|
||
|
||
timestamp = strtoul(httpSetting->params_get_uri.params_vals[j], &end, 10);
|
||
httpSetting->rtc->set(&httpSetting->rtc, ×tamp);
|
||
|
||
httpSetting->modemMain->timestamp_start_block = timestamp;
|
||
|
||
timeModemStuckGetMs = SystemGetMs();
|
||
httpSetting->modemMain->location.isOneDateTime = false;
|
||
|
||
}
|
||
|
||
uint32_t err = Post_OK;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
}
|
||
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение даты и времени --------------------------------------------------------------------------------------
|
||
//конец--------Получение даты и времени --------------------------------------------------------------------------------------
|
||
//конец--------Получение даты и времени --------------------------------------------------------------------------------------
|
||
|
||
|
||
//начало--------Версия--------------------------------------------------------------------------------------
|
||
//начало--------Версия--------------------------------------------------------------------------------------
|
||
//начало--------Версия--------------------------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/version") == 0) {
|
||
|
||
uint8_t sizeModem;
|
||
uint8_t sizeCrypto;
|
||
char versionModem[128];
|
||
char versionCrypto[128];
|
||
|
||
memset(versionModem, 0, sizeof(versionModem));
|
||
memset(versionCrypto, 0, sizeof(versionCrypto));
|
||
strcpy(versionModem, "null,null");
|
||
strcpy(versionCrypto, "null,null");
|
||
|
||
if (httpSetting->modemMain->isModemCheck)
|
||
Modem_Get_Version_Modem(httpSetting->modemMain, versionModem, &sizeModem, versionCrypto, &sizeCrypto);
|
||
|
||
*tot_len = json_generate_version_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, versionModem,
|
||
versionCrypto);
|
||
return Post_OK;
|
||
}
|
||
//конец--------Версия --------------------------------------------------------------------------------------
|
||
//конец--------Версия --------------------------------------------------------------------------------------
|
||
//конец--------Версия --------------------------------------------------------------------------------------
|
||
|
||
|
||
//начало--------Запрос номера терминала--------------------------------------------------------------------------------------
|
||
//начало--------Запрос номера терминала--------------------------------------------------------------------------------------
|
||
//начало--------Запрос номера терминала--------------------------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/getnumvar") == 0) {
|
||
uint32_t diskfree = 0;
|
||
uint32_t diskall = 0;
|
||
|
||
FRESULT ret;
|
||
DWORD fre_clust, fre_sect, tot_sect;
|
||
FATFS *pt_fs;
|
||
|
||
pt_fs = &httpSetting->fs->fs;
|
||
ret = f_getfree("1:", &fre_clust, &pt_fs);
|
||
if (ret == FR_OK) {
|
||
tot_sect = (pt_fs->n_fatent - 2) * pt_fs->csize;
|
||
fre_sect = fre_clust * pt_fs->csize;
|
||
diskfree = fre_sect / 2;
|
||
diskall = tot_sect / 2;
|
||
|
||
// LoggerPrintf(LOGGER, "%10u кб всего на носителе.\r\n%10u кб свободно.\r\n", tot_sect / 2, fre_sect / 2);
|
||
}
|
||
|
||
char *username = "\0";
|
||
if (auth == 1)
|
||
username = httpSetting->storage->nvm.Settings_General.loginUSER_v;
|
||
if (auth == 2)
|
||
username = httpSetting->storage->nvm.Settings_General.loginINTEG_v;
|
||
if (auth == 3)
|
||
username = httpSetting->storage->nvm.Settings_General.loginADMIN_v;
|
||
|
||
*tot_len = json_generate_vars_send_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
(uint32_t) httpSetting->storage->nvm.Settings_General.ATnum_v,
|
||
username, diskall, diskfree);
|
||
return Post_OK;
|
||
}
|
||
//конец--------Запрос номера терминала --------------------------------------------------------------------------------------
|
||
//конец--------Запрос номера терминала --------------------------------------------------------------------------------------
|
||
//конец--------Запрос номера терминала --------------------------------------------------------------------------------------
|
||
|
||
//начало--------Запрос процентов передачи--------------------------------------------------------------------------------------
|
||
//начало--------Запрос процентов передачи--------------------------------------------------------------------------------------
|
||
//начало--------Запрос процентов передачи--------------------------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/getstatussend") == 0) {
|
||
|
||
FRESULT frFile;
|
||
FILINFO fno;
|
||
|
||
|
||
fileNameContent[0] = '\0';
|
||
strcat(fileNameContent, file_dir_proc);
|
||
|
||
frFile = f_stat(fileNameContent, &fno);
|
||
|
||
|
||
if (frFile) {
|
||
createBufStateFileSend(httpSetting->fs);
|
||
uint32_t err = Post_FS_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
} else {
|
||
*tot_len = fno.fsize;
|
||
*isContentFile = true;
|
||
}
|
||
|
||
// *tot_len = json_generate_proc_send_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
// httpSetting->modemMain->fileSendInfoForJson);
|
||
return Post_OK;
|
||
}
|
||
//конец--------Запрос процентов передачи --------------------------------------------------------------------------------------
|
||
//конец--------Запрос процентов передачи --------------------------------------------------------------------------------------
|
||
//конец--------Запрос процентов передачи --------------------------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/status.xip") == 0) {
|
||
for (int i = 0; i < httpSetting->params_get_uri.paramcount; ++i) {
|
||
|
||
|
||
//начало--------Получение текущего времени------------------------------------------------------------------
|
||
//начало--------Получение текущего времени------------------------------------------------------------------
|
||
//начало--------Получение текущего времени------------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "timestamp") == 0) {
|
||
time_t timestamp_block;
|
||
httpSetting->rtc->get(httpSetting->rtc, ×tamp_block);
|
||
|
||
uint32_t get_timestamp_gnss;
|
||
Gnss_GetTime(httpSetting->modemMain->gnss, &get_timestamp_gnss);
|
||
|
||
httpSetting->modemMain->timestamp_start_block_work =
|
||
timestamp_block - httpSetting->modemMain->timestamp_start_block;
|
||
|
||
|
||
*tot_len = json_generate_timestamp_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
get_timestamp_gnss,
|
||
timestamp_block,
|
||
httpSetting->modemMain->timestamp_start_block_work
|
||
);
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение текущего времени-------------------------------------------------------------------
|
||
//конец--------Получение текущего времени-------------------------------------------------------------------
|
||
//конец--------Получение текущего времени-------------------------------------------------------------------
|
||
|
||
//начало--------Получение текущих координат-----------------------------------------------------------------
|
||
//начало--------Получение текущих координат-----------------------------------------------------------------
|
||
//начало--------Получение текущих координат------------------------------------------------------------------
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "alm_setting") == 0) {
|
||
|
||
*tot_len = json_generate_coordinates_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
httpSetting->modemMain->location.valid,
|
||
(float) httpSetting->modemMain->location.latitude,
|
||
(float) httpSetting->modemMain->location.longitude,
|
||
httpSetting->storage->nvm.routing,
|
||
httpSetting->storage->nvm.dist,
|
||
httpSetting->storage->nvm.timeZoneInSat
|
||
);
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение текущих координат------------------------------------------------------------------
|
||
//конец--------Получение текущих координат------------------------------------------------------------------
|
||
//конец--------Получение текущих координат------------------------------------------------------------------
|
||
|
||
//начало--------Получение данных АЦП------------------------------------------------------------------------
|
||
//начало--------Получение данных АЦП------------------------------------------------------------------------
|
||
//начало--------Получение данных АЦП------------------------------------------------------------------------
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "adc") == 0) {
|
||
|
||
uint32_t vcc = getVcc(httpSetting->taskAdc);
|
||
*tot_len = json_generate_adc_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, vcc);
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение данных АЦП-------------------------------------------------------------------------
|
||
//конец--------Получение данных АЦП-------------------------------------------------------------------------
|
||
//конец--------Получение данных АЦП-------------------------------------------------------------------------
|
||
|
||
//начало--------Получение RSSI------------------------------------------------------------------------------
|
||
//начало--------Получение RSSI------------------------------------------------------------------------------
|
||
//начало--------Получение RSSI------------------------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "rssi") == 0) {
|
||
|
||
int32_t rssi;
|
||
|
||
rssi = httpSetting->modemMain->rssi;
|
||
//rssi = 80 + rand() % (110 - 80);
|
||
//rssi = random2[random2_i];
|
||
//++random2_i;
|
||
//if (random2_i == 20)
|
||
// random2_i = 0;
|
||
|
||
*tot_len = json_generate_rssi_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, rssi);
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение RSSI-------------------------------------------------------------------------------
|
||
//конец--------Получение RSSI-------------------------------------------------------------------------------
|
||
//конец--------Получение RSSI-------------------------------------------------------------------------------
|
||
|
||
|
||
}
|
||
}
|
||
|
||
|
||
//начало--------Запрос текущих статусов-----------------------------------------------------------------------
|
||
//начало--------Запрос текущих статусов--------------------------------------------------------------
|
||
//начало--------Запрос текущих статусов--------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/stat.xip") == 0) {
|
||
|
||
uint32_t stn1 = 0;
|
||
uint32_t stn2 = 0;
|
||
uint32_t stn3 = 0;
|
||
uint8_t numArray[16];
|
||
uint8_t numArrayCount = 0;
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "num") == 0) {
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[j],
|
||
fileName,
|
||
sizeof(fileName));
|
||
|
||
if (strlen(fileName) == 0) {
|
||
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
struct {
|
||
int paramcount;
|
||
char *params_names[MAX_POST_GET_PARAMETERS];
|
||
char *params_vals[MAX_POST_GET_PARAMETERS];
|
||
} params_grp;
|
||
|
||
params_grp.paramcount = extract_grp_ex_parameters(fileName,
|
||
params_grp.params_names,
|
||
params_grp.params_vals,
|
||
MAX_POST_GET_PARAMETERS);
|
||
|
||
numArrayCount = params_grp.paramcount;
|
||
for (int i = 0; i < params_grp.paramcount; ++i) {
|
||
numArray[i] = atoi(params_grp.params_names[i]);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
if (numArrayCount == 0) {
|
||
stn1 = 1;
|
||
stn2 = 1;
|
||
stn3 = 1;
|
||
}
|
||
|
||
for (int i = 0; i < numArrayCount; ++i) {
|
||
if (numArray[i] == 1)
|
||
stn1 = 1;
|
||
if (numArray[i] == 2)
|
||
stn2 = 1;
|
||
if (numArray[i] == 3)
|
||
stn3 = 1;
|
||
}
|
||
|
||
char pathScan[MAX_LEN_PATH_FS];
|
||
|
||
pathScan[0] = '\0';
|
||
strcat(pathScan, dir_sentbox);
|
||
uint32_t globDirCount = 0;
|
||
uint32_t globFileCount = 0;
|
||
scan_files(pathScan, &globDirCount, &globFileCount);
|
||
uint32_t NumFileOutBox = globFileCount;
|
||
|
||
pathScan[0] = '\0';
|
||
strcat(pathScan, dir_inbox);
|
||
globDirCount = 0;
|
||
globFileCount = 0;
|
||
scan_files(pathScan, &globDirCount, &globFileCount);
|
||
uint32_t NumFileInbox = globFileCount;
|
||
|
||
pathScan[0] = '\0';
|
||
strcat(pathScan, dir_outbox);
|
||
globDirCount = 0;
|
||
globFileCount = 0;
|
||
scan_files(pathScan, &globDirCount, &globFileCount);
|
||
uint32_t CntMsgsOutBox = globFileCount;
|
||
|
||
*tot_len = json_generate_stat_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, NumFileOutBox, NumFileInbox,
|
||
CntMsgsOutBox, stn1, stn2, stn3);
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------Запрос текущих статусов-----------------------------------------------------------------------
|
||
//конец--------Запрос текущих статусов--------------------------------------------------------------
|
||
//конец--------Запрос текущих статусов--------------------------------------------------------------
|
||
|
||
|
||
//начало--------Запись переменных-----------------------------------------------------------------------
|
||
//начало--------Запись переменных--------------------------------------------------------------
|
||
//начало--------Запись переменных--------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/wvar.xip") == 0) {
|
||
tHttpPostSetting envPost;
|
||
|
||
envPost.storage = httpSetting->storage;
|
||
envPost.modemMain = httpSetting->modemMain;
|
||
|
||
char *json = httpSetting->params_get_uri.params_names[0];
|
||
|
||
envPost.bufAnswer = json;
|
||
idPostResult_t result = handlerPost_Var(&envPost, AUTH_INTEG);
|
||
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------Запись переменных-----------------------------------------------------------------------
|
||
//конец--------Запись переменных--------------------------------------------------------------
|
||
//конец--------Запись переменных--------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/var.xip") == 0) {
|
||
// for (int i = 0; i < httpSetting->params_get_uri.paramcount; ++i) {
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
//начало--------Запрос настроек по группам--------------------------------------------------------------
|
||
//начало--------Запрос настроек по группам--------------------------------------------------------------
|
||
//начало--------Запрос настроек по группам--------------------------------------------------------------
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "grp") == 0) {
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[j],
|
||
fileName,
|
||
sizeof(fileName));
|
||
|
||
if (strlen(fileName) == 0) {
|
||
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
// Сохранение настроек во временные
|
||
Nvm_To_RuntimeSettings(httpSetting->storage);
|
||
|
||
bool isWriteMem = false;
|
||
|
||
if (osMutexAcquire(httpSetting->accessMODEM, TIME_MUTEX_MODEM_ACCESS) != osOK) {
|
||
uint32_t err = Post_MUTEX_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
|
||
|
||
emac_stop();
|
||
idPostResult_t result = ModemGetInitAt(httpSetting->modemMain, &isWriteMem, true, true, true, true);
|
||
emac_start();
|
||
|
||
|
||
osMutexRelease(httpSetting->accessMODEM);
|
||
|
||
if (isWriteMem) {
|
||
// Загрузка настроек из временных
|
||
//RuntimeToNvmSettings();
|
||
// Загрузка настроек из временных
|
||
Runtime_To_NvmSettings(httpSetting->storage);
|
||
|
||
// Сохранение во флеш
|
||
DeviceStorageSetupIni_Dump(httpSetting->storage);
|
||
}
|
||
|
||
*tot_len = SettingToJSON_grp(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, fileName, auth);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------Запрос настроек по группам--------------------------------------------------------------
|
||
//конец--------Запрос настроек по группам--------------------------------------------------------------
|
||
//конец--------Запрос настроек по группам--------------------------------------------------------------
|
||
|
||
//начало--------Запрос настроек по переменным-----------------------------------------------------------------------
|
||
//начало--------Запрос настроек по переменным--------------------------------------------------------------
|
||
//начало--------Запрос настроек по переменным--------------------------------------------------------------
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "num") == 0) {
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[j],
|
||
fileName,
|
||
sizeof(fileName));
|
||
|
||
if (strlen(fileName) == 0) {
|
||
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
// Сохранение настроек во временные
|
||
Nvm_To_RuntimeSettings(httpSetting->storage);
|
||
|
||
*tot_len = SettingToJSON_num(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, fileName, auth);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------Запрос настроек по переменным--------------------------------------------------------------
|
||
//конец--------Запрос настроек по переменным--------------------------------------------------------------
|
||
//конец--------Запрос настроек по переменным--------------------------------------------------------------
|
||
}
|
||
// }
|
||
}
|
||
|
||
|
||
|
||
//начало--------Получение содержимого директории------------------------------------------------------------
|
||
//начало--------Получение содержимого директории------------------------------------------------------------
|
||
//начало--------Получение содержимого директории------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/getexdir") == 0) {
|
||
|
||
pos = 0;
|
||
len = 10;
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "pos") == 0)
|
||
pos = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "len") == 0)
|
||
len = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "getdir") == 0)
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[j],
|
||
fileName,
|
||
sizeof(fileName));
|
||
|
||
}
|
||
|
||
if (strlen(fileName) > 0)
|
||
fileName[strlen(fileName) - 1] = '\0';
|
||
|
||
idPostResult_t result;
|
||
|
||
|
||
int countFiles = getCountDir(httpSetting, &fileName[1], "*");
|
||
|
||
if (countFiles > 400) {
|
||
result = getDirExFile(httpSetting, tot_len, fileNameContent, bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
&fileName[1], countFiles, pos, pos + len);
|
||
|
||
if (result) {
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
} else {
|
||
*isContentFile = true;
|
||
}
|
||
} else {
|
||
|
||
result = getDirExMem(httpSetting, tot_len, bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, &fileName[1], countFiles,
|
||
pos, pos + len);
|
||
|
||
if (result) {
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
}
|
||
|
||
}
|
||
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение содержимого директории-------------------------------------------------------------
|
||
//конец--------Получение содержимого директории-------------------------------------------------------------
|
||
//конец--------Получение содержимого директории-------------------------------------------------------------
|
||
|
||
|
||
|
||
//начало--------Получение содержимого директории с выборкой------------------------------------------------------------
|
||
//начало--------Получение содержимого директории с выборкой------------------------------------------------------------
|
||
//начало--------Получение содержимого директории с выборкой------------------------------------------------------------
|
||
|
||
|
||
|
||
if (strcmp(uri, "/getsampledir") == 0) {
|
||
|
||
pos = 0;
|
||
len = 10;
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "pos") == 0)
|
||
pos = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "len") == 0)
|
||
len = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "getdir") == 0)
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[j],
|
||
fileName,
|
||
sizeof(fileName));
|
||
|
||
}
|
||
|
||
if (strlen(fileName) > 0)
|
||
fileName[strlen(fileName) - 1] = '\0';
|
||
|
||
idPostResult_t result;
|
||
|
||
result = getSampleDirMem(httpSetting, tot_len, bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, &fileName[1], pos,
|
||
pos + len);
|
||
|
||
if (result) {
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
}
|
||
|
||
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение содержимого директории с выборкой-------------------------------------------------------------
|
||
//конец--------Получение содержимого директории с выборкой-------------------------------------------------------------
|
||
//конец--------Получение содержимого директории с выборкой-------------------------------------------------------------
|
||
|
||
|
||
|
||
//начало--------Получение альманаха-------------------------------------------------------------------------
|
||
//начало--------Получение альманаха-------------------------------------------------------------------------
|
||
//начало--------Получение альманаха-------------------------------------------------------------------------
|
||
|
||
if (strcmp(uri, "/alma.xip") == 0) {
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "run") == 0) {
|
||
pos = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
if ((pos < 0) || (pos > 1)) {
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
uint32_t err = 0;
|
||
|
||
if (pos == 1) {
|
||
httpSetting->modemMain->stateRequest.stateReqAlmaWebRunStop = StateReqAlmaWebRun;
|
||
}
|
||
|
||
if (pos == 0) {
|
||
httpSetting->modemMain->stateRequest.stateReqAlmaWebRunStop = StateReqAlmaWebStop;
|
||
}
|
||
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
|
||
}
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "state") == 0) {
|
||
|
||
*tot_len = json_generate_alma_state_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
httpSetting->modemMain->stateRequest.stateReqAlma);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
//конец--------Получение альманаха--------------------------------------------------------------------------
|
||
//конец--------Получение альманаха--------------------------------------------------------------------------
|
||
//конец--------Получение альманаха-------------------------------------------------------------------------
|
||
|
||
|
||
|
||
if (strcmp(uri, "/cmd.xip") == 0) {
|
||
|
||
for (int i = 0; i < httpSetting->params_get_uri.paramcount; ++i) {
|
||
|
||
//начало--------Запись файла-----------------------------------------------------------------------
|
||
//начало--------Запись файла--------------------------------------------------------------
|
||
//начало--------Запись файла--------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "wrfile") == 0) {
|
||
tHttpPostSetting envPost;
|
||
|
||
envPost.params_post_uri.paramcount = httpSetting->params_get_uri.paramcount;
|
||
for (int k = 0; k < httpSetting->params_get_uri.paramcount; ++k) {
|
||
envPost.params_post_uri.params_names[k] = httpSetting->params_get_uri.params_names[k];
|
||
envPost.params_post_uri.params_vals[k] = httpSetting->params_get_uri.params_vals[k];
|
||
}
|
||
|
||
envPost.fs = httpSetting->fs;
|
||
envPost.bufAnswer = bufAnswer;
|
||
idPostResult_t result = handlerPost_Message_Outbox_Wrfile(&envPost);
|
||
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------Запись файла-----------------------------------------------------------------------
|
||
//конец--------Запись файла--------------------------------------------------------------
|
||
//конец--------Запись файла--------------------------------------------------------------
|
||
|
||
|
||
//начало--------Запрос номера терминала--------------------------------------------------------------------------------------
|
||
//начало--------Запрос номера терминала--------------------------------------------------------------------------------------
|
||
//начало--------Запрос номера терминала--------------------------------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "getauth") == 0) {
|
||
|
||
*tot_len = json_generate_auth_send_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
(uint32_t) httpSetting->auth);
|
||
return Post_OK;
|
||
}
|
||
//конец--------Запрос номера терминала --------------------------------------------------------------------------------------
|
||
//конец--------Запрос номера терминала --------------------------------------------------------------------------------------
|
||
//конец--------Запрос номера терминала --------------------------------------------------------------------------------------
|
||
|
||
|
||
//начало--------Создание входящего файла--------------------------------------------------------------------
|
||
//начало--------Создание входящего файла--------------------------------------------------------------------
|
||
//начало--------Создание входящего файла--------------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "sendmsg") == 0) {
|
||
|
||
chSv = 1;
|
||
isfile = 0;
|
||
kvs = 0;
|
||
urgency = 0;
|
||
routing = 0;
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "urgency") == 0)
|
||
urgency = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "chSv") == 0)
|
||
chSv = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "file") == 0)
|
||
isfile = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "kvs") == 0)
|
||
kvs = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "routing") == 0)
|
||
routing = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "sendmsg") == 0)
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[j],
|
||
fileName,
|
||
sizeof(fileName));
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "to") == 0)
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[j], to, sizeof(to));
|
||
}
|
||
|
||
if ((urgency == -1) || (chSv == -1) || (isfile == -1) || (kvs == -1) || (strlen(fileName) == 0) ||
|
||
(strlen(to) == 0) || (urgency > 9) || (chSv > 2) || (isfile > 1)) {
|
||
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
// Время не получено
|
||
if (httpSetting->modemMain->location.isOneDateTime) {
|
||
uint32_t err = Post_GNSS_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
bool isToGonec = false;
|
||
uint32_t gonecTo;
|
||
|
||
if ((chSv == 1) || (chSv == 0)) {
|
||
char *end;
|
||
gonecTo = strtoul(to, &end, 10);
|
||
if ((gonecTo > 0) && (gonecTo <= 99999)) {
|
||
isToGonec = true;
|
||
}
|
||
}
|
||
|
||
if (isTo(to, '@')) {
|
||
isToGonec = true;
|
||
}
|
||
|
||
idPostResult_t result = Post_PARAM_ERR;
|
||
|
||
if (isToGonec) {
|
||
|
||
fileName[strlen(fileName) - 1] = '\0';
|
||
|
||
// if (osMutexAcquire(httpSettings.accessHTTP, TIME_MUTEX_HTTP_ACCESS) != osOK) {
|
||
// uint32_t err = Post_MUTEX_ERR;
|
||
// *tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
// return Post_OK;
|
||
// }
|
||
|
||
time_t timestamp = 0;
|
||
httpSettings.rtc->get(&httpSettings.rtc, ×tamp);
|
||
timestamp += httpSettings.storage->nvm.Settings_General.GMTcorr_v * 3600;
|
||
|
||
result = handlerGet_Message_Outbox_CreateTempOrRealFile_Sendmsg(httpSetting,
|
||
true,
|
||
&fileName[1],
|
||
0,
|
||
0,
|
||
timestamp,
|
||
to,
|
||
urgency,
|
||
chSv,
|
||
isfile,
|
||
kvs,
|
||
routing,
|
||
0);
|
||
// osMutexRelease(httpSettings.accessHTTP);
|
||
|
||
httpSetting->rtc->get(&httpSetting->rtc, &httpSetting->modemMain->eventWebState.EVENT_OUTBOX);
|
||
|
||
}
|
||
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
|
||
}
|
||
//конец--------Создание входящего файла--------------------------------------------------------------------
|
||
//конец--------Создание входящего файла--------------------------------------------------------------------
|
||
//конец--------Создание входящего файла--------------------------------------------------------------------
|
||
|
||
//начало--------Получение состояния кнопок------------------------------------------------------------------
|
||
//начало--------Получение состояния кнопок------------------------------------------------------------------
|
||
//начало--------Получение состояния кнопок------------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "getalmastate") == 0) {
|
||
|
||
*tot_len = json_generate_state_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
httpSetting->modemMain->stateRequest.stateReqAlma);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец--------Получение состояния кнопок------------------------------------------------------------------
|
||
//конец--------Получение состояния кнопок------------------------------------------------------------------
|
||
//конец--------Получение состояния кнопок------------------------------------------------------------------
|
||
|
||
//начало--------Получение спутника в ЗВР--------------------------------------------------------------------
|
||
//начало--------Получение спутника в ЗВР--------------------------------------------------------------------
|
||
//начало--------Получение спутника в ЗВР--------------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "getalma") == 0) {
|
||
|
||
|
||
// Время не получено
|
||
if (httpSetting->modemMain->location.isOneDateTime) {
|
||
uint32_t err = Post_GNSS_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
FILINFO fno;
|
||
FRESULT fr = f_stat(file_cur_almhs, &fno);
|
||
// Нет файла альманаха
|
||
if (fr) {
|
||
uint32_t err = Post_NO_ALMA;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
|
||
time_t now;
|
||
httpSetting->rtc->get(httpSetting->rtc, &now);
|
||
now += httpSetting->storage->nvm.Settings_General.GMTcorr_v * 3600;
|
||
|
||
bool almanacIsValid = GonetsAlmanac_IsValid(httpSetting->modemMain->alms, now);
|
||
|
||
// Просрочен альманах
|
||
if (almanacIsValid == false) {
|
||
uint32_t err = Post_OLD_ALMA;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
|
||
uint8_t inRange[10]; // массив со спутниками внутри конуса
|
||
size_t countRange = 0;
|
||
|
||
vector2 selfPosition;
|
||
selfPosition.x = (float) httpSetting->modemMain->location.latitude;
|
||
selfPosition.y = (float) httpSetting->modemMain->location.longitude;
|
||
uint32_t dist = httpSetting->storage->nvm.dist;
|
||
|
||
uint16_t sat[100];
|
||
uint16_t count_sat = 0;
|
||
|
||
char *front;
|
||
char *div = httpSetting->storage->nvm.Settings_General.BannedSAT_v - 1;
|
||
char *end = div + strlen(httpSetting->storage->nvm.Settings_General.BannedSAT_v);
|
||
|
||
for (;;) {
|
||
if (iAsciiStringMoveToNextParsingBlock(&front, &div, end, ',')) {
|
||
sat[count_sat] = atoi(front);
|
||
++count_sat;
|
||
} else {
|
||
break;
|
||
}
|
||
}
|
||
|
||
time_t interval_begin = now;
|
||
|
||
for (i = 0; i < 1200; ++i) {
|
||
|
||
countRange = GonetsAlmanac_GetInRangeForMoment(
|
||
httpSetting->modemMain->alms,
|
||
(size_t) httpSetting->modemMain->countAlmanac,
|
||
|
||
selfPosition,
|
||
|
||
(float) dist,
|
||
|
||
interval_begin,
|
||
|
||
inRange
|
||
);
|
||
|
||
|
||
if (countRange > 0) {
|
||
|
||
bool isBan = false;
|
||
for (int j = 0; j < count_sat; ++j) {
|
||
if (sat[j] == inRange[0])
|
||
isBan = true;
|
||
}
|
||
|
||
if (isBan == false)
|
||
break;
|
||
}
|
||
|
||
|
||
interval_begin += 10;
|
||
|
||
}
|
||
|
||
*tot_len = json_generate_getalma(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, interval_begin - now,
|
||
inRange[0]);
|
||
return Post_OK;
|
||
}
|
||
|
||
//конец---------Получение спутника в ЗВР--------------------------------------------------------------------
|
||
//конец---------Получение спутника в ЗВР--------------------------------------------------------------------
|
||
//конец---------Получение спутника в ЗВР--------------------------------------------------------------------
|
||
|
||
//начало--------Получение содержимого директории------------------------------------------------------------
|
||
//начало--------Получение содержимого директории------------------------------------------------------------
|
||
//начало--------Получение содержимого директории------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "getdir") == 0) {
|
||
|
||
char dir[MAX_LEN_PATH_FS];
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[i], dir, sizeof(dir));
|
||
|
||
char flt[12];
|
||
flt[0] = '\0';
|
||
strcat(flt, " * ");
|
||
|
||
if (httpSetting->params_get_uri.paramcount > 1) {
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i + 1], "flt") == 0) {
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[i + 1], flt, sizeof(flt));
|
||
}
|
||
}
|
||
|
||
if (strlen(flt) > 0)
|
||
flt[strlen(flt) - 1] = '\0';
|
||
|
||
if (strlen(dir) > 0)
|
||
dir[strlen(dir) - 1] = '\0';
|
||
|
||
idPostResult_t result;
|
||
|
||
int countFiles = getCountDir(httpSetting, &dir[1], &flt[1]);
|
||
|
||
if (countFiles > 400) {
|
||
|
||
// uint32_t t1 = SystemGetMs();
|
||
|
||
result = getDirMemToFile(httpSetting, tot_len, fileNameContent, bufAnswer,
|
||
LEN_BUF_SMALL_ANSWER_HTTP,
|
||
&dir[1], &flt[1]);
|
||
|
||
// uint32_t t2 = SystemGetMs();
|
||
// volatile uint32_t t3 = t2 - t1;
|
||
|
||
if (result) {
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
} else {
|
||
*isContentFile = true;
|
||
}
|
||
} else {
|
||
|
||
result = getDirMem(httpSetting, tot_len, bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, &dir[1], &flt[1]);
|
||
|
||
if (result) {
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
}
|
||
|
||
}
|
||
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение содержимого директории-------------------------------------------------------------
|
||
//конец--------Получение содержимого директории-------------------------------------------------------------
|
||
//конец--------Получение содержимого директории-------------------------------------------------------------
|
||
|
||
//начало--------Получение содержимого файла-----------------------------------------------------------------
|
||
//начало--------Получение содержимого файла-----------------------------------------------------------------
|
||
//начало--------Получение содержимого файла-----------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "getfile") == 0) {
|
||
|
||
pos = 0;
|
||
len = 1024;
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "pos") == 0)
|
||
pos = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "len") == 0)
|
||
len = atoi(httpSetting->params_get_uri.params_vals[j]);
|
||
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "getfile") == 0)
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[j],
|
||
fileName,
|
||
sizeof(fileName));
|
||
|
||
}
|
||
|
||
if ((len < 0) || (len > 1024) || (strlen(fileName) == 0)) {
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
fileName[strlen(fileName) - 1] = '\0';
|
||
|
||
// Получение указателя на расширение файла
|
||
char *pExt = getVoidExt((char *) &fileName[1]);
|
||
|
||
// if (osMutexAcquire(httpSettings.accessHTTP, TIME_MUTEX_HTTP_ACCESS) != osOK) {
|
||
// uint32_t err = Post_MUTEX_ERR;
|
||
// *tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
// return Post_OK;
|
||
// }
|
||
|
||
// if (strcmp(pExt, ".log") == 0) {
|
||
// if (osMutexAcquire(httpSetting->accessLOG, TIME_MUTEX_LOG_ACCESS) != osOK) {
|
||
// osMutexRelease(httpSettings.accessHTTP);
|
||
// uint32_t err = Post_MUTEX_ERR;
|
||
// *tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
// return Post_OK;
|
||
// }
|
||
// }
|
||
|
||
idPostResult_t result = getFile(httpSetting, tot_len, bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
&fileName[1], pos, len);
|
||
|
||
// if (strcmp(pExt, ".log") == 0) {
|
||
// osMutexRelease(httpSetting->accessLOG);
|
||
// }
|
||
|
||
|
||
// osMutexRelease(httpSettings.accessHTTP);
|
||
|
||
if (result) {
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
}
|
||
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение содержимого файла------------------------------------------------------------------
|
||
//конец--------Получение содержимого файла------------------------------------------------------------------
|
||
//конец--------Получение содержимого файла------------------------------------------------------------------
|
||
|
||
//начало--------Получение информации о файле----------------------------------------------------------------
|
||
//начало--------Получение информации о файле----------------------------------------------------------------
|
||
//начало--------Получение информации о файле----------------------------------------------------------------
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "getfilesize") == 0) {
|
||
|
||
for (int j = 0; j < httpSetting->params_get_uri.paramcount; ++j) {
|
||
|
||
if (strcmp(httpSetting->params_get_uri.params_names[j], "getfilesize") == 0)
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[j],
|
||
fileName,
|
||
sizeof(fileName));
|
||
|
||
}
|
||
|
||
if (strlen(fileName) == 0) {
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
|
||
fileName[strlen(fileName) - 1] = '\0';
|
||
|
||
// Получение указателя на расширение файла
|
||
char *pExt = getVoidExt((char *) &fileName[1]);
|
||
|
||
if (strcmp(pExt, ".log") == 0) {
|
||
if (osMutexAcquire(httpSetting->accessLOG, TIME_MUTEX_LOG_ACCESS) != osOK) {
|
||
uint32_t err = Post_MUTEX_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
return Post_OK;
|
||
}
|
||
}
|
||
|
||
idPostResult_t result = getFileSize(httpSetting, tot_len, bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
&fileName[1]);
|
||
if (strcmp(pExt, ".log") == 0)
|
||
osMutexRelease(httpSetting->accessLOG);
|
||
|
||
|
||
if (result) {
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
}
|
||
|
||
return Post_OK;
|
||
}
|
||
//конец--------Получение информации о файле-----------------------------------------------------------------
|
||
//конец--------Получение информации о файле-----------------------------------------------------------------
|
||
//конец--------Получение информации о файле-----------------------------------------------------------------
|
||
|
||
|
||
//начало--------Удаление файла------------------------------------------------------------------------------
|
||
//начало--------Удаление файла------------------------------------------------------------------------------
|
||
//начало--------Удаление файла------------------------------------------------------------------------------
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "fildel") == 0) {
|
||
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[i], fileName, sizeof(fileName));
|
||
|
||
if (strlen(fileName) == 0) {
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
fileName[strlen(fileName) - 1] = '\0';
|
||
|
||
// if (osMutexAcquire(httpSettings.accessHTTP, TIME_MUTEX_HTTP_ACCESS) != osOK) {
|
||
// uint32_t err = Post_MUTEX_ERR;
|
||
// *tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
// return Post_OK;
|
||
// }
|
||
|
||
|
||
idPostResult_t result = delFile(httpSetting, tot_len, bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
&fileName[1]);
|
||
|
||
|
||
char dirFileNameIn[MAX_LEN_PATH_FS];
|
||
dirFileNameIn[0] = '\0';
|
||
strcat(dirFileNameIn, "1:");
|
||
strcat(dirFileNameIn, &fileName[1]);
|
||
|
||
char dirFileNameOut[MAX_LEN_PATH_FS];
|
||
getPath(dirFileNameIn, dirFileNameOut, 2);
|
||
|
||
if (strcmp(dirFileNameOut, dir_sentbox) == 0) {
|
||
getDelFilesDirDat(httpSetting->fs, (char *) dir_sentbox, "STM");
|
||
|
||
getDelFilesDirClean(httpSetting->fs, (char *) dir_sentbox);
|
||
httpSetting->rtc->get(&httpSetting->rtc, &httpSetting->modemMain->eventWebState.EVENT_SENTBOX);
|
||
}
|
||
|
||
if (strcmp(dirFileNameOut, dir_tracert) == 0) {
|
||
getDelFileDirDatTracert(httpSetting->fs, (char *) dir_tracert);
|
||
|
||
httpSetting->rtc->get(&httpSetting->rtc, &httpSetting->modemMain->eventWebState.EVENT_TRACERT);
|
||
httpSetting->modemMain->stateRequest.stateReqDelExtT = StateReqExtForDel;
|
||
httpSetting->modemMain->stateRequest.stateReqCreateExtT = StateReqExtForCreate;
|
||
}
|
||
|
||
if (strcmp(dirFileNameOut, dir_inbox) == 0) {
|
||
getDelFilesDirDat(httpSetting->fs, (char *) dir_inbox, "ITM");
|
||
|
||
getDelFilesDirClean(httpSetting->fs, (char *) dir_inbox);
|
||
httpSetting->rtc->get(&httpSetting->rtc, &httpSetting->modemMain->eventWebState.EVENT_INBOX);
|
||
}
|
||
|
||
if (strcmp(dirFileNameOut, dir_outbox) == 0) {
|
||
httpSetting->rtc->get(&httpSetting->rtc, &httpSetting->modemMain->eventWebState.EVENT_OUTBOX);
|
||
httpSetting->modemMain->stateRequest.stateReqDelExtW = StateReqExtForDel;
|
||
httpSetting->modemMain->stateRequest.stateReqCreateExtW = StateReqExtForCreate;
|
||
}
|
||
|
||
|
||
// osMutexRelease(httpSettings.accessHTTP);
|
||
|
||
|
||
if (result) {
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
}
|
||
return Post_OK;
|
||
|
||
}
|
||
//конец--------Удаление файла-------------------------------------------------------------------------------
|
||
//конец--------Удаление файла-------------------------------------------------------------------------------
|
||
//конец--------Удаление файла-------------------------------------------------------------------------------
|
||
|
||
//начало--------Удаление всех файлов в директории-----------------------------------------------------------
|
||
//начало--------Удаление всех файлов в директории-----------------------------------------------------------
|
||
//начало--------Удаление всех файлов в директории-----------------------------------------------------------
|
||
if (strcmp(httpSetting->params_get_uri.params_names[i], "fildirdel") == 0) {
|
||
|
||
extract_utf8_parameters(httpSetting->params_get_uri.params_vals[i], fileName, sizeof(fileName));
|
||
|
||
if (strlen(fileName) == 0) {
|
||
uint32_t err = Post_PARAM_ERR;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
|
||
return Post_OK;
|
||
}
|
||
|
||
fileName[strlen(fileName) - 1] = '\0';
|
||
|
||
// if (osMutexAcquire(httpSettings.accessHTTP, TIME_MUTEX_HTTP_ACCESS) != osOK) {
|
||
// uint32_t err = Post_MUTEX_ERR;
|
||
// *tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
// return Post_OK;
|
||
// }
|
||
|
||
idPostResult_t result = delDirFile(httpSetting, tot_len, bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP,
|
||
&fileName[1]);
|
||
// osMutexRelease(httpSettings.accessHTTP);
|
||
|
||
if (result) {
|
||
uint32_t err = result;
|
||
*tot_len = json_generate_err_answer(bufAnswer, LEN_BUF_SMALL_ANSWER_HTTP, err);
|
||
}
|
||
|
||
char dirFileNameIn[MAX_LEN_PATH_FS];
|
||
dirFileNameIn[0] = '\0';
|
||
strcat(dirFileNameIn, "1:");
|
||
strcat(dirFileNameIn, &fileName[1]);
|
||
strcat(dirFileNameIn, "/");
|
||
|
||
char dirFileNameOut[MAX_LEN_PATH_FS];
|
||
getPath(dirFileNameIn, dirFileNameOut, 2);
|
||
|
||
|
||
if (strcmp(dirFileNameOut, dir_sentbox) == 0) {
|
||
getDelFilesDirDat(httpSetting->fs, (char *) dir_sentbox, "STM");
|
||
|
||
getDelFilesDirClean(httpSetting->fs, (char *) dir_sentbox);
|
||
httpSetting->rtc->get(&httpSetting->rtc, &httpSetting->modemMain->eventWebState.EVENT_SENTBOX);
|
||
}
|
||
|
||
if (strcmp(dirFileNameOut, dir_tracert) == 0) {
|
||
getDelFileDirDatTracert(httpSetting->fs, (char *) dir_tracert);
|
||
|
||
httpSetting->rtc->get(&httpSetting->rtc, &httpSetting->modemMain->eventWebState.EVENT_TRACERT);
|
||
httpSetting->modemMain->stateRequest.stateReqDelExtT = StateReqExtForDel;
|
||
httpSetting->modemMain->stateRequest.stateReqCreateExtT = StateReqExtForCreate;
|
||
}
|
||
|
||
if (strcmp(dirFileNameOut, dir_inbox) == 0) {
|
||
getDelFilesDirDat(httpSetting->fs, (char *) dir_inbox, "ITM");
|
||
|
||
getDelFilesDirClean(httpSetting->fs, (char *) dir_inbox);
|
||
httpSetting->rtc->get(&httpSetting->rtc, &httpSetting->modemMain->eventWebState.EVENT_INBOX);
|
||
}
|
||
|
||
if (strcmp(dirFileNameOut, dir_outbox) == 0) {
|
||
httpSetting->rtc->get(&httpSetting->rtc, &httpSetting->modemMain->eventWebState.EVENT_OUTBOX);
|
||
httpSetting->modemMain->stateRequest.stateReqDelExtW = StateReqExtForDel;
|
||
httpSetting->modemMain->stateRequest.stateReqCreateExtW = StateReqExtForCreate;
|
||
}
|
||
|
||
return Post_OK;
|
||
|
||
}
|
||
//конец--------Удаление всех файлов в директории------------------------------------------------------------
|
||
//конец--------Удаление всех файлов в директории------------------------------------------------------------
|
||
//конец--------Удаление всех файлов в директории------------------------------------------------------------
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
return Post_404_ERR;
|
||
}
|