70 lines
1.8 KiB
C
70 lines
1.8 KiB
C
//
|
||
// Created by CFIF on 20.10.25.
|
||
//
|
||
|
||
#ifndef HVAC_DEVICEDATANONVOLATILE_H
|
||
#define HVAC_DEVICEDATANONVOLATILE_H
|
||
|
||
#include "DataRuntime.h"
|
||
#include "HVAC_preDefine.h"
|
||
|
||
#define DEVICE_DATA_NO_VOLATILE_VERSION 0x01
|
||
|
||
// BCD в двоичное число
|
||
#define bcd_to_binary(bcd) (((bcd >> 4) * 10) + (bcd & 0x0F))
|
||
|
||
// Двоичное число в BCD
|
||
#define binary_to_bcd(binary) (((binary / 10) << 4) | (binary % 10))
|
||
|
||
typedef struct __attribute__ ((packed)) {
|
||
uint8_t year; // BCD: 0x18 = 2018 год
|
||
uint8_t month; // BCD: 0x10 = октябрь
|
||
uint8_t day; // BCD: 0x16 = 16 число
|
||
char tester_serial[9]; // ASCII: "123456789"
|
||
} tFingerprint;
|
||
|
||
// Packet [4] Byte
|
||
//Data Objects:
|
||
//[0:0] Date year (yy), Unsigned (1Byte)
|
||
// - 02 – 99
|
||
//[1:0] Date month (mm), Unsigned (1Byte)
|
||
// - 01 – 12
|
||
//[2:0] Date day (dd), Unsigned (1Byte)
|
||
// - 01-31
|
||
//[3:0] Revision, Unsigned (1Byte)
|
||
typedef struct {
|
||
uint8_t SW[4];
|
||
uint8_t MBD[4];
|
||
} tInternal_SW_Version;
|
||
|
||
typedef struct {
|
||
tInternal_SW_Version Internal_SW_Version;
|
||
char Software_classification_identification[15];
|
||
tFingerprint Tester_Fingerprint;
|
||
tFingerprint Boot_SW_Fingerprint;
|
||
tFingerprint Application_SW_Fingerprint;
|
||
char Spare_Part_Number[27];
|
||
char Serial_Number[26];
|
||
char Vehicle_Identification[17];
|
||
char ECU_hardware_number_NAMI[13];
|
||
char ECU_hardware_number_ECU_supplier[2];
|
||
char ECU_software_number_ECU_supplier[2];
|
||
char ECU_boot_software_identification_ECU_supplier[2];
|
||
} ecu_identification_t;
|
||
|
||
typedef struct {
|
||
ecu_identification_t identification;
|
||
} tDeviceSettings;
|
||
|
||
|
||
typedef struct {
|
||
uint32_t version;
|
||
tDeviceSettings device;
|
||
} tDeviceDataNonVolatile;
|
||
|
||
void DeviceDataParam_InitDefaults(tDeviceDataNonVolatile *env);
|
||
|
||
void DeviceDataCalib_InitDefaults(uint8_t *env);
|
||
|
||
#endif //HVAC_DEVICEDATANONVOLATILE_H
|