234 lines
6.3 KiB
C
234 lines
6.3 KiB
C
//
|
||
// 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
|