Перенос на новую организацию GONEC

This commit is contained in:
cfif 2025-01-24 13:22:32 +03:00
commit 1dbe24ddca
30 changed files with 1794 additions and 0 deletions

40
Inc/JSONSettings.h Normal file
View File

@ -0,0 +1,40 @@
//
// Created by cfif on 09.11.22.
//
#ifndef GONEC_ARTERY_JSONSETTINGS_H
#define GONEC_ARTERY_JSONSETTINGS_H
#include <inttypes.h>
#include "httpd_types.h"
#include "auth.h"
#include "ModemMain.h"
#include "Settings.h"
#define SettingSizeTbl 125
typedef enum {
TYP_SETTING_DEC = 0,
TYP_SETTING_STR = 1,
TYP_SETTING_SEL = 2
} typSetting;
typedef enum {
TYP_SETTING_VAL_DEC = 0,
TYP_SETTING_VAL_STR = 1,
TYP_SETTING_VAL_SEL = 2
} typSettingVal;
size_t SettingToJSON_grp(char *buf, size_t buf_len, char *grp, typeAuth auth);
size_t SettingToJSON_num(char *buf, size_t buf_len, char *grp, typeAuth auth);
idPostResult_t
vJsonToStructure(char *jsonTextBuf, const tSettings *jsonSettings, tModemMain *ModemMain, typeAuth auth, bool *grp1,
bool *grp2, bool *grp3, bool *grp8, bool *grp11, bool *grp12, bool *grp14, bool *grp25, bool *grp26);
// Сохранение настроек во временные
//void NvmToRuntimeSettings();
// Загрузка настроек из временных
//void RuntimeToNvmSettings();
#endif //GONEC_ARTERY_JSONSETTINGS_H

26
Inc/Settings.h Normal file
View File

@ -0,0 +1,26 @@
//
// Created by cfif on 18.04.23.
//
#ifndef GONEC_GSM___SETTINGS_H
#define GONEC_GSM___SETTINGS_H
#include <inttypes.h>
typedef struct {
bool enabled;
char *section;
uint32_t num;
uint32_t grp;
int32_t from;
int32_t to;
char *typ;
void *val;
char *hlp;
enum json_to_type vtype;
uint8_t *cur;
} tSettings;
extern const tSettings settings[];
#endif //GONEC_GSM___SETTINGS_H

23
Inc/Settings_Ams_Radar.h Normal file
View File

@ -0,0 +1,23 @@
//
// Created by cfif on 24.06.23.
//
#ifndef GONEC_FULL_SETTINGS_AMS_RADAR_H
#define GONEC_FULL_SETTINGS_AMS_RADAR_H
#include "stdint.h"
#include "mtojson.h"
#include "BaseTypes.h"
typedef struct {
uint32_t AmsRadarMaxBuf;
uint32_t AmsRadarNumPack;
uint32_t AmsRadarReqTime;
uint32_t AmsRadarATsrv;
} tSettings_AmsRadar;
void vSettings_AmsRadarInitDefaults(tSettings_AmsRadar *tSettings_AmsRadar);
#endif //GONEC_FULL_SETTINGS_AMS_RADAR_H

View File

@ -0,0 +1,30 @@
//
// Created by cfif on 11.11.22.
//
#ifndef GONEC_ARTERY_SETTINGS_BASIC_ACCESS_H
#define GONEC_ARTERY_SETTINGS_BASIC_ACCESS_H
#include "stdint.h"
#include "mtojson.h"
typedef struct {
uint32_t FlagAccess_v;
uint32_t SpecRegion_v;
uint8_t TypeAccess_v;
uint32_t NumGrpFrAcc_v;
uint32_t NumGrpDedi_v;
uint32_t NumChDedi_v;
uint8_t LinkGeoReg_v;
uint32_t PerReqDown_v;
uint8_t MaxSzDataOnKB_v;
uint32_t ServerATnum_v;
uint32_t CountATcalls_v;
uint8_t TypeAddressing_v;
uint32_t NumRegStation_v;
} tSettings_Basic_Access;
extern const struct to_json jsonSettings_Basic_Access[];
void vSettings_Basic_AccessInitDefaults(tSettings_Basic_Access *Settings_Basic_Access);
#endif //GONEC_ARTERY_SETTINGS_BASIC_ACCESS_H

18
Inc/Settings_Date_Time.h Normal file
View File

@ -0,0 +1,18 @@
//
// Created by cfif on 14.11.22.
//
#ifndef GONEC_ARTERY_SETTINGS_DATE_TIME_H
#define GONEC_ARTERY_SETTINGS_DATE_TIME_H
#include "stdint.h"
#include "mtojson.h"
typedef struct {
int32_t ChooseDateTime_v;
} tSettings_Date_Time;
extern const struct to_json jsonSettings_Date_Time[];
void vSettings_Settings_Date_TimeInitDefaults(tSettings_Date_Time *Settings_Date_Time);
#endif //GONEC_ARTERY_SETTINGS_DATE_TIME_H

View File

@ -0,0 +1,57 @@
//
// Created by cfif on 11.11.22.
//
#ifndef GONEC_ARTERY_SETTINGS_FREQUENCY_SPEED_H
#define GONEC_ARTERY_SETTINGS_FREQUENCY_SPEED_H
#include "stdint.h"
#include "mtojson.h"
typedef enum {
SPEED_PKSIG_4800 = 0
} speedType_PKsig;
typedef enum {
SPEED_PKDATA_2400 = 0,
SPEED_PKDATA_4800 = 1,
SPEED_PKDATA_9600 = 2,
SPEED_PKDATA_19200 = 3,
SPEED_PKDATA_38400 = 4
} speedType_PKdata;
typedef enum {
SPEED_OKSIG_9600 = 0,
SPEED_OKSIG_19200 = 1,
SPEED_OKSIG_38400 = 2,
SPEED_OKSIG_76800 = 3
} speedType_OKsig;
typedef enum {
SPEED_OKDATA_9600 = 0,
SPEED_OKDATA_19200 = 1,
SPEED_OKDATA_38400 = 2,
SPEED_OKDATA_76800 = 3
} speedType_OKdata;
typedef struct {
uint32_t freqMC1_v;
uint32_t freqMC2_v;
uint8_t SpeedPKsig_v;
uint8_t SpeedPKdata_v;
uint8_t SpeedOKsig_v;
uint8_t SpeedOKdata_v;
uint32_t timeRespOK_v;
uint32_t SItimeAdv_v;
int32_t minRSSI_v;
uint32_t TrebootREC_v;
uint32_t TimeLifeRegistr_v;
uint32_t RegionRegistr_v;
uint32_t MaxDistanceSAT_v;
char AllowedReg_v[255];
} tSettings_Frequency_Speed;
extern const struct to_json jsonSettings_Frequency_Speed[];
void vSettings_Frequency_SpeedInitDefaults(tSettings_Frequency_Speed *Settings_Frequency_Speed);
#endif //GONEC_ARTERY_SETTINGS_FREQUENCY_SPEED_H

26
Inc/Settings_GSM.h Normal file
View File

@ -0,0 +1,26 @@
//
// Created by cfif on 02.02.23.
//
#ifndef GONEC_GSM_SETTINGS_GSM_H
#define GONEC_GSM_SETTINGS_GSM_H
#include "stdint.h"
#include "mtojson.h"
#include "BaseTypes.h"
typedef struct {
char GSMhttpAdrSrv[255];
uint32_t GSMhttpPort;
char HttpSrvLogin[255];
char HttpSrvPass[255];
uint32_t GSMtimeMSG;
uint32_t GSMtimeFLASH;
uint32_t GSMtimeSSOFT;
uint32_t HttpSrvPerConn;
char GSMapnName[255];
} tSettings_GSM;
void vSettings_GSMInitDefaults(tSettings_GSM *Settings_Basic_Access);
#endif //GONEC_GSM_SETTINGS_GSM_H

40
Inc/Settings_General.h Normal file
View File

@ -0,0 +1,40 @@
/*
* MainSettings.h
*
* Created on: 08.11.2022
* Author: cfif
*/
#ifndef GONEC_INC_MAIN_SETTINGS_H_
#define GONEC_INC_MAIN_SETTINGS_H_
#include "stdint.h"
#include "mtojson.h"
#include "BaseTypes.h"
typedef struct {
uint32_t ATnum_v;
uint32_t ATpriority_v;
uint32_t ATurgency_v;
char loginADMIN_v[255];
char passADMIN_v[255];
char loginINTEG_v[255];
char passINTEG_v[255];
char loginUSER_v[255];
char UserPass_v[255];
char BannedSAT_v[255];
int32_t GMTcorr_v;
uint8_t GreenMode_v;
int32_t DefLatiGrad_v;
uint32_t DefLatiMin_v;
int32_t DefLongGrad_v;
uint32_t DefLongMin_v;
uint8_t SaveToSentBox_v;
} tSettings_General;
extern const struct to_json jsonSettings_General[];
void vSettings_GeneralInitDefaults(tSettings_General *Settings_General);
#endif /* #define GONEC_INC_MAIN_SETTINGS_H_*/

21
Inc/Settings_LoRaWan.h Normal file
View File

@ -0,0 +1,21 @@
//
// Created by cfif on 23.10.2023.
//
#ifndef GONEC_FULL_SETTINGS_LORAWAN_H
#define GONEC_FULL_SETTINGS_LORAWAN_H
#include "stdint.h"
#include "mtojson.h"
#include "BaseTypes.h"
typedef struct {
uint32_t LoRaWanMaxBuf;
uint32_t LoRaWanATsrv;
} tSettings_LoRaWan;
void vSettings_LoRaWanInitDefaults(tSettings_LoRaWan *Settings_LoRaWan);
#endif //GONEC_FULL_SETTINGS_LORAWAN_H

23
Inc/Settings_Msd.h Normal file
View File

@ -0,0 +1,23 @@
//
// Created by cfif on 08.06.23.
//
#ifndef GONEC_FULL_SETTINGS_MSD_H
#define GONEC_FULL_SETTINGS_MSD_H
#include "stdint.h"
#include "mtojson.h"
#include "BaseTypes.h"
typedef struct {
char VIN[255];
uint32_t NumHuman;
uint8_t TypeFuel;
uint32_t SatTimeInZone;
uint32_t AlmSatAngle;
uint32_t SosATsrv;
} tSettings_Msd;
void vSettings_MsdInitDefaults(tSettings_Msd *Settings_Msd);
#endif //GONEC_FULL_SETTINGS_MSD_H

24
Inc/Settings_Network.h Normal file
View File

@ -0,0 +1,24 @@
//
// Created by cfif on 11.11.22.
//
#ifndef GONEC_ARTERY_SETTINGS_NETWORK_H
#define GONEC_ARTERY_SETTINGS_NETWORK_H
#include "stdint.h"
#include "mtojson.h"
#include "BaseTypes.h"
typedef struct {
char MyIPadres_v[255];
char MyIPmask_v[255];
char MyGateway_v[255];
char MyMACadres_v[255];
char ftpAddr_v[255];
char ftpLogin_v[255];
char ftpPass_v[255];
} tSettings_Network;
extern const struct to_json jsonSettings_Network[];
void vSettings_NetworkInitDefaults(tSettings_Network *Settings_Network);
#endif //GONEC_ARTERY_SETTINGS_NETWORK_H

View File

@ -0,0 +1,22 @@
//
// Created by cfif on 14.11.22.
//
#ifndef GONEC_ARTERY_SETTINGS_RS485_BLUETOOTH_H
#define GONEC_ARTERY_SETTINGS_RS485_BLUETOOTH_H
#include "stdint.h"
#include "mtojson.h"
typedef struct {
uint32_t TOut485_v;
uint32_t TOutBlue_v;
uint32_t rs485baudrate_v;
uint32_t BTvisible_v;
uint8_t PortAssign;
} tSettings_RS485_Bluetooth;
extern const struct to_json jsonSettings_RS485_Bluetooth[];
void vSettings_RS485_BluetoothInitDefaults(tSettings_RS485_Bluetooth *Settings_RS485_Bluetooth);
#endif //GONEC_ARTERY_SETTINGS_RS485_BLUETOOTH_H

46
Inc/Settings_Tracert.h Normal file
View File

@ -0,0 +1,46 @@
//
// Created by cfif on 11.11.22.
//
#ifndef GONEC_ARTERY_SETTINGS_TRACERT_H
#define GONEC_ARTERY_SETTINGS_TRACERT_H
#include "stdint.h"
#include "mtojson.h"
#include "BaseTypes.h"
typedef struct {
uint8_t mTracer_v;
uint8_t TransferCoordSettings_v;
uint32_t PeSvCoor_v;
uint32_t cntPackExtCoord_v;
uint32_t minPtoSe_v;
uint32_t MAXalaS_v;
uint8_t ExtendedHeader_v;
uint8_t trSendSpeed_v;
uint32_t TrATsrv_v;
uint32_t CoordUrgency_v;
uint8_t SensorAD0volt_v;
uint8_t IgnitionInverse_v;
uint8_t BatMode_v;
uint32_t BatDistCalcSAT_v;
uint32_t BatPwONsetPoint_v;
uint32_t BatCntONtoTRANS_v;
uint32_t CntPbatModeRep_v;
uint32_t BatTimeOffSend_v;
uint32_t BatTimeOffSetP_v;
uint32_t BatTimeOffIGN_v;
uint8_t BatSENDshedule_v;
char BatSENDsheT1_v[255];
char BatSENDsheT2_v[255];
char BatSENDsheT3_v[255];
char BatSENDsheT4_v[255];
uint32_t MaxBuf_v;
uint32_t MaxFiles_v;
uint8_t TransmissionModeData;
} tSettings_Tracert;
extern const struct to_json jsonSettings_Tracert[];
void vSettings_TracertInitDefaults(tSettings_Tracert *Settings_Tracert);
#endif //GONEC_ARTERY_SETTINGS_TRACERT_H

View File

@ -0,0 +1,29 @@
//
// Created by cfif on 11.11.22.
//
#ifndef GONEC_ARTERY_SETTINGS_TRANSCEIVER_H
#define GONEC_ARTERY_SETTINGS_TRANSCEIVER_H
#include "stdint.h"
#include "mtojson.h"
typedef struct {
int32_t VCOADJ_v;
int32_t VCOBIAS_v;
int32_t PABIAS_v;
int32_t CHARGE_v;
int32_t PA_LEVEL_v;
int32_t FREQERR_v;
int32_t RecV2CorrFreq_v;
int32_t RecV2CFtoDSP_v;
int32_t TypeREC_v;
int32_t CorrectVolt_v;
int32_t CorrVnan_v;
int32_t SWRlim_v;
int32_t AFUcorr_v;
} tSettings_Transceiver;
extern const struct to_json jsonSettings_Transceiver[];
void vSettings_TransceiverInitDefaults(tSettings_Transceiver *Settings_Transceiver);
#endif //GONEC_ARTERY_SETTINGS_TRANSCEIVER_H

View File

@ -0,0 +1,26 @@
//
// Created by cfif on 04.05.23.
//
#ifndef GONEC_FULL_SETTINGS_TRANSMITTER_H
#define GONEC_FULL_SETTINGS_TRANSMITTER_H
#include "stdint.h"
#include "mtojson.h"
typedef struct {
uint32_t CorPwr1;
uint32_t CorPwr2;
uint32_t CorPwr3;
uint32_t CorPwr4;
uint8_t SelectCorPwr;
uint8_t LogEn;
uint8_t LogExtendedEn;
uint32_t TimeLifeFragIn;
} tSettings_Transmitter;
//extern const struct to_json jsonSettings_Transmitter[];
void vSettings_TransmitterInitDefaults(tSettings_Transmitter *Settings_Transmitter);
#endif //GONEC_FULL_SETTINGS_TRANSMITTER_H

873
Src/JSONSettings.c Normal file
View File

@ -0,0 +1,873 @@
//
// Created by cfif on 09.11.22.
//
#include "Settings_General.h"
#include "tiny-json.h"
#include <string.h>
#include "JSONSettings.h"
#include "MainModesArbiter.h"
#include "httpd_base_func.h"
extern tMma MAIN_ENV;
const struct to_json jsonSettings_ArrayYesNo[] = {
{.value = "No", .vtype = t_to_string},
{.value = "Yes", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_ArraySpeed1[] = {
{.value = "none", .vtype = t_to_string},
{.value = "none", .vtype = t_to_string},
{.value = "4800", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_ArraySpeed2[] = {
{.value = "none", .vtype = t_to_string},
{.value = "2400", .vtype = t_to_string},
{.value = "4800", .vtype = t_to_string},
{.value = "9600", .vtype = t_to_string},
{.value = "19200", .vtype = t_to_string},
{.value = "38400", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_ArraySpeed3[] = {
{.value = "none", .vtype = t_to_string},
{.value = "none", .vtype = t_to_string},
{.value = "none", .vtype = t_to_string},
{.value = "9600", .vtype = t_to_string},
{.value = "19200", .vtype = t_to_string},
{.value = "38400", .vtype = t_to_string},
{.value = "76800", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_ArrayAccess[] = {
{.value = "Free", .vtype = t_to_string},
{.value = "Dedicated", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_ArrayTypeAddressing[] = {
{.value = "Direct", .vtype = t_to_string},
{.value = "Indirect", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_ArrayPwr[] = {
{.value = "10", .vtype = t_to_string},
{.value = "5", .vtype = t_to_string},
{.value = "2", .vtype = t_to_string},
{.value = "1", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_TypeFuel[] = {
{.value = "GASOLINE_TANK_PRESENT", .vtype = t_to_string},
{.value = "DIESEL_TANK_PRESENT", .vtype = t_to_string},
{.value = "COMPRESSED_NATURAL_GAS", .vtype = t_to_string},
{.value = "LIQUID_PROPANE_GAS", .vtype = t_to_string},
{.value = "ELECTRIC_ENERGY_STORAGE", .vtype = t_to_string},
{.value = "HYDROGEN_STORAGE", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_PortAssign[] = {
{.value = "External protocol", .vtype = t_to_string},
{.value = "Telemetry protocol", .vtype = t_to_string},
{.value = "Ams protokol", .vtype = t_to_string},
{.value = "LoRaWan protokol", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_TransmissionModeData[] = {
{.value = "Analog sensors", .vtype = t_to_string},
{.value = "Analog sensor and addition data", .vtype = t_to_string},
{NULL}
};
const struct to_json jsonSettings_ArrayMaxSize[] = {
{.value = "1300", .vtype = t_to_string},
{.value = "2600", .vtype = t_to_string},
{.value = "3900", .vtype = t_to_string},
{.value = "5200", .vtype = t_to_string},
{.value = "6500", .vtype = t_to_string},
{.value = "7800", .vtype = t_to_string},
{.value = "9100", .vtype = t_to_string},
{.value = "10400", .vtype = t_to_string},
{.value = "11700", .vtype = t_to_string},
{.value = "13000", .vtype = t_to_string},
{.value = "14300", .vtype = t_to_string},
{.value = "15600", .vtype = t_to_string},
{.value = "16900", .vtype = t_to_string},
{.value = "18200", .vtype = t_to_string},
{.value = "19500", .vtype = t_to_string},
{.value = "20800", .vtype = t_to_string},
{NULL}
};
uint8_t constCurData = 0xFF;
const tSettings settings[] = {
// Общие
{.enabled = true, .section = "General", .num = 1, .grp = 1, .from = 0, .to = 99999, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.ATnum_v, .hlp = "ATnum"},
{.enabled = true, .section = "General", .num = 2, .grp = 1, .from = 0, .to = 5, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.ATpriority_v, .hlp = "ATpriority"},
{.enabled = false, .section = "General", .num = 3, .grp = 1, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.ATurgency_v, .hlp = "ATurgency"},
{.enabled = true, .section = "General", .num = 4, .grp = 1, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.loginADMIN_v, .hlp = "loginADMIN"},
{.enabled = true, .section = "General", .num = 5, .grp = 1, .from = 0, .to = 0, .typ = "psw", .vtype = t_to_string, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.passADMIN_v, .hlp = "passADMIN"},
{.enabled = true, .section = "General", .num = 6, .grp = 1, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.loginINTEG_v, .hlp = "loginINTEG"},
{.enabled = true, .section = "General", .num = 7, .grp = 1, .from = 0, .to = 0, .typ = "psw", .vtype = t_to_string, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.passINTEG_v, .hlp = "passINTEG"},
{.enabled = true, .section = "General", .num = 8, .grp = 1, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.loginUSER_v, .hlp = "loginUSER"},
{.enabled = true, .section = "General", .num = 9, .grp = 1, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.UserPass_v, .hlp = "UserPass"},
{.enabled = true, .section = "General", .num = 10, .grp = 1, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.BannedSAT_v, .hlp = "BannedSAT"},
{.enabled = true, .section = "General", .num = 11, .grp = 1, .from = -11, .to = 12, .typ = "dec", .vtype = t_to_int32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.GMTcorr_v, .hlp = "GMTcorr"},
{.enabled = false, .section = "General", .num = 12, .grp = 1, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_General.GreenMode_v, .val = &jsonSettings_ArrayYesNo, .hlp = "GreenMode"},
{.enabled = true, .section = "General", .num = 13, .grp = 1, .from = -90, .to = 90, .typ = "dec", .vtype = t_to_int32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.DefLatiGrad_v, .hlp = "DefLatiGrad"},
{.enabled = true, .section = "General", .num = 14, .grp = 1, .from = 0, .to = 59, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.DefLatiMin_v, .hlp = "DefLatiMin"},
{.enabled = true, .section = "General", .num = 15, .grp = 1, .from = -180, .to = 180, .typ = "dec", .vtype = t_to_int32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.DefLongGrad_v, .hlp = "DefLongGrad"},
{.enabled = true, .section = "General", .num = 16, .grp = 1, .from = 0, .to = 59, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_General.DefLongMin_v, .hlp = "DefLongMin"},
{.enabled = true, .section = "General", .num = 17, .grp = 1, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_General.SaveToSentBox_v, .val = &jsonSettings_ArrayYesNo, .hlp = "SaveToSentBox"},
// Частота и скорость
{.enabled = true, .section = "Frequency and speed", .num = 18, .grp = 2, .from = 0, .to = 240, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.freqMC1_v, .hlp = "freqMC1"},
{.enabled = true, .section = "Frequency and speed", .num = 19, .grp = 2, .from = 0, .to = 240, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.freqMC2_v, .hlp = "freqMC2"},
{.enabled = true, .section = "Frequency and speed", .num = 20, .grp = 2, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.SpeedPKsig_v, .val = &jsonSettings_ArraySpeed1, .hlp = "SpeedPKsig"},
{.enabled = true, .section = "Frequency and speed", .num = 21, .grp = 2, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.SpeedPKdata_v, .val = &jsonSettings_ArraySpeed2, .hlp = "SpeedPKdata"},
{.enabled = true, .section = "Frequency and speed", .num = 22, .grp = 2, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.SpeedOKsig_v, .val = &jsonSettings_ArraySpeed3, .hlp = "SpeedOKsig"},
{.enabled = true, .section = "Frequency and speed", .num = 23, .grp = 2, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.SpeedOKdata_v, .val = &jsonSettings_ArraySpeed3, .hlp = "SpeedOKdata"},
{.enabled = false, .section = "Frequency and speed", .num = 24, .grp = 2, .from = 0, .to = 240, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.timeRespOK_v, .hlp = "timeRespOK"},
{.enabled = true, .section = "Frequency and speed", .num = 25, .grp = 2, .from = 0, .to = 240, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.SItimeAdv_v, .hlp = "SItimeAdv"},
{.enabled = true, .section = "Frequency and speed", .num = 26, .grp = 2, .from = -70, .to = -60, .typ = "dec", .vtype = t_to_int32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.minRSSI_v, .hlp = "minRSSI"},
{.enabled = false, .section = "Frequency and speed", .num = 27, .grp = 2, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.TrebootREC_v, .hlp = "TrebootREC"},
{.enabled = true, .section = "Frequency and speed", .num = 28, .grp = 2, .from = 1, .to = 500000, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.TimeLifeRegistr_v, .hlp = "TimeLifeRegistr"},
{.enabled = true, .section = "Frequency and speed", .num = 29, .grp = 2, .from = 0, .to = 60, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.RegionRegistr_v, .hlp = "RegionRegistr"},
{.enabled = true, .section = "Frequency and speed", .num = 30, .grp = 2, .from = 0, .to = 5000, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.MaxDistanceSAT_v, .hlp = "MaxDistanceSAT"},
{.enabled = true, .section = "Frequency and speed", .num = 110, .grp = 2, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed.AllowedReg_v, .hlp = "AllowedREG"},
// Основной режим доступа
{.enabled = false, .section = "Basic access mode", .num = 31, .grp = 3, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.FlagAccess_v, .hlp = "FlagAccess"},
{.enabled = false, .section = "Basic access mode", .num = 32, .grp = 3, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.SpecRegion_v, .hlp = "SpecRegion"},
{.enabled = true, .section = "Basic access mode", .num = 33, .grp = 3, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.TypeAccess_v, .val = &jsonSettings_ArrayAccess, .hlp = "TypeAccess"},
{.enabled = true, .section = "Basic access mode", .num = 34, .grp = 3, .from = 0, .to = 255, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.NumGrpFrAcc_v, .hlp = "NumGrpFrAcc"},
{.enabled = true, .section = "Basic access mode", .num = 35, .grp = 3, .from = 0, .to = 255, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.NumGrpDedi_v, .hlp = "NumGrpDedi"},
{.enabled = true, .section = "Basic access mode", .num = 36, .grp = 3, .from = 0, .to = 1200, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.NumChDedi_v, .hlp = "NumChDedi"},
{.enabled = true, .section = "Basic access mode", .num = 37, .grp = 3, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.LinkGeoReg_v, .val = &jsonSettings_ArrayYesNo, .hlp = "LinkGeoReg"},
{.enabled = true, .section = "Basic access mode", .num = 38, .grp = 3, .from = 0, .to = 3, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.PerReqDown_v, .hlp = "PerReqDown"},
{.enabled = true, .section = "Basic access mode", .num = 39, .grp = 3, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.MaxSzDataOnKB_v, .val = &jsonSettings_ArrayMaxSize, .hlp = "MaxSzDataOnKB"},
{.enabled = true, .section = "Basic access mode", .num = 40, .grp = 3, .from = 0, .to = 99999, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.ServerATnum_v, .hlp = "ServerATnum"},
{.enabled = false, .section = "Basic access mode", .num = 41, .grp = 3, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.CountATcalls_v, .hlp = "CountATcalls"},
{.enabled = true, .section = "Basic access mode", .num = 42, .grp = 3, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.TypeAddressing_v, .val = &jsonSettings_ArrayTypeAddressing, .hlp = "TypeAddressing"},
{.enabled = true, .section = "Basic access mode", .num = 43, .grp = 3, .from = 0, .to = 99999, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Basic_Access.NumRegStation_v, .hlp = "NumRegStation"},
// Приемопередатчик
{.enabled = true, .section = "Transceiver", .num = 44, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.VCOADJ_v, .hlp = "VCOADJ:"},
{.enabled = true, .section = "Transceiver", .num = 45, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.VCOBIAS_v, .hlp = "VCOBIAS:"},
{.enabled = true, .section = "Transceiver", .num = 46, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.PABIAS_v, .hlp = "PABIAS:"},
{.enabled = true, .section = "Transceiver", .num = 47, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.CHARGE_v, .hlp = "CHARGE_PUMP:"},
{.enabled = true, .section = "Transceiver", .num = 48, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.PA_LEVEL_v, .hlp = "PA_LEVEL:"},
{.enabled = true, .section = "Transceiver", .num = 49, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.FREQERR_v, .hlp = "FREQERR:"},
{.enabled = true, .section = "Transceiver", .num = 50, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.RecV2CorrFreq_v, .hlp = "RecV2CorrFreq"},
{.enabled = true, .section = "Transceiver", .num = 51, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.RecV2CFtoDSP_v, .hlp = "RecV2CFtoDSP"},
{.enabled = true, .section = "Transceiver", .num = 52, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.TypeREC_v, .hlp = "TypeREC"},
{.enabled = true, .section = "Transceiver", .num = 53, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.CorrectVolt_v, .hlp = "CorrectVolt"}, //int
{.enabled = true, .section = "Transceiver", .num = 54, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.CorrVnan_v, .hlp = "CorrVnan(10mv)"}, //int
{.enabled = true, .section = "Transceiver", .num = 55, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.SWRlim_v, .hlp = "SWR lim(x100)"},
{.enabled = true, .section = "Transceiver", .num = 56, .grp = 7, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transceiver.AFUcorr_v, .hlp = "AFU corr(x100)"}, //int
// Режим TRACER
{.enabled = true, .section = "TRACER mode", .num = 57, .grp = 8, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Tracert.mTracer_v, .val = &jsonSettings_ArrayYesNo, .hlp = "mTracer"},
{.enabled = true, .section = "TRACER mode", .num = 125, .grp = 8, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Tracert.TransferCoordSettings_v, .val = &jsonSettings_ArrayYesNo, .hlp = "TransferCoordSettings"},
{.enabled = true, .section = "TRACER mode", .num = 58, .grp = 8, .from = 5, .to = 3600, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.PeSvCoor_v, .hlp = "PeSvCoor"},
{.enabled = false, .section = "TRACER mode", .num = 59, .grp = 8, .from = 0, .to = 15, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.cntPackExtCoord_v, .hlp = "cntPackExtCoord"},
{.enabled = true, .section = "TRACER mode", .num = 60, .grp = 8, .from = 1, .to = 38, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.minPtoSe_v, .hlp = "minPtoSe"},
{.enabled = false, .section = "TRACER mode", .num = 61, .grp = 8, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.MAXalaS_v, .hlp = "MAXalaS"},
{.enabled = false, .section = "TRACER mode", .num = 62, .grp = 8, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Tracert.ExtendedHeader_v, .val = &jsonSettings_ArrayYesNo, .hlp = "ExtendedHeader"},
{.enabled = true, .section = "TRACER mode", .num = 63, .grp = 8, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Tracert.trSendSpeed_v, .val = &jsonSettings_ArrayYesNo, .hlp = "trSendSpeed"},
{.enabled = true, .section = "TRACER mode", .num = 64, .grp = 8, .from = 0, .to = 99999, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.TrATsrv_v, .hlp = "TrATsrv"},
{.enabled = false, .section = "TRACER mode", .num = 65, .grp = 8, .from = 0, .to = 10, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.CoordUrgency_v, .hlp = "CoordUrgency"},
{.enabled = true, .section = "TRACER mode", .num = 66, .grp = 8, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Tracert.SensorAD0volt_v, .val = &jsonSettings_ArrayYesNo, .hlp = "SensorAD0volt"},
{.enabled = false, .section = "TRACER mode", .num = 67, .grp = 8, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Tracert.IgnitionInverse_v, .val = &jsonSettings_ArrayYesNo, .hlp = "IgnitionInverse"},
{.enabled = false, .section = "TRACER mode", .num = 68, .grp = 8, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Tracert.BatMode_v, .val = &jsonSettings_ArrayYesNo, .hlp = "BatMode"},
{.enabled = false, .section = "TRACER mode", .num = 69, .grp = 8, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.BatDistCalcSAT_v, .hlp = "BatDistCalcSAT"},
{.enabled = false, .section = "TRACER mode", .num = 70, .grp = 8, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.BatPwONsetPoint_v, .hlp = "BatPwONsetPoint"},
{.enabled = false, .section = "TRACER mode", .num = 71, .grp = 8, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.BatCntONtoTRANS_v, .hlp = "BatCntONtoTRANS"},
{.enabled = false, .section = "TRACER mode", .num = 72, .grp = 8, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.CntPbatModeRep_v, .hlp = "CntPbatModeRep"},
{.enabled = false, .section = "TRACER mode", .num = 73, .grp = 8, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.BatTimeOffSend_v, .hlp = "BatTimeOffSend"},
{.enabled = false, .section = "TRACER mode", .num = 74, .grp = 8, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.BatTimeOffSetP_v, .hlp = "BatTimeOffSetP"},
{.enabled = false, .section = "TRACER mode", .num = 75, .grp = 8, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.BatTimeOffIGN_v, .hlp = "BatTimeOffIGN"},
{.enabled = false, .section = "TRACER mode", .num = 76, .grp = 8, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Tracert.BatSENDshedule_v, .val = &jsonSettings_ArrayYesNo, .hlp = "BatSENDshedule"},
{.enabled = false, .section = "TRACER mode", .num = 77, .grp = 8, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Tracert.BatSENDsheT1_v, .hlp = "BatSENDsheT1"},
{.enabled = false, .section = "TRACER mode", .num = 78, .grp = 8, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Tracert.BatSENDsheT2_v, .hlp = "BatSENDsheT2"},
{.enabled = false, .section = "TRACER mode", .num = 79, .grp = 8, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Tracert.BatSENDsheT3_v, .hlp = "BatSENDsheT3"},
{.enabled = false, .section = "TRACER mode", .num = 80, .grp = 8, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Tracert.BatSENDsheT4_v, .hlp = "BatSENDsheT4"},
{.enabled = true, .section = "TRACER mode", .num = 111, .grp = 8, .from = 1, .to = 16, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.MaxBuf_v, .hlp = "MaxBuf"},
{.enabled = true, .section = "TRACER mode", .num = 123, .grp = 8, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Tracert.TransmissionModeData, .val = &jsonSettings_TransmissionModeData, .hlp = "TransmissionModeData"},
{.enabled = true, .section = "TRACER mode", .num = 124, .grp = 8, .from = 1, .to = 300, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Tracert.MaxFiles_v, .hlp = "MaxFiles"},
// Сетевые настройки
{.enabled = true, .section = "Network settings", .num = 82, .grp = 11, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Network.MyIPadres_v, .hlp = "MyIPadres"},
{.enabled = true, .section = "Network settings", .num = 83, .grp = 11, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Network.MyIPmask_v, .hlp = "MyIPmask"},
{.enabled = true, .section = "Network settings", .num = 84, .grp = 11, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Network.MyGateway_v, .hlp = "MyGateway"},
{.enabled = false, .section = "Network settings", .num = 85, .grp = 11, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Network.ftpAddr_v, .hlp = "ftp1Addr"},
{.enabled = false, .section = "Network settings", .num = 86, .grp = 11, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Network.ftpLogin_v, .hlp = "ftpLogin"},
{.enabled = false, .section = "Network settings", .num = 87, .grp = 11, .from = 0, .to = 0, .typ = "psw", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Network.ftpPass_v, .hlp = "ftpPass"},
// Настройки GSM
{.enabled = true, .section = "GSM settings", .num = 88, .grp = 12, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_GSM.GSMhttpAdrSrv, .hlp = "GSMhttpAdrSrv"},
{.enabled = true, .section = "GSM settings", .num = 89, .grp = 12, .from = 1, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_GSM.GSMhttpPort, .hlp = "GSMhttpPort"},
{.enabled = true, .section = "GSM settings", .num = 90, .grp = 12, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_GSM.HttpSrvLogin, .hlp = "HttpSrvLogin"},
{.enabled = true, .section = "GSM settings", .num = 91, .grp = 12, .from = 0, .to = 0, .typ = "psw", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_GSM.HttpSrvPass, .hlp = "HttpSrvPass"},
{.enabled = true, .section = "GSM settings", .num = 92, .grp = 12, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_GSM.GSMtimeMSG, .hlp = "GSMtimeMSG"},
{.enabled = true, .section = "GSM settings", .num = 93, .grp = 12, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_GSM.GSMtimeFLASH, .hlp = "GSMtimeFLASH"},
{.enabled = true, .section = "GSM settings", .num = 94, .grp = 12, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_GSM.GSMtimeSSOFT, .hlp = "GSMtimeSSOFT"},
{.enabled = true, .section = "GSM settings", .num = 95, .grp = 12, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_GSM.HttpSrvPerConn, .hlp = "HttpSrvPerConn"},
{.enabled = true, .section = "GSM settings", .num = 96, .grp = 12, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_GSM.GSMapnName, .hlp = "GSMapnName"},
// RS485 Bluetooth
{.enabled = false, .section = "RS485 Bluetooth", .num = 98, .grp = 14, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_RS485_Bluetooth.TOut485_v, .hlp = "TOut485"},
{.enabled = false, .section = "RS485 Bluetooth", .num = 99, .grp = 14, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_RS485_Bluetooth.TOutBlue_v, .hlp = "TOutBlue"},
{.enabled = true, .section = "RS485 Bluetooth", .num = 100, .grp = 14, .from = 2400, .to = 921600, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_RS485_Bluetooth.rs485baudrate_v, .hlp = "rs485baudrate"},
{.enabled = false, .section = "RS485 Bluetooth", .num = 101, .grp = 14, .from = 0, .to = 65535, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_RS485_Bluetooth.BTvisible_v, .hlp = "BTvisible"},
{.enabled = true, .section = "RS485 Bluetooth", .num = 117, .grp = 14, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_RS485_Bluetooth.PortAssign, .val = &jsonSettings_PortAssign, .hlp = "PortAssign"},
// Transmitter
{.enabled = true, .section = "Transmitter", .num = 102, .grp = 25, .from = 0, .to = 4095, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transmitter.CorPwr1, .hlp = "SetupPwr1"},
{.enabled = true, .section = "Transmitter", .num = 103, .grp = 25, .from = 0, .to = 4095, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transmitter.CorPwr2, .hlp = "SetupPwr2"},
{.enabled = true, .section = "Transmitter", .num = 104, .grp = 25, .from = 0, .to = 4095, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transmitter.CorPwr3, .hlp = "SetupPwr3"},
{.enabled = true, .section = "Transmitter", .num = 105, .grp = 25, .from = 0, .to = 4095, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transmitter.CorPwr4, .hlp = "SetupPwr4"},
{.enabled = true, .section = "Transmitter", .num = 106, .grp = 25, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Transmitter.SelectCorPwr, .val = &jsonSettings_ArrayPwr, .hlp = "SelectCorPwr"},
{.enabled = false, .section = "Transmitter", .num = 107, .grp = 25, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Transmitter.LogEn, .val = &jsonSettings_ArrayYesNo, .hlp = "LogEnable"},
{.enabled = true, .section = "Transmitter", .num = 108, .grp = 25, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Transmitter.LogExtendedEn, .val = &jsonSettings_ArrayYesNo, .hlp = "SysLogEnable"},
{.enabled = true, .section = "Transmitter", .num = 109, .grp = 25, .from = 24, .to = 168, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Transmitter.TimeLifeFragIn, .hlp = "TimeLifeFragIn"},
{.enabled = true, .section = "MSD", .num = 112, .grp = 26, .from = 0, .to = 0, .typ = "txt", .vtype = t_to_string, .cur = &constCurData, .val = MAIN_ENV.storageIni.runtime.Settings_Msd.VIN, .hlp = "VIN"},
{.enabled = true, .section = "MSD", .num = 113, .grp = 26, .from = 0, .to = 99999, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Msd.NumHuman, .hlp = "NumHuman"},
{.enabled = true, .section = "MSD", .num = 114, .grp = 26, .from = 0, .to = 65535, .typ = "sel", .vtype = t_to_array, .cur = &MAIN_ENV.storageIni.runtime.Settings_Msd.TypeFuel, .val = &jsonSettings_TypeFuel, .hlp = "TypeFuel"},
{.enabled = true, .section = "MSD", .num = 115, .grp = 26, .from = 1, .to = 15, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Msd.SatTimeInZone, .hlp = "SatTimeInZone"},
{.enabled = true, .section = "MSD", .num = 116, .grp = 26, .from = 0, .to = 89, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Msd.AlmSatAngle, .hlp = "AlmSatAngle"},
{.enabled = true, .section = "MSD", .num = 118, .grp = 26, .from = 0, .to = 99999, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_Msd.SosATsrv, .hlp = "SosATsrv"},
{.enabled = true, .section = "AMS radar", .num = 119, .grp = 27, .from = 1, .to = 16, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_AmsRadar.AmsRadarMaxBuf, .hlp = "AmsRadarMaxBuf"},
{.enabled = true, .section = "AMS radar", .num = 120, .grp = 27, .from = 1, .to = 5, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_AmsRadar.AmsRadarNumPack, .hlp = "AmsRadarNumPack"},
{.enabled = true, .section = "AMS radar", .num = 121, .grp = 27, .from = 5, .to = 2000, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_AmsRadar.AmsRadarReqTime, .hlp = "AmsRadarReqTime"},
{.enabled = true, .section = "AMS radar", .num = 122, .grp = 27, .from = 0, .to = 99999, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_AmsRadar.AmsRadarATsrv, .hlp = "AmsRadarATsrv"},
{.enabled = true, .section = "LoRa WAN", .num = 126, .grp = 28, .from = 1, .to = 16, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_LoRaWan.LoRaWanMaxBuf, .hlp = "LoRaWanMaxBuf"},
{.enabled = true, .section = "LoRa WAN", .num = 127, .grp = 28, .from = 0, .to = 99999, .typ = "dec", .vtype = t_to_uint32_t, .cur = &constCurData, .val = &MAIN_ENV.storageIni.runtime.Settings_LoRaWan.LoRaWanATsrv, .hlp = "LoRaWanATsrv"}
};
// Запрос настроек по группам
size_t SettingToJSON_grp(char *buf, size_t buf_len, char *grp, typeAuth auth) {
uint8_t grpArray[16];
uint8_t countGrp = 0;
bool isCreateJson = false;
char tmpGrp[8];
tmpGrp[0] = '\0';
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(grp,
params_grp.params_names,
params_grp.params_vals,
MAX_POST_GET_PARAMETERS);
for (int i = 0; i < params_grp.paramcount; ++i) {
grpArray[i] = atoi(params_grp.params_names[i]);
}
// grpArray[params_grp.paramcount] = 28;
// ++params_grp.paramcount;
char bufTmp[255];
size_t len = 0;
buf[0] = '[';
buf[1] = '\0';
for (int j = 0; j < params_grp.paramcount; ++j)
for (int i = 0; i < SettingSizeTbl; ++i) {
if (grpArray[j] == settings[i].grp) {
if (settings[i].enabled == false)
continue;
if (auth == AUTH_USER)
break;
if (auth == AUTH_INTEG) {
if (((settings[i].num >= 13) && (settings[i].num <= 17)) ||
((settings[i].num == 28) || (settings[i].num == 29)) ||
((settings[i].num >= 57) && (settings[i].num <= 61)) ||
((settings[i].num == 63) || (settings[i].num == 66)) ||
((settings[i].num >= 92) && (settings[i].num <= 94)) ||
((settings[i].num == 96))) {
} else {
continue;
}
}
if (*settings[i].cur != 0xFF) {
isCreateJson = true;
const struct to_json jsonSetting[] = {
{.name = "num", .value = &settings[i].num, .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "grp", .value = &settings[i].grp, .vtype = t_to_uint32_t},
{.name = "typ", .value = settings[i].typ, .vtype = t_to_string},
{.name = "val", .value = settings[i].val, .vtype = settings[i].vtype},
{.name = "cur", .value = settings[i].cur, .vtype = t_to_uint8_t},
{.name = "hlp", .value = settings[i].hlp, .vtype = t_to_string},
{NULL}
};
len += json_generate(bufTmp, jsonSetting, sizeof(bufTmp));
} else {
isCreateJson = true;
const struct to_json jsonSetting[] = {
{.name = "num", .value = &settings[i].num, .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "grp", .value = &settings[i].grp, .vtype = t_to_uint32_t},
{.name = "typ", .value = settings[i].typ, .vtype = t_to_string},
{.name = "val", .value = settings[i].val, .vtype = settings[i].vtype},
{.name = "hlp", .value = settings[i].hlp, .vtype = t_to_string},
{NULL}
};
len += json_generate(bufTmp, jsonSetting, sizeof(bufTmp));
}
strcat(bufTmp, ",");
strcat(buf, bufTmp);
}
}
if (isCreateJson) {
buf[strlen(buf) - 1] = ']';
} else {
strcat(buf, "]");
}
return strlen(buf);
}
// Запрос настроек номерам по переменных
size_t SettingToJSON_num(char *buf, size_t buf_len, char *grp, typeAuth auth) {
uint8_t numArray[16];
uint8_t countGrp = 0;
bool isCreateJson = false;
char tmpGrp[8];
tmpGrp[0] = '\0';
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(grp,
params_grp.params_names,
params_grp.params_vals,
MAX_POST_GET_PARAMETERS);
for (int i = 0; i < params_grp.paramcount; ++i) {
numArray[i] = atoi(params_grp.params_names[i]);
}
char bufTmp[255];
size_t len = 0;
buf[0] = '[';
buf[1] = '\0';
for (int j = 0; j < params_grp.paramcount; ++j)
for (int i = 0; i < SettingSizeTbl; ++i) {
if (numArray[j] == settings[i].num) {
if (auth == AUTH_USER)
break;
if (auth == AUTH_INTEG) {
if (((settings[i].num >= 13) && (settings[i].num <= 17)) ||
((settings[i].num == 28) || (settings[i].num == 29)) ||
((settings[i].num >= 57) && (settings[i].num <= 61)) ||
((settings[i].num == 63) || (settings[i].num == 66)) ||
((settings[i].num >= 92) && (settings[i].num <= 94)) ||
((settings[i].num == 96))) {
} else {
continue;
}
}
if (*settings[i].cur != 0xFF) {
isCreateJson = true;
const struct to_json jsonSetting[] = {
{.name = "num", .value = &settings[i].num, .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "grp", .value = &settings[i].grp, .vtype = t_to_uint32_t},
{.name = "typ", .value = settings[i].typ, .vtype = t_to_string},
{.name = "val", .value = settings[i].val, .vtype = settings[i].vtype},
{.name = "cur", .value = settings[i].cur, .vtype = t_to_uint8_t},
{.name = "hlp", .value = settings[i].hlp, .vtype = t_to_string},
{NULL}
};
len += json_generate(bufTmp, jsonSetting, sizeof(bufTmp));
} else {
isCreateJson = true;
const struct to_json jsonSetting[] = {
{.name = "num", .value = &settings[i].num, .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "grp", .value = &settings[i].grp, .vtype = t_to_uint32_t},
{.name = "typ", .value = settings[i].typ, .vtype = t_to_string},
{.name = "val", .value = settings[i].val, .vtype = settings[i].vtype},
{.name = "hlp", .value = settings[i].hlp, .vtype = t_to_string},
{NULL}
};
len += json_generate(bufTmp, jsonSetting, sizeof(bufTmp));
}
strcat(bufTmp, ",");
strcat(buf, bufTmp);
}
}
if (isCreateJson) {
buf[strlen(buf) - 1] = ']';
} else {
strcat(buf, "]");
}
return strlen(buf);
}
idPostResult_t testCorrectMAC(char *valStr) {
char Buf[64];
memcpy(Buf, valStr, 64);
struct {
int paramcount;
char *params_names[6];
char *params_vals[6];
} params;
params.paramcount = extract_mac_ex_parameters(Buf,
params.params_names,
params.params_vals,
6);
if (params.paramcount == 6) {
uint32_t local_mac0 = atoi(params.params_names[0]);
uint32_t local_mac1 = atoi(params.params_names[1]);
uint32_t local_mac2 = atoi(params.params_names[2]);
uint32_t local_mac3 = atoi(params.params_names[3]);
uint32_t local_mac5 = atoi(params.params_names[4]);
uint32_t local_mac6 = atoi(params.params_names[5]);
}
return Post_PARAM_ERR;
}
idPostResult_t testCorrectIP(char *valStr, uint32_t from, uint32_t to) {
char Buf[32];
memcpy(Buf, valStr, 32);
struct {
int paramcount;
char *params_names[4];
char *params_vals[4];
} params;
params.paramcount = extract_ip_ex_parameters(Buf,
params.params_names,
params.params_vals,
4);
if (params.paramcount == 4) {
uint32_t local_ip0 = atoi(params.params_names[0]);
uint32_t local_ip1 = atoi(params.params_names[1]);
uint32_t local_ip2 = atoi(params.params_names[2]);
uint32_t local_ip3 = atoi(params.params_names[3]);
if (((local_ip0 <= to) && (local_ip0 >= from)) && ((local_ip1 <= to) && (local_ip1 >= from)) &&
((local_ip2 <= to) && (local_ip2 >= from)) && ((local_ip3 <= to) && (local_ip3 >= from))) {
return Post_OK;
}
}
return Post_PARAM_ERR;
}
static idPostResult_t PresetSettings(uint32_t num, char *valStr, int32_t *valDec, int32_t from, int32_t to) {
if (valStr == NULL) {
if (*valDec < from) {
*valDec = from;
}
if (*valDec > to) {
*valDec = to;
}
// if ((valDec >= from) && (valDec <= to))
// return Post_OK;
} else {
if ((num == 82) || (num == 84) || (num == 85)) {
idPostResult_t result = testCorrectIP(valStr, 0, 254);
if (result)
return result;
}
if (num == 83) {
idPostResult_t result = testCorrectIP(valStr, 0, 255);
if (result)
return result;
}
return Post_OK;
}
return Post_OK;
// return Post_PARAM_ERR;
}
/*
// Сохранение настроек во временные
void NvmToRuntimeSettings() {
memcpy(&MAIN_ENV.storageIni.runtime.Settings_General, &MAIN_ENV.storageIni.nvm.Settings_General,
sizeof(MAIN_ENV.storageIni.nvm.Settings_General));
memcpy(&MAIN_ENV.storageIni.runtime.Settings_Basic_Access, &MAIN_ENV.storageIni.nvm.Settings_Basic_Access,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Basic_Access));
memcpy(&MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed, &MAIN_ENV.storageIni.nvm.Settings_Frequency_Speed,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Frequency_Speed));
memcpy(&MAIN_ENV.storageIni.runtime.Settings_Network, &MAIN_ENV.storageIni.nvm.Settings_Network,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Network));
memcpy(&MAIN_ENV.storageIni.runtime.Settings_Tracert, &MAIN_ENV.storageIni.nvm.Settings_Tracert,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Tracert));
memcpy(&MAIN_ENV.storageIni.runtime.Settings_Transceiver, &MAIN_ENV.storageIni.nvm.Settings_Transceiver,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Transceiver));
memcpy(&MAIN_ENV.storageIni.runtime.Settings_GSM, &MAIN_ENV.storageIni.nvm.Settings_GSM,
sizeof(MAIN_ENV.storageIni.nvm.Settings_GSM));
memcpy(&MAIN_ENV.storageIni.runtime.Settings_RS485_Bluetooth, &MAIN_ENV.storageIni.nvm.Settings_RS485_Bluetooth,
sizeof(MAIN_ENV.storageIni.nvm.Settings_RS485_Bluetooth));
}
// Загрузка настроек из временных
void RuntimeToNvmSettings() {
memcpy(&MAIN_ENV.storageIni.nvm.Settings_General, &MAIN_ENV.storageIni.runtime.Settings_General,
sizeof(MAIN_ENV.storageIni.nvm.Settings_General));
memcpy(&MAIN_ENV.storageIni.nvm.Settings_Basic_Access, &MAIN_ENV.storageIni.runtime.Settings_Basic_Access,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Basic_Access));
memcpy(&MAIN_ENV.storageIni.nvm.Settings_Frequency_Speed, &MAIN_ENV.storageIni.runtime.Settings_Frequency_Speed,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Frequency_Speed));
memcpy(&MAIN_ENV.storageIni.nvm.Settings_Network, &MAIN_ENV.storageIni.runtime.Settings_Network,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Network));
memcpy(&MAIN_ENV.storageIni.nvm.Settings_Tracert, &MAIN_ENV.storageIni.runtime.Settings_Tracert,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Tracert));
memcpy(&MAIN_ENV.storageIni.nvm.Settings_Transceiver, &MAIN_ENV.storageIni.runtime.Settings_Transceiver,
sizeof(MAIN_ENV.storageIni.nvm.Settings_Transceiver));
memcpy(&MAIN_ENV.storageIni.nvm.Settings_GSM, &MAIN_ENV.storageIni.runtime.Settings_GSM,
sizeof(MAIN_ENV.storageIni.nvm.Settings_GSM));
memcpy(&MAIN_ENV.storageIni.nvm.Settings_RS485_Bluetooth, &MAIN_ENV.storageIni.runtime.Settings_RS485_Bluetooth,
sizeof(MAIN_ENV.storageIni.nvm.Settings_RS485_Bluetooth));
}
*/
//json_t pool[2048];
// Запись настроек
idPostResult_t
vJsonToStructure(char *jsonTextBuf, const tSettings *jsonSettings, tModemMain *ModemMain, typeAuth auth, bool *grp1,
bool *grp2, bool *grp3, bool *grp8, bool *grp11, bool *grp12, bool *grp14, bool *grp25, bool *grp26) {
*grp1 = false;
*grp2 = false;
*grp3 = false;
*grp8 = false;
*grp11 = false;
*grp12 = false;
*grp14 = false;
*grp25 = false;
*grp26 = false;
size_t len_pool = strlen(jsonTextBuf);
json_t *pool = (json_t *) &jsonTextBuf[4096];
unsigned const qty = LEN_BUF_SMALL_ANSWER_HTTP - 4096 / sizeof(json_t);
// json_t *pool = (json_t *) bigBuffer;
// unsigned const qty = LEN_BUF_BIG_ANSWER_HTTP / sizeof(json_t);
// unsigned const qty = sizeof(pool) / sizeof(*pool);
char childName[64];
json_t const *json = json_create(jsonTextBuf, pool, qty);
json_t const *elementRoot0 = json_getChild(json);
while (elementRoot0 != 0) {
uint32_t num = 0xFFFFFFFF;
typSetting typ = TYP_SETTING_STR;
typSettingVal typVal = TYP_SETTING_VAL_STR;
char valText[255];
uint32_t valInteger = 0xFFFFFFFF;
uint32_t valCurInteger = 0xFFFFFFFF;
jsonType_t const jsonType0 = json_getType(elementRoot0);
if (jsonType0 == JSON_OBJ) {
json_t const *elementRoot1 = json_getChild(elementRoot0);
while (elementRoot1 != 0) {
strcpy(childName, json_getName(elementRoot1));
jsonType_t const jsonType = json_getType(elementRoot1);
if (strcmp(childName, "num") == 0) {
if (jsonType != JSON_INTEGER)
return Post_PARAM_ERR;
num = json_getInteger(elementRoot1);
}
if (strcmp(childName, "cur") == 0) {
if (jsonType != JSON_INTEGER)
return Post_PARAM_ERR;
typVal = TYP_SETTING_VAL_DEC;
valCurInteger = json_getInteger(elementRoot1);
}
if (strcmp(childName, "typ") == 0) {
if (jsonType != JSON_TEXT)
return Post_PARAM_ERR;
char typ_tmp[16];
typ_tmp[0] = '\0';
char const *str = json_getValue(elementRoot1);
strcat(typ_tmp, str);
if (strcmp(typ_tmp, "dec") == 0) {
typ = TYP_SETTING_DEC;
}
if (strcmp(typ_tmp, "sel") == 0) {
typ = TYP_SETTING_SEL;
}
}
if (strcmp(childName, "val") == 0) {
if (jsonType == JSON_TEXT) {
typVal = TYP_SETTING_VAL_STR;
valText[0] = '\0';
char const *str = json_getValue(elementRoot1);
if (strlen(str) > 255)
return Post_PARAM_ERR;
strcat(valText, str);
}
if (jsonType == JSON_INTEGER) {
typVal = TYP_SETTING_VAL_DEC;
valInteger = json_getInteger(elementRoot1);
}
}
elementRoot1 = json_getSibling(elementRoot1);
}
if ((typ == TYP_SETTING_DEC) && (typVal != TYP_SETTING_VAL_DEC)) {
return Post_PARAM_ERR;
}
if ((typ == TYP_SETTING_STR) && (typVal != TYP_SETTING_VAL_STR)) {
return Post_PARAM_ERR;
}
if ((typ == TYP_SETTING_SEL) && (typVal != TYP_SETTING_VAL_DEC)) {
return Post_PARAM_ERR;
}
// Поиск по номеру переменной
if (num != 0xFFFFFFFF) {
for (int i = 0; i < SettingSizeTbl; ++i) {
if (settings[i].num == num) {
if (settings[i].enabled == false)
continue;
if (settings[i].grp == 1)
*grp1 = true;
if (settings[i].grp == 2)
*grp2 = true;
if (settings[i].grp == 3)
*grp3 = true;
if (settings[i].grp == 8)
*grp8 = true;
if (settings[i].grp == 11)
*grp11 = true;
if (settings[i].grp == 12)
*grp12 = true;
if (settings[i].grp == 14)
*grp14 = true;
if (settings[i].grp == 25)
*grp25 = true;
if (settings[i].grp == 26)
*grp26 = true;
if (auth == AUTH_INTEG) {
if (((settings[i].num >= 13) && (settings[i].num <= 17)) ||
((settings[i].num == 28) || (settings[i].num == 29)) ||
((settings[i].num >= 57) && (settings[i].num <= 61)) ||
((settings[i].num == 63) || (settings[i].num == 66)) ||
((settings[i].num >= 92) && (settings[i].num <= 94)) ||
((settings[i].num == 96))) {
asm("nop");
} else {
continue;
}
}
if (typ == TYP_SETTING_STR) {
size_t lenStr = 255;
if (strlen(valText) > lenStr - 1)
return Post_PARAM_ERR;
idPostResult_t result = PresetSettings(num, valText, 0, settings[i].from, settings[i].to);
if (result)
return result;
memset((char *) settings[i].val, 0, lenStr);
memcpy((char *) settings[i].val, valText, strlen(valText));
break;
}
if (typ == TYP_SETTING_DEC) {
if (settings[i].vtype == t_to_int) {
idPostResult_t result = PresetSettings(num, NULL, &valInteger, settings[i].from,
settings[i].to);
if (result)
return result;
*(int32_t *) settings[i].val = (int32_t) valInteger;
break;
}
if (settings[i].vtype == t_to_int32_t) {
idPostResult_t result = PresetSettings(num, NULL, &valInteger, settings[i].from,
settings[i].to);
if (result)
return result;
*(int32_t *) settings[i].val = (int32_t) valInteger;
}
if (settings[i].vtype == t_to_uint32_t) {
idPostResult_t result = PresetSettings(num, NULL, &valInteger, settings[i].from,
settings[i].to);
if (result)
return result;
*(uint32_t *) settings[i].val = (uint32_t) valInteger;
}
if (settings[i].vtype == t_to_uint16_t) {
idPostResult_t result = PresetSettings(num, NULL, &valInteger, settings[i].from,
settings[i].to);
if (result)
return result;
*(uint16_t *) settings[i].val = (uint16_t) valInteger;
break;
}
if (settings[i].vtype == t_to_uint8_t) {
idPostResult_t result = PresetSettings(num, NULL, &valInteger, settings[i].from,
settings[i].to);
if (result)
return result;
break;
}
break;
}
if (typ == TYP_SETTING_SEL) {
idPostResult_t result = PresetSettings(num, NULL, &valCurInteger, settings[i].from,
settings[i].to);
if (result)
return result;
*(uint8_t *) settings[i].cur = (uint8_t) valCurInteger;
break;
}
}
}
}
}
elementRoot0 = json_getSibling(elementRoot0);
}
return Post_OK;
}

14
Src/Settings_Ams_Radar.c Normal file
View File

@ -0,0 +1,14 @@
//
// Created by cfif on 24.06.23.
//
#include <string.h>
#include "DeviceStorageIni.h"
void vSettings_AmsRadarInitDefaults(tSettings_AmsRadar *Settings_AmsRadar) {
Settings_AmsRadar->AmsRadarMaxBuf = 5;
Settings_AmsRadar->AmsRadarNumPack = 1;
Settings_AmsRadar->AmsRadarReqTime = 720;
Settings_AmsRadar->AmsRadarATsrv = 7;
}

View File

@ -0,0 +1,44 @@
//
// Created by cfif on 11.11.22.
//
#include "Settings_Basic_Access.h"
#include <string.h>
#include "DeviceStorageIni.h"
#include "MainModesArbiter.h"
/*
extern tMma MAIN_ENV;
const struct to_json jsonSettings_Basic_Access[] = {
{.name = "FlagAccess_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.FlagAccess_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.FlagAccess_v), .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "SpecRegion_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.SpecRegion_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.SpecRegion_v), .vtype = t_to_uint32_t,},
{.name = "TypeAccess_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.TypeAccess_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.TypeAccess_v), .vtype = t_to_uint32_t,},
{.name = "NumGrpFrAcc_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.NumGrpFrAcc_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.NumGrpFrAcc_v), .vtype = t_to_uint32_t,},
{.name = "NumGrpDedi_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.NumGrpDedi_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.NumGrpDedi_v), .vtype = t_to_uint32_t,},
{.name = "NumChDedi_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.NumChDedi_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.NumChDedi_v), .vtype = t_to_uint32_t,},
{.name = "LinkGeoReg_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.LinkGeoReg_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.LinkGeoReg_v), .vtype = t_to_uint32_t,},
{.name = "PerReqDown_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.PerReqDown_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.PerReqDown_v), .vtype = t_to_uint32_t,},
{.name = "MaxSzDataOnKB_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.MaxSzDataOnKB_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.MaxSzDataOnKB_v), .vtype = t_to_uint32_t,},
{.name = "ServerATnum_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.ServerATnum_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.ServerATnum_v), .vtype = t_to_uint32_t,},
{.name = "CountATcalls_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.CountATcalls_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.CountATcalls_v), .vtype = t_to_uint32_t,},
{.name = "TypeAddressing_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.TypeAddressing_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.TypeAddressing_v), .vtype = t_to_uint32_t,},
{.name = "NumRegStation_v", .value = &MAIN_ENV.storage.nvm.Settings_Basic_Access.NumRegStation_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Basic_Access.NumRegStation_v), .vtype = t_to_uint32_t,},
{NULL}
};
*/
void vSettings_Basic_AccessInitDefaults(tSettings_Basic_Access *Settings_Basic_Access) {
Settings_Basic_Access->FlagAccess_v = 0;
Settings_Basic_Access->SpecRegion_v = 0;
Settings_Basic_Access->TypeAccess_v = 0;
Settings_Basic_Access->NumGrpFrAcc_v = 0;
Settings_Basic_Access->NumGrpDedi_v = 0;
Settings_Basic_Access->NumChDedi_v = 0;
Settings_Basic_Access->LinkGeoReg_v = 0;
Settings_Basic_Access->PerReqDown_v = 1;
Settings_Basic_Access->MaxSzDataOnKB_v = 15;
Settings_Basic_Access->ServerATnum_v = 7;
Settings_Basic_Access->CountATcalls_v = 30;
Settings_Basic_Access->TypeAddressing_v = 0;
Settings_Basic_Access->NumRegStation_v = 7;
}

19
Src/Settings_Date_Time.c Normal file
View File

@ -0,0 +1,19 @@
//
// Created by cfif on 14.11.22.
//
#include "Settings_Date_Time.h"
#include <string.h>
#include "DeviceStorageIni.h"
#include "MainModesArbiter.h"
extern tMma MAIN_ENV;
const struct to_json jsonSettings_Date_Time[] = {
{.name = "ChooseDateTime_v", .value = &MAIN_ENV.storageIni.nvm.Settings_Date_Time.ChooseDateTime_v, .len = sizeof(MAIN_ENV.storageIni.nvm.Settings_Date_Time.ChooseDateTime_v), .vtype = t_to_uint32_t, .stype = t_to_object},
{NULL}
};
void vSettings_Settings_Date_TimeInitDefaults(tSettings_Date_Time *Settings_Date_Time) {
Settings_Date_Time->ChooseDateTime_v = 0;
}

View File

@ -0,0 +1,46 @@
//
// Created by cfif on 11.11.22.
//
#include "Settings_Frequency_Speed.h"
#include <string.h>
#include "DeviceStorageIni.h"
#include "MainModesArbiter.h"
/*
extern tMma MAIN_ENV;
const struct to_json jsonSettings_Frequency_Speed[] = {
{.name = "freqMC1_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.freqMC1_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.freqMC1_v), .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "freqMC2_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.freqMC2_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.freqMC2_v), .vtype = t_to_uint32_t,},
{.name = "SpeedPKsig_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SpeedPKsig_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SpeedPKsig_v), .vtype = t_to_uint32_t,},
{.name = "SpeedPKdata_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SpeedPKdata_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SpeedPKdata_v), .vtype = t_to_uint32_t,},
{.name = "SpeedOKsig_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SpeedOKsig_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SpeedOKsig_v), .vtype = t_to_uint32_t,},
{.name = "SpeedOKdata_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SpeedOKdata_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SpeedOKdata_v), .vtype = t_to_uint32_t,},
{.name = "timeRespOK_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.timeRespOK_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.timeRespOK_v), .vtype = t_to_uint32_t,},
{.name = "SItimeAdv_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SItimeAdv_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.SItimeAdv_v), .vtype = t_to_uint32_t,},
{.name = "minRSSI_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.minRSSI_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.minRSSI_v), .vtype = t_to_uint32_t,},
{.name = "TrebootREC_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.TrebootREC_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.TrebootREC_v), .vtype = t_to_uint32_t,},
{.name = "TimeLifeRegistr_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.TimeLifeRegistr_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.TimeLifeRegistr_v), .vtype = t_to_uint32_t,},
{.name = "RegionRegistr_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.RegionRegistr_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.RegionRegistr_v), .vtype = t_to_uint32_t,},
{.name = "MaxDistanceSAT_v", .value = &MAIN_ENV.storage.nvm.Settings_Frequency_Speed.MaxDistanceSAT_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Frequency_Speed.MaxDistanceSAT_v), .vtype = t_to_uint32_t,},
{NULL}
};
*/
void vSettings_Frequency_SpeedInitDefaults(tSettings_Frequency_Speed *Settings_Frequency_Speed) {
Settings_Frequency_Speed->freqMC1_v = 14;
Settings_Frequency_Speed->freqMC2_v = 135;
Settings_Frequency_Speed->SpeedPKsig_v = 2;
Settings_Frequency_Speed->SpeedPKdata_v = 2;
Settings_Frequency_Speed->SpeedOKsig_v = 3;
Settings_Frequency_Speed->SpeedOKdata_v = 3;
Settings_Frequency_Speed->timeRespOK_v = 20;
Settings_Frequency_Speed->SItimeAdv_v = 0;
Settings_Frequency_Speed->minRSSI_v = -60;
Settings_Frequency_Speed->TrebootREC_v = 30;
Settings_Frequency_Speed->TimeLifeRegistr_v = 50000;
Settings_Frequency_Speed->RegionRegistr_v = 14;
Settings_Frequency_Speed->MaxDistanceSAT_v = 4500;
}

27
Src/Settings_GSM.c Normal file
View File

@ -0,0 +1,27 @@
//
// Created by cfif on 11.11.22.
//
#include "Settings_Basic_Access.h"
#include <string.h>
#include "DeviceStorageIni.h"
#include "MainModesArbiter.h"
void vSettings_GSMInitDefaults(tSettings_GSM *Settings_GSM) {
memset(Settings_GSM->GSMhttpAdrSrv, 0, sizeof(Settings_GSM->GSMhttpAdrSrv));
memset(Settings_GSM->GSMhttpPort, 0, sizeof(Settings_GSM->GSMhttpPort));
memset(Settings_GSM->HttpSrvLogin, 0, sizeof(Settings_GSM->HttpSrvLogin));
memset(Settings_GSM->HttpSrvPass, 0, sizeof(Settings_GSM->HttpSrvPass));
memset(Settings_GSM->GSMapnName, 0, sizeof(Settings_GSM->GSMapnName));
strcat(Settings_GSM->GSMhttpAdrSrv, "atmail.gonets.tk");
strcat(Settings_GSM->GSMhttpPort, "80");
strcat(Settings_GSM->HttpSrvLogin, "admin");
strcat(Settings_GSM->HttpSrvPass, "nimda");
Settings_GSM->GSMtimeMSG = 0;
Settings_GSM->GSMtimeFLASH = 0;
Settings_GSM->GSMtimeSSOFT = 0;
Settings_GSM->HttpSrvPerConn = 0;
strcat(Settings_GSM->GSMapnName, "internet.mts.ru");
}

67
Src/Settings_General.c Normal file
View File

@ -0,0 +1,67 @@
/*
* MainSettings.h
*
* Created on: 08.11.2022
* Author: cfif
*/
#include "Settings_General.h"
#include <string.h>
#include "DeviceStorageIni.h"
#include "JSONSettings.h"
#include "MainModesArbiter.h"
extern tMma MAIN_ENV;
/*
const struct to_json jsonSettings_General[] = {
{.name = "ATnum_v", .value = &MAIN_ENV.storage.nvm.Settings_General.ATnum_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.ATnum_v), .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "ATpriority_v", .value = &MAIN_ENV.storage.nvm.Settings_General.ATpriority_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.ATpriority_v), .vtype = t_to_uint32_t,},
{.name = "ATurgency_v", .value = &MAIN_ENV.storage.nvm.Settings_General.ATurgency_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.ATurgency_v), .vtype = t_to_uint32_t,},
{.name = "loginADMIN_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_General.loginADMIN_v.length, .value = &MAIN_ENV.storage.nvm.Settings_General.loginADMIN_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.loginADMIN_v.data), .vtype = t_to_string,},
{.name = "passADMIN_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_General.loginADMIN_v.length, .value = &MAIN_ENV.storage.nvm.Settings_General.passADMIN_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.passADMIN_v.data), .vtype = t_to_string,},
{.name = "loginINTEG_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_General.loginADMIN_v.length, .value = &MAIN_ENV.storage.nvm.Settings_General.loginINTEG_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.loginINTEG_v.data), .vtype = t_to_string,},
{.name = "passINTEG_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_General.loginADMIN_v.length, .value = &MAIN_ENV.storage.nvm.Settings_General.passINTEG_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.passINTEG_v.data), .vtype = t_to_string,},
{.name = "loginUSER_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_General.loginADMIN_v.length, .value = &MAIN_ENV.storage.nvm.Settings_General.loginUSER_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.loginUSER_v.data), .vtype = t_to_string,},
{.name = "UserPass_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_General.loginADMIN_v.length, .value = &MAIN_ENV.storage.nvm.Settings_General.UserPass_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.UserPass_v.data), .vtype = t_to_string,},
{.name = "BannedSAT_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_General.loginADMIN_v.length, .value = &MAIN_ENV.storage.nvm.Settings_General.BannedSAT_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.BannedSAT_v.data), .vtype = t_to_string,},
{.name = "GMTcorr_v", .value = &MAIN_ENV.storage.nvm.Settings_General.GMTcorr_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.GMTcorr_v), .vtype = t_to_uint32_t,},
{.name = "GreenMode_v", .value = &MAIN_ENV.storage.nvm.Settings_General.GreenMode_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.GreenMode_v), .vtype = t_to_boolean,},
{.name = "DefLatiGrad_v", .value = &MAIN_ENV.storage.nvm.Settings_General.DefLatiGrad_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.DefLatiGrad_v), .vtype = t_to_uint32_t,},
{.name = "DefLatiMin_v", .value = &MAIN_ENV.storage.nvm.Settings_General.DefLatiMin_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.DefLatiMin_v), .vtype = t_to_uint32_t,},
{.name = "DefLongGrad_v", .value = &MAIN_ENV.storage.nvm.Settings_General.DefLongGrad_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.DefLongGrad_v), .vtype = t_to_uint32_t,},
{.name = "DefLongMin_v", .value = &MAIN_ENV.storage.nvm.Settings_General.DefLongMin_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.DefLongMin_v), .vtype = t_to_uint32_t,},
{.name = "SaveToSentBox_v", .value = &MAIN_ENV.storage.nvm.Settings_General.SaveToSentBox_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_General.SaveToSentBox_v), .vtype = t_to_boolean,},
{NULL}
};
*/
void vSettings_GeneralInitDefaults(tSettings_General *Settings_General) {
memset(Settings_General->loginADMIN_v, 0, sizeof(Settings_General->loginADMIN_v));
memset(Settings_General->passADMIN_v, 0, sizeof(Settings_General->passADMIN_v));
memset(Settings_General->loginINTEG_v, 0, sizeof(Settings_General->loginINTEG_v));
memset(Settings_General->passINTEG_v, 0, sizeof(Settings_General->passINTEG_v));
memset(Settings_General->loginUSER_v, 0, sizeof(Settings_General->loginUSER_v));
memset(Settings_General->UserPass_v, 0, sizeof(Settings_General->UserPass_v));
memset(Settings_General->BannedSAT_v, 0, sizeof(Settings_General->BannedSAT_v));
Settings_General->ATnum_v = 1185;
Settings_General->ATpriority_v = 4;
Settings_General->ATurgency_v = 0;
strcat(Settings_General->loginADMIN_v, "admin");
strcat(Settings_General->passADMIN_v, "nimda");
strcat(Settings_General->loginINTEG_v, "integ");
strcat(Settings_General->passINTEG_v, "getni");
strcat(Settings_General->loginUSER_v, "user");
strcat(Settings_General->UserPass_v, "user");
strcat(Settings_General->BannedSAT_v, "");
Settings_General->GMTcorr_v = 3;
Settings_General->GreenMode_v = 1;
Settings_General->DefLatiGrad_v = 59;
Settings_General->DefLatiMin_v = 56;
Settings_General->DefLongGrad_v = 30;
Settings_General->DefLongMin_v = 14;
Settings_General->SaveToSentBox_v = 1;
}

11
Src/Settings_LoRaWan.c Normal file
View File

@ -0,0 +1,11 @@
//
// Created by cfif on 23.10.2023.
//
#include "DeviceStorageIni.h"
void vSettings_LoRaWanInitDefaults(tSettings_LoRaWan *Settings_LoRaWan) {
Settings_LoRaWan->LoRaWanMaxBuf = 5;
Settings_LoRaWan->LoRaWanATsrv = 7;
}

20
Src/Settings_Msd.c Normal file
View File

@ -0,0 +1,20 @@
//
// Created by cfif on 08.06.23.
//
#include <string.h>
#include "DeviceStorageIni.h"
void vSettings_MsdInitDefaults(tSettings_Msd *Settings_Msd) {
memset(Settings_Msd->VIN, 0, sizeof(Settings_Msd->VIN));
strcat(Settings_Msd->VIN, "4Y1SL65848Z411439");
Settings_Msd->NumHuman = 1;
Settings_Msd->TypeFuel = 1;
Settings_Msd->SatTimeInZone = 5;
Settings_Msd->AlmSatAngle = 20;
Settings_Msd->SosATsrv = 7;
}

37
Src/Settings_Network.c Normal file
View File

@ -0,0 +1,37 @@
//
// Created by cfif on 11.11.22.
//
#include "Settings_Network.h"
#include <string.h>
#include "DeviceStorageIni.h"
#include "MainModesArbiter.h"
/*
extern tMma MAIN_ENV;
const struct to_json jsonSettings_Network[] = {
{.name = "MyIPadres_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_Network.MyIPadres_v.length, .value = &MAIN_ENV.storage.nvm.Settings_Network.MyIPadres_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Network.MyIPadres_v.data), .vtype = t_to_string, .stype = t_to_object},
{.name = "MyIPmask_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_Network.MyIPmask_v.length, .value = &MAIN_ENV.storage.nvm.Settings_Network.MyIPmask_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Network.MyIPmask_v.data), .vtype = t_to_string,},
{.name = "MyGateway_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_Network.MyGateway_v.length, .value = &MAIN_ENV.storage.nvm.Settings_Network.MyGateway_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Network.MyGateway_v.data), .vtype = t_to_string,},
{.name = "ftpAddr_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_Network.ftpAddr_v.length, .value = &MAIN_ENV.storage.nvm.Settings_Network.ftpAddr_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Network.ftpAddr_v.data), .vtype = t_to_string,},
{.name = "ftpLogin_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_Network.ftpLogin_v.length, .value = &MAIN_ENV.storage.nvm.Settings_Network.ftpLogin_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Network.ftpLogin_v.data), .vtype = t_to_string,},
{.name = "ftpPass_v", .lenStr = &MAIN_ENV.storage.nvm.Settings_Network.ftpPass_v.length, .value = &MAIN_ENV.storage.nvm.Settings_Network.ftpPass_v.data, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Network.ftpPass_v.data), .vtype = t_to_string,},
{NULL}
};
*/
void vSettings_NetworkInitDefaults(tSettings_Network *Settings_Network) {
memset(Settings_Network->MyIPadres_v, 0, sizeof(Settings_Network->MyIPadres_v));
memset(Settings_Network->MyIPmask_v, 0, sizeof(Settings_Network->MyIPmask_v));
memset(Settings_Network->MyGateway_v, 0, sizeof(Settings_Network->MyGateway_v));
memset(Settings_Network->ftpAddr_v, 0, sizeof(Settings_Network->ftpAddr_v));
memset(Settings_Network->ftpLogin_v, 0, sizeof(Settings_Network->ftpLogin_v));
memset(Settings_Network->ftpPass_v, 0, sizeof(Settings_Network->ftpPass_v));
strcat(Settings_Network->MyIPadres_v, "192.168.1.99");
strcat(Settings_Network->MyIPmask_v, "255.255.255.0");
strcat(Settings_Network->MyGateway_v, "192.168.1.1");
strcat(Settings_Network->ftpAddr_v, "192.168.2.155");
strcat(Settings_Network->ftpLogin_v, "12345");
strcat(Settings_Network->ftpPass_v, "12345");
}

View File

@ -0,0 +1,27 @@
//
// Created by cfif on 14.11.22.
//
#include "Settings_RS485_Bluetooth.h"
#include <string.h>
#include "DeviceStorageIni.h"
#include "MainModesArbiter.h"
/*
extern tMma MAIN_ENV;
const struct to_json jsonSettings_RS485_Bluetooth[] = {
{.name = "TOut485_v", .value = &MAIN_ENV.storage.nvm.Settings_RS485_Bluetooth.TOut485_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_RS485_Bluetooth.TOut485_v), .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "TOutBlue_v", .value = &MAIN_ENV.storage.nvm.Settings_RS485_Bluetooth.TOutBlue_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_RS485_Bluetooth.TOutBlue_v), .vtype = t_to_uint32_t,},
{.name = "rs485baudrate_v", .value = &MAIN_ENV.storage.nvm.Settings_RS485_Bluetooth.rs485baudrate_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_RS485_Bluetooth.rs485baudrate_v), .vtype = t_to_uint32_t,},
{.name = "BTvisible_v", .value = &MAIN_ENV.storage.nvm.Settings_RS485_Bluetooth.BTvisible_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_RS485_Bluetooth.BTvisible_v), .vtype = t_to_uint32_t,},
{NULL}
};
*/
void vSettings_RS485_BluetoothInitDefaults(tSettings_RS485_Bluetooth *Settings_RS485_Bluetooth) {
Settings_RS485_Bluetooth->TOut485_v = 300;
Settings_RS485_Bluetooth->TOutBlue_v = 300;
Settings_RS485_Bluetooth->rs485baudrate_v = 115200;
Settings_RS485_Bluetooth->BTvisible_v = 2000;
}

76
Src/Settings_Tracert.c Normal file
View File

@ -0,0 +1,76 @@
//
// Created by cfif on 11.11.22.
//
#include "Settings_Tracert.h"
#include <string.h>
#include "DeviceStorageIni.h"
#include "MainModesArbiter.h"
extern tMma MAIN_ENV;
/*
const struct to_json jsonSettings_Tracert[] = {
{.name = "mTracer_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.mTracer_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.mTracer_v), .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "PeSvCoor_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.PeSvCoor_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.PeSvCoor_v), .vtype = t_to_uint32_t,},
{.name = "cntPackExtCoord_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.cntPackExtCoord_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.cntPackExtCoord_v), .vtype = t_to_uint32_t,},
{.name = "minPtoSe_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.minPtoSe_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.minPtoSe_v), .vtype = t_to_uint32_t,},
{.name = "MAXalaS_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.MAXalaS_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.MAXalaS_v), .vtype = t_to_uint32_t,},
{.name = "ExtendedHeader_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.ExtendedHeader_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.ExtendedHeader_v), .vtype = t_to_uint32_t,},
{.name = "trSendSpeed_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.trSendSpeed_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.trSendSpeed_v), .vtype = t_to_uint32_t,},
{.name = "TrATsrv_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.TrATsrv_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.TrATsrv_v), .vtype = t_to_uint32_t,},
{.name = "CoordUrgency_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.CoordUrgency_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.CoordUrgency_v), .vtype = t_to_uint32_t,},
{.name = "SensorAD0volt_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.SensorAD0volt_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.SensorAD0volt_v), .vtype = t_to_uint32_t,},
{.name = "IgnitionInverse_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.IgnitionInverse_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.IgnitionInverse_v), .vtype = t_to_uint32_t,},
{.name = "BatMode_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatMode_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatMode_v), .vtype = t_to_uint32_t,},
{.name = "BatDistCalcSAT_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatDistCalcSAT_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatDistCalcSAT_v), .vtype = t_to_uint32_t,},
{.name = "BatPwONsetPoint_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatPwONsetPoint_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatPwONsetPoint_v), .vtype = t_to_uint32_t,},
{.name = "BatCntONtoTRANS_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatCntONtoTRANS_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatCntONtoTRANS_v), .vtype = t_to_uint32_t,},
{.name = "CntPbatModeRep_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.CntPbatModeRep_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.CntPbatModeRep_v), .vtype = t_to_uint32_t,},
{.name = "BatTimeOffSend_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatTimeOffSend_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatTimeOffSend_v), .vtype = t_to_uint32_t,},
{.name = "BatTimeOffSetP_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatTimeOffSetP_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatTimeOffSetP_v), .vtype = t_to_uint32_t,},
{.name = "BatTimeOffIGN_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatTimeOffIGN_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatTimeOffIGN_v), .vtype = t_to_uint32_t,},
{.name = "BatSENDshedule_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDshedule_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDshedule_v), .vtype = t_to_uint32_t,},
{.name = "BatSENDsheT1_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDsheT1_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDsheT1_v), .vtype = t_to_uint32_t,},
{.name = "BatSENDsheT2_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDsheT2_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDsheT2_v), .vtype = t_to_uint32_t,},
{.name = "BatSENDsheT3_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDsheT3_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDsheT3_v), .vtype = t_to_uint32_t,},
{.name = "BatSENDsheT4_v", .value = &MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDsheT4_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Tracert.BatSENDsheT4_v), .vtype = t_to_uint32_t,},
{NULL}
};
*/
void vSettings_TracertInitDefaults(tSettings_Tracert *Settings_Tracert) {
memset(Settings_Tracert->BatSENDsheT1_v, 0, sizeof(Settings_Tracert->BatSENDsheT1_v));
memset(Settings_Tracert->BatSENDsheT2_v, 0, sizeof(Settings_Tracert->BatSENDsheT2_v));
memset(Settings_Tracert->BatSENDsheT3_v, 0, sizeof(Settings_Tracert->BatSENDsheT3_v));
memset(Settings_Tracert->BatSENDsheT4_v, 0, sizeof(Settings_Tracert->BatSENDsheT4_v));
Settings_Tracert->mTracer_v = 0;
Settings_Tracert->TransferCoordSettings_v = 0;
Settings_Tracert->PeSvCoor_v = 600;
Settings_Tracert->cntPackExtCoord_v = 15;
Settings_Tracert->minPtoSe_v = 20;
Settings_Tracert->MAXalaS_v = 4;
Settings_Tracert->ExtendedHeader_v = 0;
Settings_Tracert->trSendSpeed_v = 1;
Settings_Tracert->TrATsrv_v = 7;
Settings_Tracert->CoordUrgency_v = 0;
Settings_Tracert->SensorAD0volt_v = 1;
Settings_Tracert->IgnitionInverse_v = 0;
Settings_Tracert->BatMode_v = 0;
Settings_Tracert->BatDistCalcSAT_v = 3500;
Settings_Tracert->BatPwONsetPoint_v = 15;
Settings_Tracert->BatCntONtoTRANS_v = 1;
Settings_Tracert->CntPbatModeRep_v = 1;
Settings_Tracert->BatTimeOffSend_v = 300;
Settings_Tracert->BatTimeOffSetP_v = 60;
Settings_Tracert->BatTimeOffIGN_v = 10000;
Settings_Tracert->BatSENDshedule_v = 0;
strcpy(Settings_Tracert->BatSENDsheT1_v, "00:00");
strcpy(Settings_Tracert->BatSENDsheT2_v, "00:00");
strcpy(Settings_Tracert->BatSENDsheT3_v, "00:00");
strcpy(Settings_Tracert->BatSENDsheT4_v, "00:00");
Settings_Tracert->MaxBuf_v = 5;
Settings_Tracert->TransmissionModeData = 0;
Settings_Tracert->MaxFiles_v = 100;
}

View File

@ -0,0 +1,45 @@
//
// Created by cfif on 11.11.22.
//
#include "Settings_Transceiver.h"
#include <string.h>
#include "DeviceStorageIni.h"
#include "MainModesArbiter.h"
/*
extern tMma MAIN_ENV;
const struct to_json jsonSettings_Transceiver[] = {
{.name = "VCOADJ_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.VCOADJ_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.VCOADJ_v), .vtype = t_to_uint32_t, .stype = t_to_object},
{.name = "VCOBIAS_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.VCOBIAS_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.VCOBIAS_v), .vtype = t_to_uint32_t,},
{.name = "PABIAS_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.PABIAS_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.PABIAS_v), .vtype = t_to_uint32_t,},
{.name = "CHARGE_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.CHARGE_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.CHARGE_v), .vtype = t_to_uint32_t,},
{.name = "PA_LEVEL_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.PA_LEVEL_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.PA_LEVEL_v), .vtype = t_to_uint32_t,},
{.name = "FREQERR_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.FREQERR_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.FREQERR_v), .vtype = t_to_uint32_t,},
{.name = "RecV2CorrFreq_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.RecV2CorrFreq_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.RecV2CorrFreq_v), .vtype = t_to_uint32_t,},
{.name = "RecV2CFtoDSP_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.RecV2CFtoDSP_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.RecV2CFtoDSP_v), .vtype = t_to_uint32_t,},
{.name = "TypeREC_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.TypeREC_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.TypeREC_v), .vtype = t_to_uint32_t,},
{.name = "CorrectVolt_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.CorrectVolt_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.CorrectVolt_v), .vtype = t_to_int16_t,},
{.name = "CorrVnan_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.CorrVnan_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.CorrVnan_v), .vtype = t_to_int16_t,},
{.name = "SWRlim_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.SWRlim_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.SWRlim_v), .vtype = t_to_uint32_t,},
{.name = "AFUcorr_v", .value = &MAIN_ENV.storage.nvm.Settings_Transceiver.AFUcorr_v, .len = sizeof(MAIN_ENV.storage.nvm.Settings_Transceiver.AFUcorr_v), .vtype = t_to_int16_t,},
{NULL}
};
*/
void vSettings_TransceiverInitDefaults(tSettings_Transceiver *Settings_Transceiver) {
Settings_Transceiver->VCOADJ_v = 1;
Settings_Transceiver->VCOBIAS_v = 5;
Settings_Transceiver->PABIAS_v = 3;
Settings_Transceiver->CHARGE_v = 2;
Settings_Transceiver->PA_LEVEL_v = 8;
Settings_Transceiver->FREQERR_v = 130;
Settings_Transceiver->RecV2CorrFreq_v = 20;
Settings_Transceiver->RecV2CFtoDSP_v = 38;
Settings_Transceiver->TypeREC_v = 3;
Settings_Transceiver->CorrectVolt_v = -1;
Settings_Transceiver->CorrVnan_v = -1;
Settings_Transceiver->SWRlim_v = 400;
Settings_Transceiver->AFUcorr_v = -1;
}

View File

@ -0,0 +1,15 @@
//
// Created by cfif on 04.05.23.
//
#include "Settings_Transmitter.h"
void vSettings_TransmitterInitDefaults(tSettings_Transmitter *Settings_Transmitter) {
Settings_Transmitter->CorPwr1 = 10;
Settings_Transmitter->CorPwr2 = 5;
Settings_Transmitter->CorPwr3 = 2;
Settings_Transmitter->CorPwr4 = 1;
Settings_Transmitter->SelectCorPwr = 1;
Settings_Transmitter->LogEn = 1;
Settings_Transmitter->LogExtendedEn = 0;
Settings_Transmitter->TimeLifeFragIn = 72;
}

22
modular.json Normal file
View File

@ -0,0 +1,22 @@
{
"dep": [
{
"type": "git",
"provider": "GONEC",
"repo": "BaseTypes"
},
{
"type": "git",
"provider": "GONEC",
"repo": "JSON"
}
],
"cmake": {
"inc_dirs": [
"Inc"
],
"srcs": [
"Src/**.c"
]
}
}