152 lines
3.3 KiB
C
152 lines
3.3 KiB
C
//
|
|
// Created by cfif on 10.11.22.
|
|
//
|
|
|
|
#ifndef GONEC_ARTERY_HTTPD_POST_H
|
|
#define GONEC_ARTERY_HTTPD_POST_H
|
|
|
|
#include "inttypes.h"
|
|
#include "RtcArtery.h"
|
|
#include "DeviceStorageIni.h"
|
|
#include "httpd_types.h"
|
|
#include "fs_interface.h"
|
|
#include <FirmwareLoader.h>
|
|
#include "ModemGonec.h"
|
|
#include "auth.h"
|
|
#include "TaskAdc.h"
|
|
#include "Gpios.h"
|
|
#include "ModemLog.h"
|
|
#include "External.h"
|
|
|
|
typedef struct {
|
|
|
|
// uint32_t *tot_len;
|
|
// Размер контента из файла
|
|
// bool *isContentFile;
|
|
// Указатель на буфер ответа
|
|
// char *bufAnswer;
|
|
// Признак использования большлго буфера
|
|
// bool *isBigBuffer;
|
|
|
|
|
|
struct {
|
|
int paramcount;
|
|
char *params_names[MAX_POST_GET_PARAMETERS];
|
|
char *params_vals[MAX_POST_GET_PARAMETERS];
|
|
} params_get_uri;
|
|
|
|
// struct {
|
|
// char filename[MAX_LEN_PATH_FS];
|
|
// char filenamePathContent[MAX_LEN_PATH_FS];
|
|
// } sdcard;
|
|
|
|
int idTempFileKey;
|
|
int idTempFileOutBox;
|
|
|
|
tRtcIO *rtc;
|
|
tDeviceStorageIni *storage;
|
|
tFs *fs;
|
|
tFirmwareLoader *firmwareMainLoader;
|
|
tFirmwareLoader *firmwareBootLoader;
|
|
tModemMain *modemMain;
|
|
tTaskAdc *taskAdc;
|
|
|
|
tExternal *external;
|
|
|
|
typeAuth auth;
|
|
|
|
tFileLogger *flog;
|
|
|
|
// tAuthUser authUser;
|
|
|
|
// Мьютекс
|
|
osMutexId_t accessHTTP;
|
|
osMutexId_t accessMODEM;
|
|
osMutexId_t accessLOG;
|
|
osMutexId_t accessLOG2;
|
|
|
|
tGpios *gpios;
|
|
|
|
tModemMainLog *modemMainLog;
|
|
|
|
|
|
uint32_t countTmp;
|
|
/*
|
|
struct {
|
|
uint32_t key;
|
|
uint16_t id;
|
|
} FileSort[2048];
|
|
*/
|
|
|
|
} tHttpSetting;
|
|
|
|
typedef struct {
|
|
struct {
|
|
int paramcount;
|
|
char *params_names[MAX_POST_GET_PARAMETERS];
|
|
char *params_vals[MAX_POST_GET_PARAMETERS];
|
|
} params_post_uri;
|
|
|
|
struct {
|
|
char filename[MAX_LEN_PATH_FS];
|
|
uint32_t urgency;
|
|
uint32_t chSv;
|
|
uint32_t kvs;
|
|
char to[MAX_LEN_PATH_FS];
|
|
uint32_t isfile;
|
|
uint32_t routing;
|
|
} createPostData;
|
|
|
|
// Путь к текущему временному файлу
|
|
// char temp_filename[MAX_LEN_PATH_FS];
|
|
// Путь к файлу в хранилище
|
|
// char real_filename[MAX_LEN_PATH_FS];
|
|
|
|
char *bufAnswer;
|
|
tRtcIO *rtc;
|
|
tDeviceStorageIni *storage;
|
|
tFs *fs;
|
|
tFirmwareLoader *firmwareMainLoader;
|
|
tFirmwareLoader *firmwareBootLoader;
|
|
tModemMain *modemMain;
|
|
|
|
tExternal *external;
|
|
|
|
// Признак уже сформированной квитанции
|
|
bool isAnswerGeneration;
|
|
uint32_t lenAnswerGeneration;
|
|
|
|
|
|
// tAuthUser *authUser;
|
|
|
|
int indexTableSettings;
|
|
int responsePostId;
|
|
idPostResult_t result;
|
|
uint32_t error;
|
|
// Текущая длина принятого пакета
|
|
//int packet_len;
|
|
// Счетчик длины принятых пакетов
|
|
int step_packet_len;
|
|
// Размер принимаемого контента
|
|
int content_len;
|
|
|
|
// Смещение для прошивки обновления
|
|
//uint32_t offset_update;
|
|
|
|
// Идентификатор временного файла
|
|
uint32_t idTempFileOutBox;
|
|
|
|
// Мьютекс
|
|
osMutexId_t accessHTTP;
|
|
osMutexId_t accessMODEM;
|
|
|
|
tGpios *gpios;
|
|
|
|
bool isFirst;
|
|
|
|
} tHttpPostSetting;
|
|
|
|
extern tHttpSetting httpSettings;
|
|
|
|
#endif //GONEC_ARTERY_HTTPD_POST_H
|