GONEC_ARTERY_HttpServer/Inc/httpd_post.h

155 lines
3.4 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 "SpiPorts.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;
tSpiPorts *spiPorts;
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;
tSpiPorts *spiPorts;
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