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