315 lines
27 KiB
C
315 lines
27 KiB
C
//
|
||
// Created by cfif on 20.06.2024.
|
||
//
|
||
#include "DataStorage.h"
|
||
#include "Certs.h"
|
||
#include "EgtsProcessing.h"
|
||
#include "Certs.h"
|
||
#include "ComIntCmd/XFCPROT_FILE.h"
|
||
#include "ld_adr.h"
|
||
|
||
extern tFirmwareLoader FIRMWARE_TELE_LOADER;
|
||
|
||
|
||
#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)
|
||
|
||
#define ADD_VAR_WITH_ID_SIZE(TYPE, NAME, VALUE, LEN, ID, LIMIT, GROUP) \
|
||
VariablesTableWithIdAdd( \
|
||
variablesTable, \
|
||
#NAME, \
|
||
sizeof (#NAME)-1, \
|
||
VARIABLE_TYPE_##TYPE, \
|
||
(VALUE), \
|
||
(LEN), \
|
||
(ID), \
|
||
(LIMIT), \
|
||
0, \
|
||
GROUP \
|
||
)
|
||
|
||
#define ADD_WITH_ID_VAR(TYPE, NAME, VALUE, ID) ADD_VAR_WITH_ID_SIZE(TYPE, NAME, VALUE, 0, ID, 0, group)
|
||
#define ADD_WITH_ID_VAR_STR_OBJ(TYPE, NAME, VALUE, ID, LIMIT) ADD_VAR_WITH_ID_SIZE(TYPE, NAME, &(VALUE).data, &(VALUE).length, ID, LIMIT, group)
|
||
|
||
void DataStorage_AddToVarTab(
|
||
tDeviceTeledataStorageData *env,
|
||
tVariablesTable *variablesTable,
|
||
uint32_t group
|
||
) {
|
||
// Сервер обновления УВЭОС
|
||
ADD_VAR_STR_OBJ(STRING, UPDATE_SERVER_ADDRESS, env->telematica.UPDATE_SERVER_ADDRESS);
|
||
// Количество попыток соединения с сервером обновления УВЭОС
|
||
ADD_VAR(UINT32, UPDATE_SERVER_CHECK_IN_PERIOD, &env->telematica.UPDATE_SERVER_CHECK_IN_PERIOD);
|
||
// Время между попытками установить соединение с сервером обновления УВЭОС (сек)
|
||
ADD_VAR(UINT32, UPDATE_SERVER_CHECK_IN_ATTEMPTS, &env->telematica.UPDATE_SERVER_CHECK_IN_ATTEMPTS);
|
||
|
||
ADD_VAR(BOOL, UPDATE_UVEOS_UPDATE, &env->telematica.UPDATE_UVEOS_UPDATE);
|
||
|
||
|
||
memcpy(env->telematica.EGTS_TELE_VERS.data, (void *) FIRMWARE_TELE_LOADER.main.metadata.name, *FIRMWARE_TELE_LOADER.main.metadata.nameLength);
|
||
env->telematica.EGTS_TELE_VERS.length = *FIRMWARE_TELE_LOADER.main.metadata.nameLength;
|
||
|
||
ADD_VAR_STR_OBJ(STRING, EGTS_SOFTWARE_TELE_VERS, env->telematica.EGTS_TELE_VERS);
|
||
VariablesTable_GetLast(variablesTable)->writeAttempts = &env->disallowWrite;
|
||
|
||
// Скорость CAN1 (бит/сек)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_UNIT_CAN1_BAUD_RATE, &env->telematica.EGTS_UNIT_CAN1_BAUD_RATE, 0x050E);
|
||
|
||
// Скорость CAN2 (бит/сек)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_UNIT_CAN2_BAUD_RATE, &env->telematica.EGTS_UNIT_CAN2_BAUD_RATE, 0x0510);
|
||
|
||
// Адрес:порт сервера №1
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_SERVER_ADDRESS, env->telematica.EGTS_SERVER_ADDRESS, 0x0204, 32);
|
||
|
||
// Включение поддержки SSL
|
||
ADD_WITH_ID_VAR(BOOL, EGTS_SERVER_SSL_ENABLE, &env->telematica.EGTS_SERVER_SSL_ENABLE, 0xFAD0);
|
||
|
||
// Адрес:порт сервера №2
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_ALT_SERVER_ADDRESS, env->telematica.EGTS_ALT_SERVER_ADDRESS,
|
||
0x0501, 32);
|
||
// APN
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_GPRS_APN, env->telematica.EGTS_GPRS_APN, 0x0203, 32);
|
||
|
||
// APN USER
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_GPRS_USER, env->telematica.EGTS_GPRS_USER, 0x051A, 32);
|
||
|
||
// APN PASS
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_GPRS_PASS, env->telematica.EGTS_GPRS_PASS, 0x051B, 32);
|
||
|
||
// идентификационный номер терминала
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_UNIT_ID, &env->telematica.EGTS_UNIT_ID, 0x0404);
|
||
|
||
// Время ожидания загрузки обновления
|
||
// ADD_WITH_ID_VAR(UINT32, EGTS_TIME_WAIT_FIRMWARE, &env->telematica.EGTS_TIME_WAIT_FIRMWARE, 0xFAD1);
|
||
|
||
// Состояние последнего удаленного включения телематики
|
||
ADD_VAR(BOOL, EGTS_SERVER_ENABLE_TELEMATICA, &env->telematica.EGTS_SERVER_ENABLE_TELEMATICA);
|
||
|
||
|
||
// Время между попытками установить соединение с сервером (сек)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_SERVER_CHECK_IN_PERIOD, &env->telematica.EGTS_SERVER_CHECK_IN_PERIOD, 0x0413);
|
||
// Количество попыток соединения с сервером
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_SERVER_CHECK_IN_ATTEMPTS, &env->telematica.EGTS_SERVER_CHECK_IN_ATTEMPTS, 0x0414);
|
||
// Время ожидания ответа от сервера (сек)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_SERVER_PACKET_TOUT, &env->telematica.EGTS_SERVER_PACKET_TOUT, 0x0415);
|
||
// Количество попыток отправки неподтвержденного пакета на сервер
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_SERVER_PACKET_RETRANSMIT_ATTEMPTS,
|
||
&env->telematica.EGTS_SERVER_PACKET_RETRANSMIT_ATTEMPTS, 0x0416);
|
||
|
||
// Таймер передачи данных при включенном зажигании (сек)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_IGN_ON_PERIOD, &env->telematica.EGTS_FLEET_IGN_ON_PERIOD, 0x0262);
|
||
// Таймер передачи данных при выключенном зажигании (сек)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_IGN_OFF_PERIOD, &env->telematica.EGTS_FLEET_IGN_OFF_PERIOD, 0x0263);
|
||
// Таймер передачи данных при экстренном слежении (сек)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_EM_MON_PERIOD, &env->telematica.EGTS_FLEET_EM_MON_PERIOD, 0x026B);
|
||
|
||
// Изменение курсового угла после которого нужно послать данные (градусы)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_COURSE_THRESHOLD, &env->telematica.EGTS_FLEET_COURSE_THRESHOLD, 0x0265);
|
||
// Скорость ниже которой не учитывается изменение курсового угла (км/ч)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_GNSS_COURSE_SPEED, &env->telematica.EGTS_GNSS_COURSE_SPEED, 0x0517);
|
||
// Изменение дистанции после которого нужно послать данные (100 метров)
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_DIST_THRESHOLD, &env->telematica.EGTS_FLEET_DIST_THRESHOLD, 0x0264);
|
||
|
||
// Вкл/Выкл функции диагностики ЭБУ автомобиля
|
||
ADD_WITH_ID_VAR(BOOL, EGTS_DIAG_UDS_ON, &env->telematica.EGTS_DIAG_UDS_ON, 0x0551);
|
||
|
||
//начало----НЕ РЕАЛИЗОВАНЫ------------------------------------------------------------------------------------------
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_SIM_PIN, &env->telematica.EGTS_SIM_PIN, 0x0205); // 0x0205 Pin-код (SIM1) int32 0
|
||
|
||
ADD_WITH_ID_VAR(BOOL, EGTS_AUTOMATIC_REGISTRATION, &env->telematica.EGTS_AUTOMATIC_REGISTRATION, 0x0207); // 0x0207 Автоматическая регистрация в сети сотовой связи bool true
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_MIN_BATTERY_VOLTAGE, &env->telematica.EGTS_FLEET_MIN_BATTERY_VOLTAGE, 0x0268); // 0x0268 Напряжение внешней АКБ ниже которого прибор должен уходить в глубокий сон (0.1В) int32 123
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_POS_ACCEL_THRESHOLD, &env->telematica.EGTS_FLEET_POS_ACCEL_THRESHOLD, 0x0269); // 0x0269 Порог после которого ускорение считается резким (0.001g) int32 300
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_NEG_ACCEL_THRESHOLD, &env->telematica.EGTS_FLEET_NEG_ACCEL_THRESHOLD, 0x026A); // 0x026A Порог после которого торможение считается резким (0.001g) int32 300
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_NAVI_TRB_THRESHOLD, &env->telematica.EGTS_FLEET_NAVI_TRB_THRESHOLD, 0x026C); // 0x026C Порог частоты прерывания навигационного решения (1/час) int32 6
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_CONN_TRB_THRESHOLD, &env->telematica.EGTS_FLEET_CONN_TRB_THRESHOLD, 0x026D); // 0x026D Порог частоты прерывания соединения с сервером (1/час) int32 20
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_FLEET_GSM_REG_TRB_THRESHOLD, &env->telematica.EGTS_FLEET_GSM_REG_TRB_THRESHOLD, 0x026E); // 0x026E Порог частоты прерывания наличия сотовой связи (1/час) int32 5
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_GNSS_POWER_OFF_TIME, &env->telematica.EGTS_GNSS_POWER_OFF_TIME, 0x0301); // 0x0301 время после выключения зажигания через которое выключается ГНСС (миллисекунды) int32 5000
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_GNSS_DATA_RATE, &env->telematica.EGTS_GNSS_DATA_RATE, 0x0302);; // 0x0302 Темп выдачи навигационного решения приемником (герц) int32 1
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_GNSS_MIN_ELEVATION, &env->telematica.EGTS_GNSS_MIN_ELEVATION, 0x0303); // 0x0303 Минимальная высота возвышения используемых НКА (градусы) int32 5
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_GNSS_MAX_ALTITUDE, &env->telematica.EGTS_GNSS_MAX_ALTITUDE, 0x0304); // 0x0304 Максимальная высота после которой навигационное решение является невалидным (метр) int32 1000
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_UNIT_VENDOR_ID, &env->telematica.EGTS_UNIT_VENDOR_ID, 0x0403); // 0x0403 Идентификатор поставщика устройства int32 0
|
||
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_ALT_GPRS_APN, env->telematica.EGTS_ALT_GPRS_APN, 0x0500, 32); // 0x0500 APN (SIM2) String (32) internet
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_ALT_SIM_PIN, &env->telematica.EGTS_ALT_SIM_PIN, 0x0502); // 0x0502 Pin-код (SIM2) int32 0
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_GPRS_USER, env->telematica.EGTS_GPRS_USER, 0x051A, 32); // 0x051A APN пользователь SIM1 String (16) gdata
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_GPRS_PASS, env->telematica.EGTS_GPRS_PASS, 0x051B, 32); // 0x051B APN пароль SIM1 String (16) gdata
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_ALT_GPRS_USER, env->telematica.EGTS_ALT_GPRS_USER, 0x051C, 32); // 0x051C APN пользователь SIM2 String (16) gdata
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_ALT_GPRS_PASS, env->telematica.EGTS_ALT_GPRS_PASS, 0x051D, 32); // 0x051D APN пароль SIM2 String (16) gdata
|
||
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_SLEEP_TIME, &env->telematica.EGTS_SLEEP_TIME, 0x051E); // 0x051E время после снижения напряжения АКБ до заданного значения после которого устройство уходит в глубокий сон (миллисекунды) int32 60000
|
||
ADD_WITH_ID_VAR(BOOL, EGTS_GNSS_ERAG_ASSIST, &env->telematica.EGTS_GNSS_ERAG_ASSIST, 0x0559); // 0x0559 Вкл/вВыкл использования навигации от ЭРА-ГЛОНАСС bool true
|
||
|
||
ADD_WITH_ID_VAR_STR_OBJ(STRING, EGTS_MSISDN, env->telematica.EGTS_MSISDN, 0x0560, 32); // 0x0560 Номер телефона сим-карты String (15) 7999
|
||
|
||
ADD_WITH_ID_VAR(BOOL, EGTS_GPS_ON, &env->telematica.EGTS_GPS_ON, 0x0561); // 0x0561 Вкл/Выкл ГНСС-приемник bool true
|
||
ADD_WITH_ID_VAR(BOOL, EGTS_LOCATION_SHARE, &env->telematica.EGTS_LOCATION_SHARE, 0x0562); // 0x0562 Вкл/Выкл передачу координат на сервер bool true
|
||
ADD_WITH_ID_VAR(BOOL, EGTS_USB_ON, &env->telematica.EGTS_USB_ON, 0x0563); // 0x0563 Вкл/Выкл порт USB bool true
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_DS_WAIT_AFTER_ENG_STOP, &env->telematica.EGTS_DS_WAIT_AFTER_ENG_STOP, 0x0564); // 0x0564 время после выключения зажигания после которого устройство уходит в глубокий сон (минуты) int32 2880
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_DS_WAKE_UP_PERIOD, &env->telematica.EGTS_DS_WAKE_UP_PERIOD, 0x0565); // 0x0565 таймер просыпания в режиме глубокого сна (минуты) int32 1440
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_DS_WAKE_UP_DURATION, &env->telematica.EGTS_DS_WAKE_UP_DURATION, 0x0566); // 0x0566 длительность просыпания в режиме глубокого сна (минуты) int32 5
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_TIME_WAIT_LTE_CONNECT, &env->telematica.EGTS_TIME_WAIT_LTE_CONNECT, 0x0568); // 0x0568 длительность отсутствия связи для перехода в режим глубокого сна (минуты) int32 10
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_TIME_SLEEP_LTE_NO_CONNECT, &env->telematica.EGTS_TIME_SLEEP_LTE_NO_CONNECT, 0x0569); // 0x0569 периодичность просыпания при уходе в глубокий сон из-за отсутствия связи (минуты) int32 360
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_HIGH_BATTERY_VOLTAGE, &env->telematica.EGTS_HIGH_BATTERY_VOLTAGE, 0x0579); // 0x0579 Высокое напряжение при котором устройство выходит из глубокого сна (0.1В) int32 135
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_DRV_SCORE_DIFF_SPD_UP, &env->telematica.EGTS_DRV_SCORE_DIFF_SPD_UP, 0x0585); // 0x0585 Разница в скорости для фиксирования быстрого разгона (км/ч) int32 15
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_DRV_SCORE_DIFF_SPD_DOWN, &env->telematica.EGTS_DRV_SCORE_DIFF_SPD_DOWN, 0x0586); // 0x0586 Разница в скорости для фиксирования быстрого торможения (км/ч) int32 15
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_DRV_SCORE_LETERAL_ACC, &env->telematica.EGTS_DRV_SCORE_LETERAL_ACC, 0x058A); // 0x058A Боковое ускорение фиксируемое как резкое (0.001g) int32 300
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_DRV_SCORE_HIGH_SPEED, &env->telematica.EGTS_DRV_SCORE_HIGH_SPEED, 0x058B); // 0x058B Опасная скорость (км/ч) int32 130
|
||
ADD_WITH_ID_VAR(UINT32, EGTS_DRV_SCORE_ACC_CALC_TIME, &env->telematica.EGTS_DRV_SCORE_ACC_CALC_TIME, 0x0587); // 0x0587 Промежуток времени для подсчета продольных ускорений (секунды) int32 3
|
||
//конец-----НЕ РЕАЛИЗОВАНЫ------------------------------------------------------------------------------------------
|
||
|
||
}
|
||
|
||
void DeviceStorageInitTelematicaSettings(tDeviceSettingsTelematica *env) {
|
||
|
||
/*
|
||
String32CopyStatic(&env->EGTS_SERVER_ADDRESS, "shatl-t.ru:64329"); // Адрес:порт сервера №1
|
||
env->EGTS_SERVER_SSL_ENABLE = 1; // Включение поддержки SSL
|
||
String32CopyStatic(&env->EGTS_ALT_SERVER_ADDRESS, "sky.shatl-t.ru:33329"); // Адрес:порт сервера №2
|
||
String64CopyStatic(&env->EGTS_GPRS_APN, "internet.mts.ru"); // APN
|
||
env->EGTS_UNIT_ID = 3000; // идентификационный номер терминала
|
||
*/
|
||
String32CopyStatic(&env->EGTS_SERVER_ADDRESS, "uaz.shatl-t.ru:1112"); // Адрес:порт сервера №1
|
||
env->EGTS_SERVER_SSL_ENABLE = 1; // Включение поддержки SSL
|
||
String32CopyStatic(&env->EGTS_ALT_SERVER_ADDRESS, "uaz.shatl-t.ru:1111"); // Адрес:порт сервера №2
|
||
|
||
// String64CopyStatic(&env->EGTS_GPRS_APN, "internet.mts.ru"); // APN
|
||
String64CopyStatic(&env->EGTS_GPRS_APN, "m2m.mts.ru"); // APN
|
||
|
||
String32CopyStatic(&env->EGTS_GPRS_USER, "mts"); // 0x051A APN пользователь SIM1 String (16) gdata
|
||
String32CopyStatic(&env->EGTS_GPRS_PASS, "mts"); // 0x051B APN пароль SIM1 String (16) gdata
|
||
|
||
env->EGTS_UNIT_ID = 0; // идентификационный номер терминала
|
||
|
||
env->EGTS_UNIT_CAN1_BAUD_RATE = 500000; // Скорость CAN1 (бит/сек)
|
||
env->EGTS_UNIT_CAN2_BAUD_RATE = 500000; // Скорость CAN2 (бит/сек)
|
||
|
||
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 = 0; // Таймер передачи данных при экстренном слежении (сек)
|
||
|
||
env->EGTS_FLEET_COURSE_THRESHOLD = 7; // Изменение курсового угла после которого нужно послать данные (градусы)
|
||
env->EGTS_GNSS_COURSE_SPEED = 5; // Скорость ниже которой не учитывается изменение курсового угла (км/ч)
|
||
env->EGTS_FLEET_DIST_THRESHOLD = 10; // Изменение дистанции после которого нужно послать данные (100 метров)
|
||
|
||
env->EGTS_DIAG_UDS_ON = 1; // Вкл/Выкл функции диагностики ЭБУ автомобиля
|
||
|
||
//начало----НЕ РЕАЛИЗОВАНЫ------------------------------------------------------------------------------------------
|
||
env->EGTS_SIM_PIN = 0; // 0x0205 Pin-код (SIM1) int32 0
|
||
env->EGTS_AUTOMATIC_REGISTRATION = true; // 0x0207 Автоматическая регистрация в сети сотовой связи bool true
|
||
env->EGTS_FLEET_MIN_BATTERY_VOLTAGE = 123; // 0x0268 Напряжение внешней АКБ ниже которого прибор должен уходить в глубокий сон (0.1В) int32 123
|
||
env->EGTS_FLEET_POS_ACCEL_THRESHOLD = 300; // 0x0269 Порог после которого ускорение считается резким (0.001g) int32 300
|
||
env->EGTS_FLEET_NEG_ACCEL_THRESHOLD = 300; // 0x026A Порог после которого торможение считается резким (0.001g) int32 300
|
||
env->EGTS_FLEET_NAVI_TRB_THRESHOLD = 6; // 0x026C Порог частоты прерывания навигационного решения (1/час) int32 6
|
||
env->EGTS_FLEET_CONN_TRB_THRESHOLD = 20; // 0x026D Порог частоты прерывания соединения с сервером (1/час) int32 20
|
||
env->EGTS_FLEET_GSM_REG_TRB_THRESHOLD = 5; // 0x026E Порог частоты прерывания наличия сотовой связи (1/час) int32 5
|
||
env->EGTS_GNSS_POWER_OFF_TIME = 5000; // 0x0301 время после выключения зажигания через которое выключается ГНСС (миллисекунды) int32 5000
|
||
env->EGTS_GNSS_DATA_RATE = 1; // 0x0302 Темп выдачи навигационного решения приемником (герц) int32 1
|
||
env->EGTS_GNSS_MIN_ELEVATION = 5; // 0x0303 Минимальная высота возвышения используемых НКА (градусы) int32 5
|
||
env->EGTS_GNSS_MAX_ALTITUDE = 1000; // 0x0304 Максимальная высота после которой навигационное решение является невалидным (метр) int32 1000
|
||
env->EGTS_UNIT_VENDOR_ID = 0; // 0x0403 Идентификатор поставщика устройства int32 0
|
||
String32CopyStatic(&env->EGTS_ALT_GPRS_APN, ""); // 0x0500 APN (SIM2) String (32) internet
|
||
env->EGTS_ALT_SIM_PIN = 0; // 0x0502 Pin-код (SIM2) int32 0
|
||
String32CopyStatic(&env->EGTS_ALT_GPRS_USER, ""); // 0x051C APN пользователь SIM2 String (16) gdata
|
||
String32CopyStatic(&env->EGTS_ALT_GPRS_PASS, ""); // 0x051D APN пароль SIM2 String (16) gdata
|
||
env->EGTS_SLEEP_TIME = 60000; // 0x051E время после снижения напряжения АКБ до заданного значения после которого устройство уходит в глубокий сон (миллисекунды) int32 60000
|
||
env->EGTS_GNSS_ERAG_ASSIST = true; // 0x0559 Вкл/вВыкл использования навигации от ЭРА-ГЛОНАСС bool true
|
||
String32CopyStatic(&env->EGTS_MSISDN, "7999"); // 0x0560 Номер телефона сим-карты String (15) 7999
|
||
env->EGTS_GPS_ON = true; // 0x0561 Вкл/Выкл ГНСС-приемник bool true
|
||
env->EGTS_LOCATION_SHARE = true; // 0x0562 Вкл/Выкл передачу координат на сервер bool true
|
||
env->EGTS_USB_ON = true; // 0x0563 Вкл/Выкл порт USB bool true
|
||
env->EGTS_DS_WAIT_AFTER_ENG_STOP = 2880; // 0x0564 время после выключения зажигания после которого устройство уходит в глубокий сон (минуты) int32 2880
|
||
env-> EGTS_DS_WAKE_UP_PERIOD = 1440; // 0x0565 таймер просыпания в режиме глубокого сна (минуты) int32 1440
|
||
env->EGTS_DS_WAKE_UP_DURATION = 5; // 0x0566 длительность просыпания в режиме глубокого сна (минуты) int32 5
|
||
env->EGTS_TIME_WAIT_LTE_CONNECT = 10; // 0x0568 длительность отсутствия связи для перехода в режим глубокого сна (минуты) int32 10
|
||
env->EGTS_TIME_SLEEP_LTE_NO_CONNECT = 360; // 0x0569 периодичность просыпания при уходе в глубокий сон из-за отсутствия связи (минуты) int32 360
|
||
env->EGTS_HIGH_BATTERY_VOLTAGE = 135; // 0x0579 Высокое напряжение при котором устройство выходит из глубокого сна (0.1В) int32 135
|
||
env->EGTS_DRV_SCORE_DIFF_SPD_UP = 15; // 0x0585 Разница в скорости для фиксирования быстрого разгона (км/ч) int32 15
|
||
env->EGTS_DRV_SCORE_DIFF_SPD_DOWN = 15; // 0x0586 Разница в скорости для фиксирования быстрого торможения (км/ч) int32 15
|
||
env->EGTS_DRV_SCORE_LETERAL_ACC = 300; // 0x058A Боковое ускорение фиксируемое как резкое (0.001g) int32 300
|
||
env->EGTS_DRV_SCORE_HIGH_SPEED = 130; // 0x058B Опасная скорость (км/ч) int32 130
|
||
env->EGTS_DRV_SCORE_ACC_CALC_TIME = 3; // 0x0587 Промежуток времени для подсчета продольных ускорений (секунды) int32 3
|
||
//конец-----НЕ РЕАЛИЗОВАНЫ------------------------------------------------------------------------------------------
|
||
|
||
String64CopyStatic(&env->UPDATE_SERVER_ADDRESS, "http://firmware.ficom-it.info/intelcom/file.php"); // Сервер обновления УВЭОС
|
||
env->UPDATE_SERVER_CHECK_IN_PERIOD = 10; // Количество попыток соединения с сервером обновления УВЭОС
|
||
env->UPDATE_SERVER_CHECK_IN_ATTEMPTS = 30; // Время между попытками установить соединение с сервером обновления УВЭОС (сек)
|
||
env->UPDATE_UVEOS_UPDATE = 0; // Признак обновления УВЭОС
|
||
|
||
env->EGTS_SERVER_ENABLE_TELEMATICA = false;
|
||
|
||
env->EGTS_DRV_SCORE_RFR_SPEED = 50; // 0x0588 Эталонная скорость
|
||
|
||
}
|
||
|
||
#define FIRMWARE_MAIN_ADDR (0x08000000 + BOOT_AREA_LENGTH)
|
||
#define FIRMWARE_MAIN_RECOVERY_ADDR (FIRMWARE_MAIN_ADDR + FIRMWARE_MAIN_AREA_LENGTH)
|
||
|
||
extern tFirmwareLoader FIRMWARE_LOADER;
|
||
|
||
void ComIntTelematica(tXfcProtTable *protTab) {
|
||
|
||
XfcProtTable_AddStatic(protTab, "FILE_TABLE", XfcProtMethod_FileTable, NULL);
|
||
XfcProtTable_AddStatic(protTab, "FILE_INIT", XfcProtMethod_FileInit, &FIRMWARE_LOADER);
|
||
XfcProtTable_AddStatic(protTab, "FILE_WRITE_BLOCK", XfcProtMethod_FileWriteBlock, &FIRMWARE_LOADER);
|
||
XfcProtTable_AddStatic(protTab, "FILE_DONE", XfcProtMethod_FileDone, &FIRMWARE_LOADER);
|
||
|
||
XfcProtMethodsAdd_Certs(protTab, &egtsProcessing.certs, EXT_ENV_TELE.gsmAt);
|
||
|
||
tDeviceTeledataStorageData *deviceTeledataStorageData = (tDeviceTeledataStorageData *) EXT_ENV_TELE.store.dataTeledata;
|
||
|
||
if (deviceTeledataStorageData->telematica.version != DEVICE_DATA_NO_VOLATILE_TELE_VERSION) {
|
||
deviceTeledataStorageData->telematica.version = DEVICE_DATA_NO_VOLATILE_TELE_VERSION;
|
||
DeviceStorageInitTelematicaSettings(&deviceTeledataStorageData->telematica);
|
||
EraGlonassUveosDumper_ForceDump(EXT_ENV_TELE.store.uveosDumper);
|
||
}
|
||
|
||
// Количество попыток соединения с сервером
|
||
if (deviceTeledataStorageData->telematica.EGTS_SERVER_CHECK_IN_ATTEMPTS < 1)
|
||
deviceTeledataStorageData->telematica.EGTS_SERVER_CHECK_IN_ATTEMPTS = 1;
|
||
|
||
// Количество попыток отправки неподтвержденного пакета на сервер
|
||
if (deviceTeledataStorageData->telematica.EGTS_SERVER_PACKET_RETRANSMIT_ATTEMPTS < 1)
|
||
deviceTeledataStorageData->telematica.EGTS_SERVER_PACKET_RETRANSMIT_ATTEMPTS = 1;
|
||
|
||
// Время ожидания ответа от сервера (сек)
|
||
if (deviceTeledataStorageData->telematica.EGTS_SERVER_PACKET_TOUT < 5)
|
||
deviceTeledataStorageData->telematica.EGTS_SERVER_PACKET_TOUT = 5;
|
||
|
||
// Таймер передачи данных при включенном зажигании (сек)
|
||
// if (deviceTeledataStorageData->telematica.EGTS_FLEET_IGN_ON_PERIOD < 1)
|
||
// deviceTeledataStorageData->telematica.EGTS_FLEET_IGN_ON_PERIOD = 1;
|
||
|
||
// Таймер передачи данных при выключенном зажигании (сек)
|
||
// if (deviceTeledataStorageData->telematica.EGTS_FLEET_IGN_OFF_PERIOD < 1)
|
||
// deviceTeledataStorageData->telematica.EGTS_FLEET_IGN_OFF_PERIOD = 1;
|
||
|
||
DataStorage_AddToVarTab(
|
||
deviceTeledataStorageData,
|
||
EXT_ENV_TELE.store.publicVariablesTable,
|
||
1
|
||
);
|
||
}
|
||
|
||
void ComIntTelematicaDefault() {
|
||
tDeviceTeledataStorageData *deviceStorageData = (tDeviceTeledataStorageData *) EXT_ENV_TELE.store.dataTeledata;
|
||
|
||
DeviceStorageInitTelematicaSettings(&deviceStorageData->telematica);
|
||
}
|