commit 7d59cb517533c105e908434ba438c3909a9f1b7e Author: cfif Date: Mon May 26 14:41:45 2025 +0300 Init diff --git a/Inc/JSONSettings.h b/Inc/JSONSettings.h new file mode 100644 index 0000000..07b9b73 --- /dev/null +++ b/Inc/JSONSettings.h @@ -0,0 +1,40 @@ +// +// Created by cfif on 09.11.22. +// + +#ifndef GONEC_ARTERY_JSONSETTINGS_H +#define GONEC_ARTERY_JSONSETTINGS_H + +#include +#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 diff --git a/Inc/Settings.h b/Inc/Settings.h new file mode 100644 index 0000000..5934ce9 --- /dev/null +++ b/Inc/Settings.h @@ -0,0 +1,26 @@ +// +// Created by cfif on 18.04.23. +// + +#ifndef GONEC_GSM___SETTINGS_H +#define GONEC_GSM___SETTINGS_H + +#include + +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 diff --git a/Inc/Settings_Ams_Radar.h b/Inc/Settings_Ams_Radar.h new file mode 100644 index 0000000..b04748b --- /dev/null +++ b/Inc/Settings_Ams_Radar.h @@ -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 diff --git a/Inc/Settings_Basic_Access.h b/Inc/Settings_Basic_Access.h new file mode 100644 index 0000000..7ef5b35 --- /dev/null +++ b/Inc/Settings_Basic_Access.h @@ -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 diff --git a/Inc/Settings_Date_Time.h b/Inc/Settings_Date_Time.h new file mode 100644 index 0000000..0ec400a --- /dev/null +++ b/Inc/Settings_Date_Time.h @@ -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 diff --git a/Inc/Settings_Frequency_Speed.h b/Inc/Settings_Frequency_Speed.h new file mode 100644 index 0000000..446fef2 --- /dev/null +++ b/Inc/Settings_Frequency_Speed.h @@ -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 diff --git a/Inc/Settings_GSM.h b/Inc/Settings_GSM.h new file mode 100644 index 0000000..8863f09 --- /dev/null +++ b/Inc/Settings_GSM.h @@ -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 diff --git a/Inc/Settings_General.h b/Inc/Settings_General.h new file mode 100644 index 0000000..8235477 --- /dev/null +++ b/Inc/Settings_General.h @@ -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_*/ diff --git a/Inc/Settings_LoRaWan.h b/Inc/Settings_LoRaWan.h new file mode 100644 index 0000000..87c51ea --- /dev/null +++ b/Inc/Settings_LoRaWan.h @@ -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 diff --git a/Inc/Settings_Msd.h b/Inc/Settings_Msd.h new file mode 100644 index 0000000..495fef5 --- /dev/null +++ b/Inc/Settings_Msd.h @@ -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 diff --git a/Inc/Settings_Network.h b/Inc/Settings_Network.h new file mode 100644 index 0000000..c5f9ee4 --- /dev/null +++ b/Inc/Settings_Network.h @@ -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 diff --git a/Inc/Settings_RS485_Bluetooth.h b/Inc/Settings_RS485_Bluetooth.h new file mode 100644 index 0000000..2659afb --- /dev/null +++ b/Inc/Settings_RS485_Bluetooth.h @@ -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 diff --git a/Inc/Settings_Tracert.h b/Inc/Settings_Tracert.h new file mode 100644 index 0000000..9c0ef20 --- /dev/null +++ b/Inc/Settings_Tracert.h @@ -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 diff --git a/Inc/Settings_Transceiver.h b/Inc/Settings_Transceiver.h new file mode 100644 index 0000000..d8ef4af --- /dev/null +++ b/Inc/Settings_Transceiver.h @@ -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 diff --git a/Inc/Settings_Transmitter.h b/Inc/Settings_Transmitter.h new file mode 100644 index 0000000..a5e570c --- /dev/null +++ b/Inc/Settings_Transmitter.h @@ -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 diff --git a/Src/JSONSettings.c b/Src/JSONSettings.c new file mode 100644 index 0000000..d583413 --- /dev/null +++ b/Src/JSONSettings.c @@ -0,0 +1,873 @@ +// +// Created by cfif on 09.11.22. +// +#include "Settings_General.h" +#include "tiny-json.h" +#include +#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; +} diff --git a/Src/Settings_Ams_Radar.c b/Src/Settings_Ams_Radar.c new file mode 100644 index 0000000..1a9330c --- /dev/null +++ b/Src/Settings_Ams_Radar.c @@ -0,0 +1,14 @@ +// +// Created by cfif on 24.06.23. +// + +#include +#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; +} \ No newline at end of file diff --git a/Src/Settings_Basic_Access.c b/Src/Settings_Basic_Access.c new file mode 100644 index 0000000..97332d8 --- /dev/null +++ b/Src/Settings_Basic_Access.c @@ -0,0 +1,44 @@ +// +// Created by cfif on 11.11.22. +// +#include "Settings_Basic_Access.h" +#include +#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; +} diff --git a/Src/Settings_Date_Time.c b/Src/Settings_Date_Time.c new file mode 100644 index 0000000..c7325f9 --- /dev/null +++ b/Src/Settings_Date_Time.c @@ -0,0 +1,19 @@ +// +// Created by cfif on 14.11.22. +// + +#include "Settings_Date_Time.h" +#include +#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; +} \ No newline at end of file diff --git a/Src/Settings_Frequency_Speed.c b/Src/Settings_Frequency_Speed.c new file mode 100644 index 0000000..2fee191 --- /dev/null +++ b/Src/Settings_Frequency_Speed.c @@ -0,0 +1,46 @@ +// +// Created by cfif on 11.11.22. +// + +#include "Settings_Frequency_Speed.h" +#include +#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; +} \ No newline at end of file diff --git a/Src/Settings_GSM.c b/Src/Settings_GSM.c new file mode 100644 index 0000000..5e69fba --- /dev/null +++ b/Src/Settings_GSM.c @@ -0,0 +1,27 @@ +// +// Created by cfif on 11.11.22. +// +#include "Settings_Basic_Access.h" +#include +#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"); + +} diff --git a/Src/Settings_General.c b/Src/Settings_General.c new file mode 100644 index 0000000..22348f3 --- /dev/null +++ b/Src/Settings_General.c @@ -0,0 +1,67 @@ +/* + * MainSettings.h + * + * Created on: 08.11.2022 + * Author: cfif + */ + +#include "Settings_General.h" +#include +#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; +} + diff --git a/Src/Settings_LoRaWan.c b/Src/Settings_LoRaWan.c new file mode 100644 index 0000000..2353123 --- /dev/null +++ b/Src/Settings_LoRaWan.c @@ -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; +} + diff --git a/Src/Settings_Msd.c b/Src/Settings_Msd.c new file mode 100644 index 0000000..9e94bdc --- /dev/null +++ b/Src/Settings_Msd.c @@ -0,0 +1,20 @@ +// +// Created by cfif on 08.06.23. +// +#include +#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; + +} \ No newline at end of file diff --git a/Src/Settings_Network.c b/Src/Settings_Network.c new file mode 100644 index 0000000..d18cbc0 --- /dev/null +++ b/Src/Settings_Network.c @@ -0,0 +1,37 @@ +// +// Created by cfif on 11.11.22. +// +#include "Settings_Network.h" +#include +#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"); +} \ No newline at end of file diff --git a/Src/Settings_RS485_Bluetooth.c b/Src/Settings_RS485_Bluetooth.c new file mode 100644 index 0000000..3d09f9d --- /dev/null +++ b/Src/Settings_RS485_Bluetooth.c @@ -0,0 +1,27 @@ +// +// Created by cfif on 14.11.22. +// + +#include "Settings_RS485_Bluetooth.h" +#include +#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; +} \ No newline at end of file diff --git a/Src/Settings_Tracert.c b/Src/Settings_Tracert.c new file mode 100644 index 0000000..069c346 --- /dev/null +++ b/Src/Settings_Tracert.c @@ -0,0 +1,76 @@ +// +// Created by cfif on 11.11.22. +// +#include "Settings_Tracert.h" +#include +#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; +} \ No newline at end of file diff --git a/Src/Settings_Transceiver.c b/Src/Settings_Transceiver.c new file mode 100644 index 0000000..0ff3849 --- /dev/null +++ b/Src/Settings_Transceiver.c @@ -0,0 +1,45 @@ +// +// Created by cfif on 11.11.22. +// + +#include "Settings_Transceiver.h" +#include +#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; +} \ No newline at end of file diff --git a/Src/Settings_Transmitter.c b/Src/Settings_Transmitter.c new file mode 100644 index 0000000..b1a4643 --- /dev/null +++ b/Src/Settings_Transmitter.c @@ -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; +} \ No newline at end of file diff --git a/modular.json b/modular.json new file mode 100644 index 0000000..b9cff4e --- /dev/null +++ b/modular.json @@ -0,0 +1,22 @@ +{ + "dep": [ + { + "type": "git", + "provider": "GONEC_NEW", + "repo": "BaseTypes" + }, + { + "type": "git", + "provider": "GONEC_NEW", + "repo": "JSON" + } + ], + "cmake": { + "inc_dirs": [ + "Inc" + ], + "srcs": [ + "Src/**.c" + ] + } +} \ No newline at end of file