Init
This commit is contained in:
commit
6ad6c614b5
|
|
@ -0,0 +1,20 @@
|
|||
//
|
||||
// Created by xemon on 19.12.22.
|
||||
//
|
||||
#include "DeviceDataNonVolatilePrivate.h"
|
||||
|
||||
|
||||
|
||||
void DeviceDataNonVolatile_InitDefaults(tDeviceDataNonVolatile *env) {
|
||||
DeviceStorageInitDeviceSettings(&env->device);
|
||||
vUveosGostSettingsInitDefaults(&env->gost);
|
||||
DeviceStorageInitCodec(&env->audioCodec);
|
||||
CarFlipDetection_InitSettings(&env->flip);
|
||||
EraGlonassMsdTable_Init(&env->msdTable);
|
||||
|
||||
//проверка соответствия версии хранилища
|
||||
//позволяет принудительно сбросить хранилище
|
||||
//к значениям по умолчанию вслучае установки
|
||||
//значения большее чем в придыдущих прошивках
|
||||
env->version = DEVICE_DATA_NO_VOLATILE_VERSION;
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
//
|
||||
// Created by xemon on 19.10.22.
|
||||
//
|
||||
|
||||
#ifndef UVEOS_ON_NATION_DEVICEDATANONVOLATILE_H
|
||||
#define UVEOS_ON_NATION_DEVICEDATANONVOLATILE_H
|
||||
|
||||
#include <max9860.h>
|
||||
#include <CarFlipDetection.h>
|
||||
#include <UveosGostSettings.h>
|
||||
#include <EraGlonassMsdTable.h>
|
||||
#include <VariablesTable.h>
|
||||
|
||||
|
||||
#define DEVICE_DATA_NO_VOLATILE_VERSION 0x10
|
||||
|
||||
typedef struct {
|
||||
bool telematicaIsActive;
|
||||
|
||||
tString32 EGTS_SERVER_ADDRESS; // Адрес:порт сервера №1
|
||||
tString64 EGTS_GPRS_APN; // APN
|
||||
uint32_t EGTS_UNIT_ID; // идентификационный номер терминала
|
||||
|
||||
uint32_t EGTS_SERVER_CHECK_IN_PERIOD; // Время между попытками установить соединение с сервером (сек)
|
||||
uint32_t EGTS_SERVER_CHECK_IN_ATTEMPTS; // Количество попыток соединения с сервером
|
||||
uint32_t EGTS_SERVER_PACKET_TOUT; // Время ожидания ответа от сервера (сек)
|
||||
uint32_t EGTS_SERVER_PACKET_RETRANSMIT_ATTEMPTS; // Количество попыток отправки неподтвержденного пакета на сервер
|
||||
|
||||
uint32_t EGTS_FLEET_IGN_ON_PERIOD; // Таймер передачи данных при включенном зажигании (сек)
|
||||
uint32_t EGTS_FLEET_IGN_OFF_PERIOD; // Таймер передачи данных при выключенном зажигании (сек)
|
||||
uint32_t EGTS_FLEET_EM_MON_PERIOD; // Таймер передачи данных при экстренном слежении (сек)
|
||||
|
||||
uint32_t EGTS_FLEET_COURSE_THRESHOLD; // Изменение курсового угла после которого нужно послать данные (градусы)
|
||||
uint32_t EGTS_GNSS_COURSE_SPEED; // Скорость ниже которой не учитывается изменение курсового угла (км/ч)
|
||||
uint32_t EGTS_FLEET_DIST_THRESHOLD; // Изменение дистанции после которого нужно послать данные (100 метров)
|
||||
|
||||
tString32 EGTS_TELE_VERS;
|
||||
|
||||
bool EGTS_SERVER_ENABLE_TELEMATICA;
|
||||
|
||||
} tDeviceSettingsTelematica;
|
||||
|
||||
typedef struct {
|
||||
tDeviceSettingsTelematica telematica;
|
||||
} tDeviceTeledataStorageData;
|
||||
|
||||
|
||||
typedef struct {
|
||||
bool useInternalAnt;
|
||||
struct {
|
||||
tString16 value;
|
||||
uint16_t writeAccess;
|
||||
} serialNumber;
|
||||
tString32 smsServiceCenter;
|
||||
|
||||
bool useMutePositive;
|
||||
bool garageMode;
|
||||
tString64 rawCodecRegisters;
|
||||
|
||||
tString32 softVers;
|
||||
tString32 hardVers;
|
||||
|
||||
tString32 ccid;
|
||||
tString32 cgsmid;
|
||||
tString32 codecConf;
|
||||
uint16_t disallowWrite;
|
||||
} tDeviceSettings;
|
||||
|
||||
typedef struct {
|
||||
uint32_t version;
|
||||
tUveosGostSettings gost;
|
||||
MAX9860_ComplexAudioConfig audioCodec;
|
||||
tCarFlipDetectionSettings flip;
|
||||
tDeviceSettings device;
|
||||
|
||||
tDeviceTeledataStorageData deviceTeledataStorageData;
|
||||
|
||||
tEraGlonassMsdTable msdTable;
|
||||
} tDeviceDataNonVolatile;
|
||||
|
||||
|
||||
void DeviceDataNonVolatile_InitDefaults(tDeviceDataNonVolatile *env);
|
||||
|
||||
void DeviceDataNonVolatile_AddToVarTab(
|
||||
tDeviceDataNonVolatile *env,
|
||||
tVariablesTable *variablesTable,
|
||||
uint32_t VARIABLES_GROUP
|
||||
);
|
||||
|
||||
#endif //UVEOS_ON_NATION_DEVICEDATANONVOLATILE_H
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// Created by xemon on 19.12.22.
|
||||
//
|
||||
|
||||
#ifndef UVEOS_ON_NATION_DEVICEDATANONVOLATILEPRIVATE_H
|
||||
#define UVEOS_ON_NATION_DEVICEDATANONVOLATILEPRIVATE_H
|
||||
|
||||
#include "DeviceDataNonVolatile.h"
|
||||
|
||||
void DeviceStorageInitCodec(MAX9860_ComplexAudioConfig *audioConfig);
|
||||
|
||||
void DeviceStorageInitDeviceSettings(tDeviceSettings *env);
|
||||
|
||||
#endif //UVEOS_ON_NATION_DEVICEDATANONVOLATILEPRIVATE_H
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
//
|
||||
// Created by xemon on 19.12.22.
|
||||
//
|
||||
|
||||
#include "DeviceDataNonVolatilePrivate.h"
|
||||
#include "UveosGostSettings_AddToVarsTab.h"
|
||||
|
||||
#define ADD_VAR_SIZE(TYPE, NAME, VALUE, LEN, GROUP) \
|
||||
VariablesTableAdd( \
|
||||
variablesTable, \
|
||||
#NAME, \
|
||||
sizeof (#NAME)-1, \
|
||||
VARIABLE_TYPE_##TYPE, \
|
||||
(VALUE), \
|
||||
(LEN), \
|
||||
0, \
|
||||
GROUP \
|
||||
)
|
||||
|
||||
#define ADD_VAR(TYPE, NAME, VALUE) ADD_VAR_SIZE(TYPE, NAME, VALUE, 0, group)
|
||||
#define ADD_VAR_STR_OBJ(TYPE, NAME, VALUE) ADD_VAR_SIZE(TYPE, NAME, &(VALUE).data, &(VALUE).length,group)
|
||||
|
||||
// Добавление переменных в таблицу
|
||||
void DeviceDataNonVolatile_AddToVarTab(
|
||||
tDeviceDataNonVolatile *env,
|
||||
tVariablesTable *variablesTable,
|
||||
uint32_t group
|
||||
) {
|
||||
//Uveos Gost Settings
|
||||
UveosGostSettings_AddToVarsTab(&env->gost, variablesTable, group);
|
||||
|
||||
//Flip detection parameters
|
||||
ADD_VAR(FLOAT32, FLIP_DETECT_GRAVITY_X, &env->flip.gravity.x);
|
||||
ADD_VAR(FLOAT32, FLIP_DETECT_GRAVITY_Y, &env->flip.gravity.y);
|
||||
ADD_VAR(FLOAT32, FLIP_DETECT_GRAVITY_Z, &env->flip.gravity.z);
|
||||
|
||||
ADD_VAR(BOOL, FLIP_DETECT_ENABLE, &env->flip.enabled);
|
||||
ADD_VAR(FLOAT32, FLIP_DETECT_TRESHOLD_ANGLE_COS, &env->flip.thresholds.angleCos);
|
||||
ADD_VAR(UINT32, FLIP_DETECT_TRESHOLD_ANTIFLIGHT, &env->flip.thresholds.antiFlightMs);
|
||||
|
||||
//Devices
|
||||
ADD_VAR_STR_OBJ(STRING, DEVICE_ID, env->device.serialNumber.value);
|
||||
VariablesTable_GetLast(variablesTable)->writeAttempts = &env->device.serialNumber.writeAccess;
|
||||
|
||||
ADD_VAR(BOOL, USE_INTERNAL_ANT, &env->device.useInternalAnt);
|
||||
ADD_VAR(BOOL, USE_MUTE_POSITIVE, &env->device.useMutePositive);
|
||||
ADD_VAR_STR_OBJ(STRING, SMS_CENTER, env->device.smsServiceCenter);
|
||||
|
||||
ADD_VAR_STR_OBJ(STRING, SOFTWARE_VERS, env->device.softVers);
|
||||
VariablesTable_GetLast(variablesTable)->writeAttempts = &env->device.disallowWrite;
|
||||
ADD_VAR_STR_OBJ(STRING, HARDWARE_VERS, env->device.hardVers);
|
||||
VariablesTable_GetLast(variablesTable)->writeAttempts = &env->device.disallowWrite;
|
||||
|
||||
ADD_VAR_STR_OBJ(STRING, GSM_CCID, env->device.ccid);
|
||||
VariablesTable_GetLast(variablesTable)->writeAttempts = &env->device.disallowWrite;
|
||||
ADD_VAR_STR_OBJ(STRING, GSM_CGSN, env->device.cgsmid);
|
||||
VariablesTable_GetLast(variablesTable)->writeAttempts = &env->device.disallowWrite;
|
||||
|
||||
ADD_VAR_STR_OBJ(STRING, CODEC_CONF, env->device.codecConf);
|
||||
}
|
||||
|
||||
#undef ADD_VAR_SIZE
|
||||
#undef ADD_VAR
|
||||
#undef ADD_VAR_STR_OBJ
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
//
|
||||
// Created by zemon on 28.07.2021.
|
||||
//
|
||||
|
||||
#include "DeviceDataNonVolatilePrivate.h"
|
||||
|
||||
/////////////////////////////////////// INTERFACE ///////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
//MAX9860_ClocksState MAX9860_INIT_CLOCK = {
|
||||
// .MCLK_TO_PCLK_Prescaler=MAX9860_ICM_PCLK_IS_12MHZ,
|
||||
// .IntegerClockMode=MAX9860_ICM_NORMAL,
|
||||
// .EXACTLY_16KHZ=false,
|
||||
// .PLL_Enable=false,
|
||||
// .LRCLK_Driver=0x1062,
|
||||
//};
|
||||
//MAX9860_AudioInterfaceState MAX9860_INIT_AUDIO_INTERFACE = {
|
||||
// .MasterMode = false,
|
||||
// .LRCLK_Invert = true,
|
||||
// .DAC_BCLK_Invert = false,
|
||||
// .DAC_DelayMode = false,
|
||||
// .SDOUT_HighImpedanceMode = false,
|
||||
// .TDM_ModeSelect = false,
|
||||
// .ADC_BCLK_Invert = false,
|
||||
// .ADC_Delay_Mode= false,
|
||||
// .StereoEnable= false,
|
||||
// .BCLK_Select= 0x00,
|
||||
//};
|
||||
//
|
||||
//MAX9860_PowerManagementState MAX9860_INIT_POWER = {
|
||||
// .FullPowerOn=true,
|
||||
// .DAC_Enabled=true,
|
||||
// .ADC_EnabledLeft=true,
|
||||
// .ADC_EnabledRight=false,
|
||||
//};
|
||||
|
||||
|
||||
/////////////////////////////// AUDIO SETTINGS ////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
MAX9860_DigitalFiltersState MAX9860_INIT_FILTERS = {
|
||||
.ADC_DigitalFilter = MAX9860_DIGITAL_FILTER_BUTTERWORTH_16KHZ,
|
||||
.DAC_DigitalFilter = MAX9860_DIGITAL_FILTER_DISABLED,
|
||||
};
|
||||
|
||||
MAX9860_DigitalLevelControlState MAX9860_INIT_CONTROLS = {
|
||||
.DAC_LevelAdjust = MAX9860_DAC_LEVEL_ADJUST__DB(+3),
|
||||
.ADC_OutputLevelRight = MAX9860_ADC_OUTPUT_LEVEL__DB(-12),
|
||||
.ADC_OutputLevelLeft = MAX9860_ADC_OUTPUT_LEVEL__DB(-12),
|
||||
.DAC_Gain = MAX9860_DAC_GAIN__PLUS_18DB,
|
||||
.Sidetone = MAX9860_SIDETONE_DISABLED,
|
||||
};
|
||||
|
||||
|
||||
MAX9860_MicrophoneInputState MAX9860_INIT_MIC_INPUT = {
|
||||
.MicrophonePreampGain = MAX9860_MIC_PREAMP_GAIN__0,
|
||||
.MicrophoneProgrammableGain = MAX9860_MIC_PROGRAMMABLE_GAIN_PLUS_DB(0),
|
||||
};
|
||||
|
||||
MAX9860_AutomaticGainControlAndNoiseGateState MAX9860_INIT_NOISE_GATE_AND_AUTO_GAIN = {
|
||||
.NoiseGateSource = MAX9860_NOISE_GATE_SOURCE_LEFT_ONLY,
|
||||
.ReleaseTime = MAX9860_AUTOMATIC_GAIN_CONTROL_RELEASE_TIME_78_MS,
|
||||
.AttackTime = MAX9860_AUTOMATIC_GAIN_CONTROL_ATTACK_TIME_3_MS,
|
||||
.HoldTime = MAX9860_AUTOMATIC_GAIN_CONTROL_DISABLED,
|
||||
|
||||
.NoiseGateThreshold = 0x0,
|
||||
.AutomaticGainControlThreshold = 0x0,
|
||||
};
|
||||
|
||||
void DeviceStorageInitCodec(MAX9860_ComplexAudioConfig *audioConfig) {
|
||||
audioConfig->filters = MAX9860_INIT_FILTERS;
|
||||
audioConfig->levelControl = MAX9860_INIT_CONTROLS;
|
||||
audioConfig->microphoneGains = MAX9860_INIT_MIC_INPUT;
|
||||
audioConfig->autoGainAndNoiseGate = MAX9860_INIT_NOISE_GATE_AND_AUTO_GAIN;
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
//
|
||||
// Created by xemon on 19.10.22.
|
||||
//
|
||||
#include "DeviceDataNonVolatilePrivate.h"
|
||||
|
||||
void DeviceStorageInitDeviceSettings(tDeviceSettings *env) {
|
||||
String16CopyStatic(&env->serialNumber.value, "Нет ID!");
|
||||
String32CopyStatic(&env->smsServiceCenter, "+79418100013");
|
||||
String32CopyStatic(&env->codecConf, "00109000040033060f20320000008a");
|
||||
env->serialNumber.writeAccess = 1;
|
||||
env->disallowWrite = 0;
|
||||
env->useInternalAnt = true;
|
||||
env->useMutePositive = false;
|
||||
env->garageMode = false;
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"dep": [
|
||||
{
|
||||
"type": "git",
|
||||
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
|
||||
"repo": "UveosGostSettings"
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
|
||||
"repo": "UveosGostSettings_AddToVarsTab"
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
|
||||
"repo": "AudioCodec_MAX9860"
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
|
||||
"repo": "VariablesTable"
|
||||
}
|
||||
],
|
||||
"cmake": {
|
||||
"inc_dirs": [
|
||||
"./"
|
||||
],
|
||||
"srcs": [
|
||||
"./**.c"
|
||||
]
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue