#ifndef PMSYSVARIABLE_H #define PMSYSVARIABLE_H #pragma pack (1) typedef struct ccuState { unsigned char currentWorkCondition; unsigned char fcuState; unsigned char fcuFaultLeve; float powerLimit; float totalPowerGeneration; float ch4o; float o2; float fcuVoltage; float fcuCurrent; float o2Level; float placeholder1; float exchangerTemperature; float fcuOutPower; float fcuOutIns; float fcuVoltageIns; float fcuVoltagePower; float fcuCurrentIns; float fcuCurrentPower; float h2Concentration1; float h2Concentration2; float o2Concentration1; float o2Concentration2; float ch4oConcentration1; float ch4oConcentration2; float backpressure1; float backpressure2; unsigned char flameDetection; unsigned char fcuGZ_1L; unsigned char fcuGZ_1H; unsigned char fcuGZ_2L; unsigned char fcuGZ_2H; unsigned char fcuGZ_3L; unsigned char fcuGZ_3H; unsigned char insPosRelayState; unsigned char insNegRelayState; unsigned char powerPosRelayState; unsigned char powerNegRelayState; unsigned short insBatLimit; unsigned short powerBatLimit; unsigned char insBatSoc; unsigned char powerBatSoc; unsigned short insBatTotalElectricity; unsigned short powerBatTotalElectricity; unsigned short insBatCurrentElectricity; unsigned short powerBatCurrentElectricity; unsigned char insChargeState; unsigned char powerChargeState; unsigned short insLinkVoltage; unsigned short insPackVoltage; unsigned short insCurrent; unsigned short insPosInsulationResistance; unsigned short insNegInsulationResistance; unsigned short powerLinkVoltage; unsigned short powerPackVoltage; unsigned short powerCurrent; unsigned short powerPosInsulationResistance; unsigned short powerNegInsulationResistance; unsigned char insEmergencyStatusWord; unsigned char powerEmergencyStatusWord; unsigned char insAlarmIdentificationWord; unsigned char powerAlarmIdentificationWord; unsigned char insCurrentSocHold1; unsigned char insCurrentSocHold2; unsigned char insCurrentSocHold3; unsigned char fcuCurrentToInsLimit1; unsigned char fcuCurrentToinsLimit2; unsigned char powerCurrentSocHold1; unsigned char powerCurrentSocHold2; unsigned char powerCurrentSocHold3; unsigned char powerCurrentToInsLimit1; unsigned char powerCurrentToinsLimit2; float placeholder2; float placeholder3; float placeholder4; float placeholder5; } ccuState; typedef struct disHighVolBusState { unsigned char fuelCellCircuitBreaker; unsigned char powerLithiumBatteryCircuitBreaker; unsigned char propulsionMotorCircuitBreaker; unsigned char lithiumBatteryGroupInstrumentCircuitBreaker; unsigned char dcDc5ModuleCircuitBreaker; unsigned char bowHighVoltageDistributionBoxCircuitBreaker; unsigned char sternFTDevice45CircuitBreaker; unsigned char sternRudderSwitch1CircuitBreaker; unsigned char sternRudderSwitch2CircuitBreaker; unsigned char fbReservedCircuitBreaker; unsigned char tyzReservedCircuitBreaker; unsigned char reservedCircuitBreaker; unsigned char busInsulationLow; unsigned char busAInsulationHigh; unsigned char lostPower; unsigned char lostEmerPower; unsigned short powerBusVoltage; unsigned short dcDc5ModuleCurrent; unsigned short powerBusCurrent; unsigned short busbarAVoltage; unsigned short propulsionMotorControlBoxCurrent; unsigned short busbarACurrent; unsigned short lithiumBatteryGroupMeterCurrent; unsigned short bowHighVoltageDistributionBoxCurrent; unsigned short sternFTDevice45Current; unsigned short tyzReservedSwitchCurrent; unsigned short sternRudderSwitch1Current; unsigned short reservedCurrent1; // 改为 reservedCurrent1 以避免重名 unsigned short sternRudderSwitch2Current; unsigned short reservedCurrent2; // 改为 reservedCurrent2 以避免重名 unsigned short fbReservedSwitchCurrent; unsigned short reservedCurrent3; // 改为 reservedCurrent3 以避免重名 }disHighVolBusState; typedef struct disHighAVolBusState { unsigned char bowFTDevice123CircuitBreaker; unsigned char actuatorCircuitBreaker; unsigned char mastSteeringGearControlBoxCircuitBreaker; unsigned char xczCircuitBreaker; unsigned char bowRudderControlBoxCircuitBreaker; unsigned char openWaterCoverStartCylinderCircuitBreaker; unsigned char instrumentPowerFailureSignal; unsigned char emergencyPowerFailureSignal; unsigned char waterIngressionAlarm; unsigned short busbarBVoltage; unsigned short busbarBCurrent; unsigned short bowFTDevice123Current; unsigned short actuatorCurrent; unsigned short mastSteeringGearControlBoxCurrent; unsigned short xczCurrent; unsigned short bowRudderControlBoxCurrent; unsigned short openWaterCoverStartCylinderCurrent; }disHighAVolBusState; typedef struct disHighBVolBusState { unsigned char lithiumBatteryGroupInstrumentCircuitBreaker; unsigned char bowLowVoltageDistributionBoxCircuitBreaker; unsigned char unit4InstrumentDC48VCircuitBreaker; unsigned char dcC1DCDistributionPanelCircuitBreaker; unsigned char reservedCircuitBreaker1; // 为了区分,添加了数字后缀 unsigned char reservedCircuitBreaker2; // 为了区分,添加了数字后缀 unsigned char emergencyLithiumBatteryGroup2CircuitBreaker; unsigned char instrumentPowerFailureSignal; unsigned char emergencyPowerFailureSignal; unsigned char instrumentBusbarInsulationLow; unsigned short instrumentBusbarVoltage; unsigned short bowLowVoltageDistributionBoxCurrent; unsigned short dcC1InstrumentDC48VCurrent; unsigned short reservedCurrent1; // 为了区分,添加了数字后缀 unsigned short emergencyLithiumBatteryGroup2Current; unsigned short lithiumBatteryGroupInstrumentCurrent; unsigned short unit4InstrumentDC48VCurrent; unsigned short reservedCurrent2; // 为了区分,添加了数字后缀 unsigned short emergency2BusbarVoltage; unsigned short compositeEnergyManagementSystemEmergencyDC48VCurrent; unsigned short fuelCellSecuritySystemEmergencyDC48VCurrent; unsigned short plcControlPowerCurrent; }disHighBVolBusState; typedef struct disLowBusState { unsigned char unit1CircuitBreaker; unsigned char unit2CircuitBreaker; unsigned char unit3CircuitBreaker; unsigned char unit5CircuitBreaker; unsigned char bowPZDeviceCircuitBreaker; unsigned char reservedCircuitBreaker1; // 为了区分,添加了数字后缀 unsigned char reservedCircuitBreaker2; // 为了区分,添加了数字后缀 unsigned char emergencyLithiumBatteryGroup1CircuitBreaker; unsigned char powerFailureSignal; unsigned char waterIngressionAlarm; unsigned short instrumentBusbarVoltage; unsigned short instrumentBusbarCurrent; unsigned short unit1Current; unsigned short unit2Current; unsigned short unit3Current; unsigned short unit5Current; unsigned short bowPZDeviceCurrent; unsigned short emergencyLithiumBatteryGroup1Current; unsigned short emergency1BusbarVoltage; }disLowBusState; #pragma pack (0) typedef struct pmState { ccuState ccustate; disHighVolBusState bus1State; disHighAVolBusState bus2State; disHighBVolBusState bus3State; disLowBusState bus4State; } PmState; #endif