HVAC_M7_DataNonVolatile/DataNonVolatile.h

70 lines
1.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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