File: test5_c_encoded.exi (43 bytes) Raw hex data: 80 98 02 10 50 90 8C 0C 0C 0E 0C 50 D1 00 32 01 86 00 20 18 81 AE 06 01 86 0C 80 61 40 C8 01 03 ... === Data Structure Analysis === Total size: 43 bytes First 4 bytes: 0x80980210 EXI start pattern (0x8098) found at offset: 0 EXI payload size: 43 bytes Protocol: Direct EXI format Detected 43-byte file - using verified decoding approach === Decoding from verified position: byte 11, bit offset 6 === 6-bit choice = 13 (expecting 13 for CurrentDemandReq) === CurrentDemandReq Decoder === Decoding DC_EVStatus at position: 13, bit: 4 DC_EVStatus decode start - position: 13, bit: 5 Grammar 314: Reading 1-bit at pos 13:5 Grammar 314: eventCode = 0 Grammar 314: Reading boolean bit at pos 13:6 Grammar 314: boolean eventCode = 0 Grammar 314: Reading EVReady boolean value at pos 13:7 Grammar 314: EVReady bit = 1, boolean = True Grammar 314: Reading EE bit at pos 13:8 Grammar 314: EE eventCode = 0 Grammar 315: Reading EVErrorCode at pos 14:1 Grammar 315: eventCode = 0 Grammar 315: Reading enum bit at pos 14:2 Grammar 315: enum eventCode = 0 Grammar 315: Reading EVErrorCode 4-bit value at pos 14:3 Grammar 315: EVErrorCode = 0 Grammar 315: Reading EE bit at pos 14:7 Grammar 315: EE eventCode = 0 Grammar 315 → 316 Grammar 316: Reading EVRESSSOC at pos 14:8 Grammar 316: eventCode = 0 Grammar 316: Reading integer bit at pos 15:1 Grammar 316: integer eventCode = 0 Grammar 316: Reading EVRESSSOC 7-bit value at pos 15:2 Grammar 316: EVRESSSOC = 100 Grammar 316: Reading EE bit at pos 16:1 Grammar 316: EE eventCode = 0 Grammar 316 → 3 (END) EVReady: True EVErrorCode: 0 EVRESSSOC: 100 DC_EVStatus decode end - position: 16, bit: 3 Decoding EVTargetCurrent at position: 16, bit: 3 PhysicalValue decode start - position: 16, bit: 4 Multiplier: 0 Unit: 3 (A) Value: 1 PhysicalValue decode end - position: 19, bit: 5 Reading choice for optional elements at position: 19, bit: 5 Optional element choice: 0 PhysicalValue decode start - position: 19, bit: 8 Multiplier: 0 Unit: 4 (V) Value: 471 PhysicalValue decode end - position: 24, bit: 1 Grammar 276: Reading 3-bit choice at pos 24:1 Grammar 276: 3-bit choice = 0 Grammar 276: case 0 - EVMaximumCurrentLimit PhysicalValue decode start - position: 24, bit: 4 Multiplier: 0 Unit: 3 (A) Value: 100 PhysicalValue decode end - position: 27, bit: 5 Grammar 276 → 277 State 277 choice: 0 PhysicalValue decode start - position: 27, bit: 7 Multiplier: 3 Unit: 5 (W) Value: 50 PhysicalValue decode end - position: 30, bit: 8 State 278 choice: 0 State 279 choice: 0 State 280 choice: 0 PhysicalValue decode start - position: 32, bit: 3 Multiplier: 0 Unit: 2 (s) Value: 0 PhysicalValue decode end - position: 35, bit: 4 State 281 choice (2-bit): 0 PhysicalValue decode start - position: 35, bit: 6 Multiplier: 0 Unit: 2 (s) Value: 0 PhysicalValue decode end - position: 38, bit: 7 State 282 choice: 0 Decoding EVTargetVoltage... PhysicalValue decode start - position: 38, bit: 8 Multiplier: 0 Unit: 4 (V) Value: 460 PhysicalValue decode end - position: 43, bit: 1 CurrentDemandReq decoding completed Trying ISO1 decoder... Successfully decoded as ISO1 === ISO 15118-2 V2G Message Analysis === Message Type: ISO1 (2013) V2G_Message_isUsed: true --- Header --- SessionID: 4142423030303831 (ABB00081) --- Body --- Message Type: CurrentDemandReq DC_EVStatus: EVReady: true EVErrorCode: 0 EVRESSSOC: 100% EVTargetCurrent: Multiplier: 0 Unit: 3 Value: 1 EVTargetVoltage: Multiplier: 0 Unit: 4 Value: 460 EVMaximumVoltageLimit: Multiplier: 0 Unit: 4 Value: 471 EVMaximumCurrentLimit: Multiplier: 0 Unit: 3 Value: 100 EVMaximumPowerLimit: Multiplier: 3 Unit: 5 Value: 50 BulkChargingComplete: false ChargingComplete: true RemainingTimeToFullSoC: Multiplier: 0 Unit: 2 Value: 0 RemainingTimeToBulkSoC: Multiplier: 0 Unit: 2 Value: 0 === Original EXI Structure Debug === V2G_Message_isUsed: true SessionID length: 8 CurrentDemandReq_isUsed: true EVReady: true EVErrorCode: 0 EVRESSSOC: 100 EVTargetCurrent: M=0, U=3, V=1 EVMaximumVoltageLimit_isUsed: true EVMaximumCurrentLimit_isUsed: true EVMaximumPowerLimit_isUsed: true BulkChargingComplete_isUsed: true RemainingTimeToFullSoC_isUsed: true RemainingTimeToBulkSoC_isUsed: true Structure dump saved to struct_exi.txt 4142423030303831 true010003104471031003550falsetrue02002004460