HVAC_M7_DataNonVolatile/DataNonVolatile_AddToVarTab.c

84 lines
5.4 KiB
C

//
// Created by CFIF on 20.10.25.
//
#include "DataNonVolatatile_Private.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)
#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)
#define ADD_WITH_ID_LEN_VAR_STR_OBJ(TYPE, NAME, VALUE, LEN, ID, LIMIT) ADD_VAR_WITH_ID_SIZE(TYPE, NAME, VALUE, LEN, ID, LIMIT, group)
// Добавление переменных в таблицу
void DeviceDataNonVolatile_AddToVarTab(
tDeviceDataNonVolatile *env,
tVariablesTable *variablesTable,
uint32_t group
) {
//Devices
ADD_WITH_ID_VAR_STR_OBJ(STRING, SOFTWARE_CLASS_ID, env->device.identification.software_classification, 0xF151, 15);
ADD_WITH_ID_VAR(UINT32, APP_FINGERPRINT_SOTWARE_CRC, &env->device.identification.application_info.software_crc, 0xF184);
ADD_WITH_ID_VAR(UINT16, APP_FINGERPRINT_MAJOR_VER, &env->device.identification.application_info.major_version, 0xF184);
ADD_WITH_ID_VAR(UINT16, APP_FINGERPRINT_MINOR_VER, &env->device.identification.application_info.minor_version, 0xF184);
ADD_WITH_ID_VAR(UINT16, APP_FINGERPRINT_PATH_VER, &env->device.identification.application_info.patch_version, 0xF184);
ADD_WITH_ID_VAR(UINT8, APP_FINGERPRINT_BUILD_NUM, &env->device.identification.application_info.build_number, 0xF184);
ADD_WITH_ID_VAR(UINT8, APP_FINGERPRINT_STRUCT_CRC, &env->device.identification.application_info.checksum, 0xF184);
ADD_WITH_ID_VAR(UINT32, BOOT_FINGERPRINT_SOTWARE_CRC, &env->device.identification.bootloader_info.software_crc, 0xF1F4);
ADD_WITH_ID_VAR(UINT16, BOOT_FINGERPRINT_MAJOR_VER, &env->device.identification.bootloader_info.major_version, 0xF1F4);
ADD_WITH_ID_VAR(UINT16, BOOT_FINGERPRINT_MINOR_VER, &env->device.identification.bootloader_info.minor_version, 0xF1F4);
ADD_WITH_ID_VAR(UINT16, BOOT_FINGERPRINT_PATH_VER, &env->device.identification.bootloader_info.patch_version, 0xF1F4);
ADD_WITH_ID_VAR(UINT8, BOOT_FINGERPRINT_BUILD_NUM, &env->device.identification.bootloader_info.build_number, 0xF1F4);
ADD_WITH_ID_VAR(UINT8, BOOT_FINGERPRINT_STRUCT_CRC, &env->device.identification.bootloader_info.checksum, 0xF1F4);
ADD_WITH_ID_VAR(UINT8, TESTER_FINGERPRINT_YEAR, &env->device.identification.tester_fingerprint.year, 0xF15A);
ADD_WITH_ID_VAR(UINT8, TESTER_FINGERPRINT_MONTH, &env->device.identification.tester_fingerprint.month, 0xF15A);
ADD_WITH_ID_VAR(UINT8, TESTER_FINGERPRINT_DAY, &env->device.identification.tester_fingerprint.day, 0xF15A);
ADD_WITH_ID_VAR_STR_OBJ(STRING, TESTER_FINGERPRINT_SERIAL, env->device.identification.tester_fingerprint.tester_serial, 0xF15A, 9);
ADD_WITH_ID_VAR_STR_OBJ(STRING, SPARE_PART_NUMBER, env->device.identification.spare_part_number, 0xF187, 27);
ADD_WITH_ID_VAR_STR_OBJ(STRING, SERIAL_NUMBER, env->device.identification.serial_number, 0xF18C, 26);
ADD_WITH_ID_VAR_STR_OBJ(STRING, VIN, env->device.identification.vin, 0xF190, 17);
ADD_WITH_ID_VAR_STR_OBJ(STRING, HARDWARE_NAMI, env->device.identification.hardware_nami, 0xF191, 27);
ADD_WITH_ID_VAR_STR_OBJ(STRING, HARDWARE_ESTRA, env->device.identification.hardware_estra, 0xF192, 13);
ADD_WITH_ID_VAR_STR_OBJ(STRING, SOFTWARE_ESTRA, env->device.identification.software_estra, 0xF194, 2);
ADD_WITH_ID_VAR_STR_OBJ(STRING, BOOT_SOFTWARE_ESTRA, env->device.identification.boot_version, 0xF1F4, 2);
}
#undef ADD_VAR_SIZE
#undef ADD_VAR
#undef ADD_VAR_STR_OBJ