// // 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); #ifdef UVEOS_ADD_TELEMATICA //Telematic ADD_VAR_STR_OBJ(STRING, EGTS_PROFILE_SIM_ERA, env->deviceTeledataStorageData.telematica.EGTS_PROFILE_SIM_ERA); ADD_VAR_STR_OBJ(STRING, EGTS_PROFILE_SIM_INTERNET, env->deviceTeledataStorageData.telematica.EGTS_PROFILE_SIM_INTERNET); // Адрес:порт сервера №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(BOOL, TELEMATICA_IS_ACTIVE, &env->deviceTeledataStorageData.telematica.telematicaIsActive); // идентификационный номер терминала 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); #endif } #undef ADD_VAR_SIZE #undef ADD_VAR #undef ADD_VAR_STR_OBJ