HVAC_M7_StatusData/StatusData.h

234 lines
6.3 KiB
C
Raw Permalink 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 03.12.2025.
//
#ifndef HVAC_M7_STATUSDATA_H
#define HVAC_M7_STATUSDATA_H
#include "stdint.h"
typedef enum {
AROMA_NOT_PRESENT = 0,
AROMA_PRESENT = 1,
AROMA_DEFAULT = 0xFF
} eAromaConfiguration;
typedef enum {
ALG_STANDART = 0,
ALG_LIMOUSINE = 1,
ALG_DEFAULT = 0xFF
} eAlgorithmConfiguration;
typedef enum {
AQS_CLEAR_AIR_LEVEL = 0,
AQS_LEVEL_1_LOW = 1,
AQS_LEVEL_2_MIDL = 2,
AQS_LEVEL_3_SIGNIFICANT = 3,
AQS_LEVEL_4_HIGH = 4,
AQS_LEVEL_5_VERY = 5,
AQS_ERROR = 0xFF
} eAQS;
typedef enum {
AROMA_OFF = 0,
AROMA_MODE1 = 1,
AROMA_MODE2 = 2,
AROMA_MODE3 = 3
} eAromatizationIntensivity;
typedef struct {
eAromaConfiguration AromaConfiguration;
eAlgorithmConfiguration AlgorithmConfiguration;
} tStatus_CCU_Configuration;
// 1 Byte; Float; 2 significant digits y = (1/10)x V; Lower limit (phys): 0 V; Upper limit (phys): 25.5 V;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) y = (1/10)x -40 °C; Lower limit (phys): -40 °C; Upper limit (phys): 6513.5 °C;
typedef struct {
uint8_t Ignition;
uint8_t Battery;
uint16_t AMB;
uint16_t Incar_FL;
uint16_t Incar_FR;
uint16_t Incar_RL;
uint16_t Incar_RR;
uint16_t Eva_F;
uint16_t Eva_R;
uint16_t Pressure;
uint16_t Duct_FL_Upper;
uint16_t Duct_FL_Lower;
uint16_t Duct_FR_Upper;
uint16_t Duct_FR_Lower;
uint16_t Duct_RL;
uint16_t Duct_RR;
uint16_t Duct_Side_FL;
uint16_t Duct_Side_FR;
uint16_t Duct_Side_RL;
uint16_t Duct_Side_RR;
eAQS AQS;
} tStatus_Sensor;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) [0x00..0x03E8] ; y = (1/10)x %;
// Lower limit (phys): 0 %; Upper limit (phys): 100 %; Invalid values: [0x03E9..0xFFFE] Invalid signal (Invalid) [0xFFFF] Not implemented (Not implemented)
typedef struct {
uint16_t Motor_Def;
uint16_t Motor_Vent_SFL;
uint16_t Motor_Vent_CFL;
uint16_t Motor_Foot_1FL;
uint16_t Motor_Foot_2FL;
uint16_t Motor_Vent_CFR;
uint16_t Motor_Vent_SFR;
uint16_t Motor_Foot_1FR;
uint16_t Motor_Foot_2FR;
uint16_t Motor_Vent_SRL;
uint16_t Motor_Vent_CRL;
uint16_t Motor_Foot_RL;
uint16_t Motor_Vent_CRR;
uint16_t Motor_Vent_SRR;
uint16_t Motor_Foot_RR;
uint16_t Motor_Temp1_FL;
uint16_t Motor_Temp2_FL;
uint16_t Motor_Temp1_FR;
uint16_t Motor_Temp2_FR;
uint16_t Motor_Temp_RL;
uint16_t Motor_Temp_RR;
uint16_t Motor_REC;
uint16_t Motor_OSA;
uint16_t Motor_SealingValve;
} tStatus_Actuator;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) y = (1/10)x -40 °C; Lower limit (phys): -40 °C; Upper limit (phys): 6513.5 °C;
typedef struct {
uint16_t DuctTgt_Vent_FL;
uint16_t DuctTgt_Foot_FL;
uint16_t DuctTgt_Vent_FR;
uint16_t DuctTgt_Foot_FR;
uint16_t DuctTgt_RL;
uint16_t DuctTgt_RR;
} tStatus_Duct_Tgt;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) y = (1/10)x -40 °C; Lower limit (phys): -40 °C; Upper limit (phys): 6513.5 °C;
typedef struct {
uint16_t EvaTgt_F;
uint16_t EvaTgt_R;
} tStatus_Eva_Tgt;
// 0 = Off!0 = On 1 Byte [0x00] Off [0x01..0xFF] On; Inverse value: 0x01
typedef struct {
uint8_t _2_Way_Valve;
uint8_t IncarMotor_Front;
uint8_t IncarMotor_Rear;
uint8_t ShutOff_Chiller;
uint8_t ShutOff_Front;
uint8_t ShutOff_Rear;
uint8_t PTC_1;
uint8_t PTC_2;
} tStatus_IO;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola) [0x00..0x03E8] ; y = (1/10)x %; Lower limit (phys): 0 %; Upper limit (phys): 100 %; Invalid values: [0x03E9..0xFFFE] Invalid signal (Invalid) [0xFFFF] Not implemented (Not implemented)
typedef struct {
uint16_t Pwm_Front;
uint16_t Pwm_Rear;
} tStatus_Pwm;
typedef struct {
// 0 = Off!0 = On
//1 Byte
//[0x00] Off
//[0x01..0xFF] On; Inverse value: 0x01
uint8_t eComp_Statue_Request;
//1 Byte
//y = 50x ; Lower limit (phys): 0; Upper limit (phys): 12750;
uint8_t Pwm_Front;
// 0 = Off!0 = On
//1 Byte
//[0x00] Off
//[0x01..0xFF] On; Inverse value: 0x01
uint8_t LowTempValve;
} tStatus_eComp;
// 2 Byte; Float; 1 significant digits; HighLow (Motorola)
//[0x00..0x03E8] ; y = (1/10)x %; Lower limit (phys): 0 %; Upper limit (phys): 100 %;
//Invalid values:
//[0x03E9..0xFFFE] Invalid signal (Invalid)
//[0xFFFF] Not implemented (Not implemented)
typedef struct {
uint16_t CoolingFan;
} tStatus_External;
// 0 = Off!0 = On
//1 Byte
//[0x00] Off
//[0x01..0xFF] On; Inverse value: 0x01
typedef struct {
uint16_t EMS_Chiller_Req;
} tStatus_EMS;
typedef struct {
// 0 = Off!0 = On
//1 Byte
//[0x00] Off
//[0x01..0xFF] On; Inverse value: 0x01
uint8_t Ionizer;
eAromatizationIntensivity AromatizationIntensivity;
} tStatus_Ionizer_Aroma;
// 1 Byte [0x00] Central [0x01..0xFF] Side; Inverse value: 0x01
typedef struct {
uint8_t Duct_FL;
uint8_t Duct_FR;
uint8_t Duct_RL;
uint8_t Duct_RR;
} tStatus_Duct_Select;
typedef struct {
// 2 Byte; HighLow (Motorola)
uint16_t Calibration_Num;
// 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)
uint8_t Internal_Cal_Ver[4];
} tStatus_Activated_Cal_Num;
// 1 Byte
//[0x01] defaultSession
//[0x02] programmingSession
//[0x03] extendedDiagnosticSession
//Invalid values:
//[0x00] No signal (Not supported)
//[0x04..0x80] No signal (Not supported)
//[0x81..0x83] Undefined
//[0x84..0xFF] No signal (Not supported)
typedef struct {
uint16_t Active_Diagnostic_Session;
} tStatus_Active_Diagnostic_Session;
typedef struct {
tStatus_CCU_Configuration Status_CCU_Configuration;
tStatus_Sensor Status_Sensor;
tStatus_Actuator Status_Actuator_FB;
tStatus_Duct_Tgt Status_Duct_Tgt;
tStatus_Eva_Tgt Status_Eva_Tgt;
tStatus_Activated_Cal_Num Status_Activated_Cal_Num;
tStatus_Active_Diagnostic_Session Status_Active_Diagnostic_Session;
tStatus_IO Status_IO;
tStatus_Pwm Status_Pwm;
tStatus_eComp Status_eComp;
tStatus_External Status_External;
tStatus_EMS Status_EMS;
tStatus_Ionizer_Aroma Status_Ionizer_Aroma;
tStatus_Duct_Select Status_Duct_Select;
} tStatusData;
#endif //HVAC_M7_STATUSDATA_H