diff --git a/DeviceDataNonVolatile.c b/DeviceDataNonVolatile.c index 01d635c..42846fc 100644 --- a/DeviceDataNonVolatile.c +++ b/DeviceDataNonVolatile.c @@ -7,6 +7,7 @@ void DeviceDataNonVolatile_InitDefaults(tDeviceDataNonVolatile *env) { DeviceStorageInitDeviceSettings(&env->device); + DeviceStorageInitTelematicSettings(&env->deviceTeledataStorageData.telematica); vUveosGostSettingsInitDefaults(&env->gost); DeviceStorageInitCodec(&env->audioCodec); CarFlipDetection_InitSettings(&env->flip); diff --git a/DeviceDataNonVolatile.h b/DeviceDataNonVolatile.h index f02995b..16634b1 100644 --- a/DeviceDataNonVolatile.h +++ b/DeviceDataNonVolatile.h @@ -12,7 +12,7 @@ #include -#define DEVICE_DATA_NO_VOLATILE_VERSION 0x10 +#define DEVICE_DATA_NO_VOLATILE_VERSION 0x11 typedef struct { bool telematicaIsActive; @@ -81,6 +81,8 @@ typedef struct { void DeviceDataNonVolatile_InitDefaults(tDeviceDataNonVolatile *env); +void DeviceStorageInitTelematicSettings(tDeviceSettingsTelematica *env); + void DeviceDataNonVolatile_AddToVarTab( tDeviceDataNonVolatile *env, tVariablesTable *variablesTable, diff --git a/DeviceDataNonVolatile_AddToVarTab.c b/DeviceDataNonVolatile_AddToVarTab.c index b1d41c4..dcbd0db 100644 --- a/DeviceDataNonVolatile_AddToVarTab.c +++ b/DeviceDataNonVolatile_AddToVarTab.c @@ -57,6 +57,38 @@ void DeviceDataNonVolatile_AddToVarTab( VariablesTable_GetLast(variablesTable)->writeAttempts = &env->device.disallowWrite; ADD_VAR_STR_OBJ(STRING, CODEC_CONF, env->device.codecConf); + + //Telematic + + // Адрес:порт сервера №1 + ADD_VAR_STR_OBJ(STRING, EGTS_SERVER_ADDRESS, env->deviceTeledataStorageData.telematica.EGTS_SERVER_ADDRESS); + ADD_VAR_STR_OBJ(STRING, EGTS_GPRS_APN, env->deviceTeledataStorageData.telematica.EGTS_GPRS_APN); + + // идентификационный номер терминала + ADD_VAR(UINT32, EGTS_UNIT_ID, &env->deviceTeledataStorageData.telematica.EGTS_UNIT_ID); + + // Время между попытками установить соединение с сервером (сек) + ADD_VAR(UINT32, EGTS_SERVER_CHECK_IN_PERIOD, &env->deviceTeledataStorageData.telematica.EGTS_SERVER_CHECK_IN_PERIOD); + // Количество попыток соединения с сервером + ADD_VAR(UINT32, EGTS_SERVER_CHECK_IN_ATTEMPTS, &env->deviceTeledataStorageData.telematica.EGTS_SERVER_CHECK_IN_ATTEMPTS); + // Время ожидания ответа от сервера (сек) + ADD_VAR(UINT32, EGTS_SERVER_PACKET_TOUT, &env->deviceTeledataStorageData.telematica.EGTS_SERVER_PACKET_TOUT); + // Количество попыток отправки неподтвержденного пакета на сервер + ADD_VAR(UINT32, EGTS_SERVER_PACKET_RETRANSMIT_ATTEMPTS, + &env->deviceTeledataStorageData.telematica.EGTS_SERVER_PACKET_RETRANSMIT_ATTEMPTS); + + // Таймер передачи данных при включенном зажигании (сек) + ADD_VAR(UINT32, EGTS_FLEET_IGN_ON_PERIOD, &env->deviceTeledataStorageData.telematica.EGTS_FLEET_IGN_ON_PERIOD); + // Таймер передачи данных при выключенном зажигании (сек) + ADD_VAR(UINT32, EGTS_FLEET_IGN_OFF_PERIOD, &env->deviceTeledataStorageData.telematica.EGTS_FLEET_IGN_OFF_PERIOD); + // Таймер передачи данных при экстренном слежении (сек) + ADD_VAR(UINT32, EGTS_FLEET_EM_MON_PERIOD, &env->deviceTeledataStorageData.telematica.EGTS_FLEET_EM_MON_PERIOD); + + // Изменение курсового угла после которого нужно послать данные (градусы) + ADD_VAR(UINT32, EGTS_FLEET_COURSE_THRESHOLD, &env->deviceTeledataStorageData.telematica.EGTS_FLEET_COURSE_THRESHOLD); + + + } #undef ADD_VAR_SIZE diff --git a/DeviceData_InitTelematicSettings.c b/DeviceData_InitTelematicSettings.c new file mode 100644 index 0000000..d0a9709 --- /dev/null +++ b/DeviceData_InitTelematicSettings.c @@ -0,0 +1,26 @@ +// +// Created by cfif on 04.12.2024. +// +#include "DeviceDataNonVolatilePrivate.h" + +void DeviceStorageInitTelematicSettings(tDeviceSettingsTelematica *env) { + + String32CopyStatic(&env->EGTS_SERVER_ADDRESS, "uaz.shatl-t.ru:1111"); // Адрес:порт сервера №1 + String64CopyStatic(&env->EGTS_GPRS_APN, "internet.beeline.ru"); // APN + + env->EGTS_UNIT_ID = 0; // идентификационный номер терминала + + env->EGTS_SERVER_CHECK_IN_PERIOD = 30; // Время между попытками установить соединение с сервером (сек) + env->EGTS_SERVER_CHECK_IN_ATTEMPTS = 5; // Количество попыток соединения с сервером + env->EGTS_SERVER_PACKET_TOUT = 5; // Время ожидания ответа от сервера (сек) + env->EGTS_SERVER_PACKET_RETRANSMIT_ATTEMPTS = 3; // Количество попыток отправки неподтвержденного пакета на сервер + + env->EGTS_FLEET_IGN_ON_PERIOD = 100; // Таймер передачи данных при включенном зажигании (сек) + env->EGTS_FLEET_IGN_OFF_PERIOD = 100; // Таймер передачи данных при выключенном зажигании (сек) + env->EGTS_FLEET_EM_MON_PERIOD = 1; // Таймер передачи данных при экстренном слежении (сек) + + env->EGTS_FLEET_COURSE_THRESHOLD = 7; // Изменение курсового угла после которого нужно послать данные (градусы) + env->EGTS_GNSS_COURSE_SPEED = 5; // Скорость ниже которой не учитывается изменение курсового угла (км/ч) + env->EGTS_FLEET_DIST_THRESHOLD = 10; // Изменение дистанции после которого нужно послать данные (100 метров) + +}