优化udp通信代码,增加配电系统通信解析,增加能源系统状态定义
This commit is contained in:
@@ -216,6 +216,270 @@ class msg_CcuSetParamFbMsg:
|
||||
self.checkCode += data[i]
|
||||
data += struct.pack('<I', self.checkCode)
|
||||
return data
|
||||
|
||||
class msg_disHighVolBusFbMsg:
|
||||
def __init__(self):
|
||||
self.start1 = 0x20
|
||||
self.start2 = 0x20
|
||||
self.id = 0x0005
|
||||
self.length = 10
|
||||
self.DCB1 = 0x00
|
||||
self.DCB2 = 0x00
|
||||
self.ZK1 = 0x00
|
||||
self.ZK2 = 0x00
|
||||
self.ZK3 = 0x00
|
||||
self.ZK4 = 0x00
|
||||
self.ZK5 = 0x00
|
||||
self.ZK6 = 0x00
|
||||
self.ZK7 = 0x00
|
||||
self.ZK8 = 0x00
|
||||
self.ZK9 = 0x00
|
||||
self.ZK10 = 0x00
|
||||
self.busInsulationLow = 0x00
|
||||
self.busAInsulationHigh = 0x00
|
||||
self.lostPower = 0x00
|
||||
self.lostEmerPower = 0x00
|
||||
self.powerBusVoltage = 0x00
|
||||
self.dcDc5ModuleCurrent = 0x00
|
||||
self.powerBusCurrent = 0x00
|
||||
self.busbarAVoltage = 0x00
|
||||
self.propulsionMotorControlBoxCurrent = 0x00
|
||||
self.busbarACurrent = 0x00
|
||||
self.lithiumBatteryGroupMeterCurrent = 0x00
|
||||
self.bowHighVoltageDistributionBoxCurrent = 0x00
|
||||
self.sternFTDevice45Current = 0x00
|
||||
self.tyzReservedSwitchCurrent = 0x00
|
||||
self.sternRudderSwitch1Current = 0x00
|
||||
self.reservedCurrent1 = 0x00
|
||||
self.sternRudderSwitch2Current = 0x00
|
||||
self.reservedCurrent2 = 0x00
|
||||
self.fbReservedSwitchCurrent = 0x00
|
||||
self.reservedCurrent3 = 0x00
|
||||
self.checkCode = 0x0000
|
||||
|
||||
def pack(self):
|
||||
# 初始化数据
|
||||
self.checkCode = 0x0000
|
||||
data = struct.pack('<B', self.start1)
|
||||
data += struct.pack('<B', self.start2)
|
||||
data += struct.pack('<H', self.id)
|
||||
data += struct.pack('<H', self.length)
|
||||
# 填充数据
|
||||
data += struct.pack('<B', self.DCB1)
|
||||
data += struct.pack('<B', self.DCB2)
|
||||
data += struct.pack('<B', self.ZK1)
|
||||
data += struct.pack('<B', self.ZK2)
|
||||
data += struct.pack('<B', self.ZK3)
|
||||
data += struct.pack('<B', self.ZK4)
|
||||
data += struct.pack('<B', self.ZK5)
|
||||
data += struct.pack('<B', self.ZK6)
|
||||
data += struct.pack('<B', self.ZK7)
|
||||
data += struct.pack('<B', self.ZK8)
|
||||
data += struct.pack('<B', self.ZK9)
|
||||
data += struct.pack('<B', self.ZK10)
|
||||
data += struct.pack('<B', self.busInsulationLow)
|
||||
data += struct.pack('<B', self.busAInsulationHigh)
|
||||
data += struct.pack('<B', self.lostPower)
|
||||
data += struct.pack('<B', self.lostEmerPower)
|
||||
data += struct.pack('<H', self.powerBusVoltage)
|
||||
data += struct.pack('<H', self.dcDc5ModuleCurrent)
|
||||
data += struct.pack('<H', self.powerBusCurrent)
|
||||
data += struct.pack('<H', self.busbarAVoltage)
|
||||
data += struct.pack('<H', self.propulsionMotorControlBoxCurrent)
|
||||
data += struct.pack('<H', self.busbarACurrent)
|
||||
data += struct.pack('<H', self.lithiumBatteryGroupMeterCurrent)
|
||||
data += struct.pack('<H', self.bowHighVoltageDistributionBoxCurrent)
|
||||
data += struct.pack('<H', self.sternFTDevice45Current)
|
||||
data += struct.pack('<H', self.tyzReservedSwitchCurrent)
|
||||
data += struct.pack('<H', self.sternRudderSwitch1Current)
|
||||
data += struct.pack('<H', self.reservedCurrent1)
|
||||
data += struct.pack('<H', self.sternRudderSwitch2Current)
|
||||
data += struct.pack('<H', self.reservedCurrent2)
|
||||
data += struct.pack('<H', self.fbReservedSwitchCurrent)
|
||||
data += struct.pack('<H', self.reservedCurrent3)
|
||||
for i in range(len(data)):
|
||||
self.checkCode += data[i]
|
||||
data += struct.pack('<I', self.checkCode)
|
||||
return data
|
||||
|
||||
class msg_disHighAVolBusFbMsg:
|
||||
def __init__(self):
|
||||
self.start1 = 0x20
|
||||
self.start2 = 0x20
|
||||
self.id = 0x0006
|
||||
self.length = 10
|
||||
self.bowFTDevice123CircuitBreaker = 0x00
|
||||
self.actuatorCircuitBreaker = 0x00
|
||||
self.mastSteeringGearControlBoxCircuitBreaker = 0x00
|
||||
self.xczCircuitBreaker = 0x00
|
||||
self.bowRudderControlBoxCircuitBreaker = 0x00
|
||||
self.openWaterCoverStartCylinderCircuitBreaker = 0x00
|
||||
self.instrumentPowerFailureSignal = 0x00
|
||||
self.emergencyPowerFailureSignal = 0x00
|
||||
self.waterIngressionAlarm = 0x00
|
||||
self.busbarBVoltage = 0x0000
|
||||
self.busbarBCurrent = 0x0000
|
||||
self.bowFTDevice123Current = 0x0000
|
||||
self.actuatorCurrent = 0x0000
|
||||
self.mastSteeringGearControlBoxCurrent = 0x0000
|
||||
self.xczCurrent = 0x0000
|
||||
self.bowRudderControlBoxCurrent = 0x0000
|
||||
self.openWaterCoverStartCylinderCurrent = 0x0000
|
||||
self.checkCode = 0x0000
|
||||
|
||||
def pack(self):
|
||||
# 初始化数据
|
||||
self.checkCode = 0x0000
|
||||
data = struct.pack('<B', self.start1)
|
||||
data += struct.pack('<B', self.start2)
|
||||
data += struct.pack('<H', self.id)
|
||||
data += struct.pack('<H', self.length)
|
||||
# 填充数据
|
||||
data += struct.pack('<B', self.bowFTDevice123CircuitBreaker)
|
||||
data += struct.pack('<B', self.actuatorCircuitBreaker)
|
||||
data += struct.pack('<B', self.mastSteeringGearControlBoxCircuitBreaker)
|
||||
data += struct.pack('<B', self.xczCircuitBreaker)
|
||||
data += struct.pack('<B', self.bowRudderControlBoxCircuitBreaker)
|
||||
data += struct.pack('<B', self.openWaterCoverStartCylinderCircuitBreaker)
|
||||
data += struct.pack('<B', self.instrumentPowerFailureSignal)
|
||||
data += struct.pack('<B', self.emergencyPowerFailureSignal)
|
||||
data += struct.pack('<B', self.waterIngressionAlarm)
|
||||
data += struct.pack('<H', self.busbarBVoltage)
|
||||
data += struct.pack('<H', self.busbarBCurrent)
|
||||
data += struct.pack('<H', self.bowFTDevice123Current)
|
||||
data += struct.pack('<H', self.actuatorCurrent)
|
||||
data += struct.pack('<H', self.mastSteeringGearControlBoxCurrent)
|
||||
data += struct.pack('<H', self.xczCurrent)
|
||||
data += struct.pack('<H', self.bowRudderControlBoxCurrent)
|
||||
data += struct.pack('<H', self.openWaterCoverStartCylinderCurrent)
|
||||
for i in range(len(data)):
|
||||
self.checkCode += data[i]
|
||||
data += struct.pack('<I', self.checkCode)
|
||||
return data
|
||||
|
||||
class msg_disHighBVolBusFbMsg:
|
||||
def __init__(self):
|
||||
self.start1 = 0x20
|
||||
self.start2 = 0x20
|
||||
self.id = 0x0007
|
||||
self.length = 10
|
||||
self.lithiumBatteryGroupInstrumentCircuitBreaker = 0x00
|
||||
self.bowLowVoltageDistributionBoxCircuitBreaker = 0x00
|
||||
self.unit4InstrumentDC48VCircuitBreaker = 0x00
|
||||
self.dcC1DCDistributionPanelCircuitBreaker = 0x00
|
||||
self.reservedCircuitBreaker1 = 0x00
|
||||
self.reservedCircuitBreaker2 = 0x00
|
||||
self.emergencyLithiumBatteryGroup2CircuitBreaker = 0x00
|
||||
self.instrumentPowerFailureSignal = 0x00
|
||||
self.emergencyPowerFailureSignal = 0x00
|
||||
self.instrumentBusbarInsulationLow = 0x00
|
||||
self.instrumentBusbarVoltage = 0x0000
|
||||
self.bowLowVoltageDistributionBoxCurrent = 0x0000
|
||||
self.dcC1InstrumentDC48VCurrent = 0x0000
|
||||
self.reservedCurrent1 = 0x0000
|
||||
self.emergencyLithiumBatteryGroup2Current = 0x0000
|
||||
self.lithiumBatteryGroupInstrumentCurrent = 0x0000
|
||||
self.unit4InstrumentDC48VCurrent = 0x0000
|
||||
self.reservedCurrent2 = 0x0000
|
||||
self.emergency2BusbarVoltage = 0x0000
|
||||
self.compositeEnergyManagementSystemEmergencyDC48VCurrent = 0x0000
|
||||
self.fuelCellSecuritySystemEmergencyDC48VCurrent = 0x0000
|
||||
self.plcControlPowerCurrent = 0x0000
|
||||
self.checkCode = 0x0000
|
||||
|
||||
def pack(self):
|
||||
# 初始化数据
|
||||
self.checkCode = 0x0000
|
||||
data = struct.pack('<B', self.start1)
|
||||
data += struct.pack('<B', self.start2)
|
||||
data += struct.pack('<H', self.id)
|
||||
data += struct.pack('<H', self.length)
|
||||
# 填充数据
|
||||
data += struct.pack('<B', self.lithiumBatteryGroupInstrumentCircuitBreaker)
|
||||
data += struct.pack('<B', self.bowLowVoltageDistributionBoxCircuitBreaker)
|
||||
data += struct.pack('<B', self.unit4InstrumentDC48VCircuitBreaker)
|
||||
data += struct.pack('<B', self.dcC1DCDistributionPanelCircuitBreaker)
|
||||
data += struct.pack('<B', self.reservedCircuitBreaker1)
|
||||
data += struct.pack('<B', self.reservedCircuitBreaker2)
|
||||
data += struct.pack('<B', self.emergencyLithiumBatteryGroup2CircuitBreaker)
|
||||
data += struct.pack('<B', self.instrumentPowerFailureSignal)
|
||||
data += struct.pack('<B', self.emergencyPowerFailureSignal)
|
||||
data += struct.pack('<B', self.instrumentBusbarInsulationLow)
|
||||
data += struct.pack('<H', self.instrumentBusbarVoltage)
|
||||
data += struct.pack('<H', self.bowLowVoltageDistributionBoxCurrent)
|
||||
data += struct.pack('<H', self.dcC1InstrumentDC48VCurrent)
|
||||
data += struct.pack('<H', self.reservedCurrent1)
|
||||
data += struct.pack('<H', self.emergencyLithiumBatteryGroup2Current)
|
||||
data += struct.pack('<H', self.lithiumBatteryGroupInstrumentCurrent)
|
||||
data += struct.pack('<H', self.unit4InstrumentDC48VCurrent)
|
||||
data += struct.pack('<H', self.reservedCurrent2)
|
||||
data += struct.pack('<H', self.emergency2BusbarVoltage)
|
||||
data += struct.pack('<H', self.compositeEnergyManagementSystemEmergencyDC48VCurrent)
|
||||
data += struct.pack('<H', self.fuelCellSecuritySystemEmergencyDC48VCurrent)
|
||||
data += struct.pack('<H', self.plcControlPowerCurrent)
|
||||
for i in range(len(data)):
|
||||
self.checkCode += data[i]
|
||||
data += struct.pack('<I', self.checkCode)
|
||||
return data
|
||||
|
||||
class msg_disLowBusFbMsg:
|
||||
def __init__(self):
|
||||
self.start1 = 0x20
|
||||
self.start2 = 0x20
|
||||
self.id = 0x0008
|
||||
self.length = 10
|
||||
self.unit1CircuitBreaker = 0x00
|
||||
self.unit2CircuitBreaker = 0x00
|
||||
self.unit3CircuitBreaker = 0x00
|
||||
self.unit5CircuitBreaker = 0x00
|
||||
self.bowPZDeviceCircuitBreaker = 0x00
|
||||
self.reservedCircuitBreaker1 = 0x00
|
||||
self.reservedCircuitBreaker2 = 0x00
|
||||
self.emergencyLithiumBatteryGroup1CircuitBreaker = 0x00
|
||||
self.powerFailureSignal = 0x00
|
||||
self.waterIngressionAlarm = 0x00
|
||||
self.instrumentBusbarVoltage = 0x0000
|
||||
self.instrumentBusbarCurrent = 0x0000
|
||||
self.unit1Current = 0x0000
|
||||
self.unit2Current = 0x0000
|
||||
self.unit3Current = 0x0000
|
||||
self.unit5Current = 0x0000
|
||||
self.bowPZDeviceCurrent = 0x0000
|
||||
self.emergencyLithiumBatteryGroup1Current = 0x0000
|
||||
self.emergency1BusbarVoltage = 0x0000
|
||||
self.checkCode = 0x0000
|
||||
|
||||
def pack(self):
|
||||
# 初始化数据
|
||||
self.checkCode = 0x0000
|
||||
data = struct.pack('<B', self.start1)
|
||||
data += struct.pack('<B', self.start2)
|
||||
data += struct.pack('<H', self.id)
|
||||
data += struct.pack('<H', self.length)
|
||||
# 填充数据
|
||||
data += struct.pack('<B', self.unit1CircuitBreaker)
|
||||
data += struct.pack('<B', self.unit2CircuitBreaker)
|
||||
data += struct.pack('<B', self.unit3CircuitBreaker)
|
||||
data += struct.pack('<B', self.unit5CircuitBreaker)
|
||||
data += struct.pack('<B', self.bowPZDeviceCircuitBreaker)
|
||||
data += struct.pack('<B', self.reservedCircuitBreaker1)
|
||||
data += struct.pack('<B', self.reservedCircuitBreaker2)
|
||||
data += struct.pack('<B', self.emergencyLithiumBatteryGroup1CircuitBreaker)
|
||||
data += struct.pack('<B', self.powerFailureSignal)
|
||||
data += struct.pack('<B', self.waterIngressionAlarm)
|
||||
data += struct.pack('<H', self.instrumentBusbarVoltage)
|
||||
data += struct.pack('<H', self.instrumentBusbarCurrent)
|
||||
data += struct.pack('<H', self.unit1Current)
|
||||
data += struct.pack('<H', self.unit2Current)
|
||||
data += struct.pack('<H', self.unit3Current)
|
||||
data += struct.pack('<H', self.unit5Current)
|
||||
data += struct.pack('<H', self.bowPZDeviceCurrent)
|
||||
data += struct.pack('<H', self.emergencyLithiumBatteryGroup1Current)
|
||||
data += struct.pack('<H', self.emergency1BusbarVoltage)
|
||||
for i in range(len(data)):
|
||||
self.checkCode += data[i]
|
||||
data += struct.pack('<I', self.checkCode)
|
||||
return data
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user