..
This commit is contained in:
20
build.bat
Normal file
20
build.bat
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
@echo off
|
||||||
|
echo Building enhanced_exi_viewer...
|
||||||
|
|
||||||
|
gcc -o enhanced_exi_viewer enhanced_exi_viewer.c ^
|
||||||
|
src/iso1/*.c ^
|
||||||
|
src/iso2/*.c ^
|
||||||
|
src/din/*.c ^
|
||||||
|
src/codec/*.c ^
|
||||||
|
-I./src/codec ^
|
||||||
|
-I./src/iso1 ^
|
||||||
|
-I./src/iso2 ^
|
||||||
|
-I./src/din
|
||||||
|
|
||||||
|
if %ERRORLEVEL% EQU 0 (
|
||||||
|
echo Build successful! enhanced_exi_viewer.exe created.
|
||||||
|
) else (
|
||||||
|
echo Build failed with error code %ERRORLEVEL%
|
||||||
|
)
|
||||||
|
|
||||||
|
pause
|
||||||
@@ -281,23 +281,7 @@ int readEXIFile(char* file, uint8_t* buffer, size_t buffer_size, size_t *bytes_r
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper functions for Wireshark XML output
|
// Helper functions for Wireshark XML output removed - using numeric values directly
|
||||||
const char* get_unit_string(int unit) {
|
|
||||||
switch(unit) {
|
|
||||||
case 2: return "s"; // seconds
|
|
||||||
case 3: return "A"; // amperes
|
|
||||||
case 4: return "V"; // volts
|
|
||||||
case 5: return "W"; // watts
|
|
||||||
default: return ""; // fallback to number
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* get_error_string(int error) {
|
|
||||||
switch(error) {
|
|
||||||
case 0: return "NO_ERROR";
|
|
||||||
default: return ""; // fallback to number
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void print_xml_header_wireshark() {
|
void print_xml_header_wireshark() {
|
||||||
printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
|
printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
|
||||||
@@ -332,23 +316,13 @@ void print_iso1_xml_wireshark(struct iso1EXIDocument* doc) {
|
|||||||
|
|
||||||
printf("<ns3:EVSEPresentVoltage>");
|
printf("<ns3:EVSEPresentVoltage>");
|
||||||
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Multiplier);
|
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Multiplier);
|
||||||
const char* unit_str = get_unit_string(doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Unit);
|
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Unit);
|
||||||
if (strlen(unit_str) > 0) {
|
|
||||||
printf("<ns4:Unit>%s</ns4:Unit>", unit_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Unit);
|
|
||||||
}
|
|
||||||
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Value);
|
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Value);
|
||||||
printf("</ns3:EVSEPresentVoltage>");
|
printf("</ns3:EVSEPresentVoltage>");
|
||||||
|
|
||||||
printf("<ns3:EVSEPresentCurrent>");
|
printf("<ns3:EVSEPresentCurrent>");
|
||||||
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Multiplier);
|
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Multiplier);
|
||||||
unit_str = get_unit_string(doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Unit);
|
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Unit);
|
||||||
if (strlen(unit_str) > 0) {
|
|
||||||
printf("<ns4:Unit>%s</ns4:Unit>", unit_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Unit);
|
|
||||||
}
|
|
||||||
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Value);
|
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Value);
|
||||||
printf("</ns3:EVSEPresentCurrent>");
|
printf("</ns3:EVSEPresentCurrent>");
|
||||||
|
|
||||||
@@ -366,47 +340,27 @@ void print_iso1_xml_wireshark(struct iso1EXIDocument* doc) {
|
|||||||
printf("<ns3:DC_EVStatus>");
|
printf("<ns3:DC_EVStatus>");
|
||||||
printf("<ns4:EVReady>%s</ns4:EVReady>", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVReady ? "true" : "false");
|
printf("<ns4:EVReady>%s</ns4:EVReady>", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVReady ? "true" : "false");
|
||||||
|
|
||||||
const char* error_str = get_error_string(doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode);
|
printf("<ns4:EVErrorCode>%d</ns4:EVErrorCode>", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode);
|
||||||
if (strlen(error_str) > 0) {
|
|
||||||
printf("<ns4:EVErrorCode>%s</ns4:EVErrorCode>", error_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:EVErrorCode>%d</ns4:EVErrorCode>", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("<ns4:EVRESSSOC>%d</ns4:EVRESSSOC>", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVRESSSOC);
|
printf("<ns4:EVRESSSOC>%d</ns4:EVRESSSOC>", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVRESSSOC);
|
||||||
printf("</ns3:DC_EVStatus>");
|
printf("</ns3:DC_EVStatus>");
|
||||||
|
|
||||||
printf("<ns3:EVTargetCurrent>");
|
printf("<ns3:EVTargetCurrent>");
|
||||||
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Multiplier);
|
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Multiplier);
|
||||||
const char* unit_str = get_unit_string(doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Unit);
|
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Unit);
|
||||||
if (strlen(unit_str) > 0) {
|
|
||||||
printf("<ns4:Unit>%s</ns4:Unit>", unit_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Unit);
|
|
||||||
}
|
|
||||||
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Value);
|
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Value);
|
||||||
printf("</ns3:EVTargetCurrent>");
|
printf("</ns3:EVTargetCurrent>");
|
||||||
|
|
||||||
printf("<ns3:EVTargetVoltage>");
|
printf("<ns3:EVTargetVoltage>");
|
||||||
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Multiplier);
|
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Multiplier);
|
||||||
unit_str = get_unit_string(doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit);
|
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit);
|
||||||
if (strlen(unit_str) > 0) {
|
|
||||||
printf("<ns4:Unit>%s</ns4:Unit>", unit_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit);
|
|
||||||
}
|
|
||||||
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Value);
|
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Value);
|
||||||
printf("</ns3:EVTargetVoltage>");
|
printf("</ns3:EVTargetVoltage>");
|
||||||
|
|
||||||
if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed) {
|
if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed) {
|
||||||
printf("<ns3:EVMaximumVoltageLimit>");
|
printf("<ns3:EVMaximumVoltageLimit>");
|
||||||
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Multiplier);
|
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Multiplier);
|
||||||
unit_str = get_unit_string(doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Unit);
|
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Unit);
|
||||||
if (strlen(unit_str) > 0) {
|
|
||||||
printf("<ns4:Unit>%s</ns4:Unit>", unit_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Unit);
|
|
||||||
}
|
|
||||||
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Value);
|
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Value);
|
||||||
printf("</ns3:EVMaximumVoltageLimit>");
|
printf("</ns3:EVMaximumVoltageLimit>");
|
||||||
}
|
}
|
||||||
@@ -414,12 +368,7 @@ void print_iso1_xml_wireshark(struct iso1EXIDocument* doc) {
|
|||||||
if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed) {
|
if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed) {
|
||||||
printf("<ns3:EVMaximumCurrentLimit>");
|
printf("<ns3:EVMaximumCurrentLimit>");
|
||||||
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Multiplier);
|
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Multiplier);
|
||||||
unit_str = get_unit_string(doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Unit);
|
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Unit);
|
||||||
if (strlen(unit_str) > 0) {
|
|
||||||
printf("<ns4:Unit>%s</ns4:Unit>", unit_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Unit);
|
|
||||||
}
|
|
||||||
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Value);
|
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Value);
|
||||||
printf("</ns3:EVMaximumCurrentLimit>");
|
printf("</ns3:EVMaximumCurrentLimit>");
|
||||||
}
|
}
|
||||||
@@ -427,12 +376,7 @@ void print_iso1_xml_wireshark(struct iso1EXIDocument* doc) {
|
|||||||
if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed) {
|
if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed) {
|
||||||
printf("<ns3:EVMaximumPowerLimit>");
|
printf("<ns3:EVMaximumPowerLimit>");
|
||||||
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Multiplier);
|
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Multiplier);
|
||||||
unit_str = get_unit_string(doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Unit);
|
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Unit);
|
||||||
if (strlen(unit_str) > 0) {
|
|
||||||
printf("<ns4:Unit>%s</ns4:Unit>", unit_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Unit);
|
|
||||||
}
|
|
||||||
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Value);
|
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Value);
|
||||||
printf("</ns3:EVMaximumPowerLimit>");
|
printf("</ns3:EVMaximumPowerLimit>");
|
||||||
}
|
}
|
||||||
@@ -446,12 +390,7 @@ void print_iso1_xml_wireshark(struct iso1EXIDocument* doc) {
|
|||||||
if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed) {
|
if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed) {
|
||||||
printf("<ns3:RemainingTimeToFullSoC>");
|
printf("<ns3:RemainingTimeToFullSoC>");
|
||||||
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Multiplier);
|
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Multiplier);
|
||||||
unit_str = get_unit_string(doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Unit);
|
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Unit);
|
||||||
if (strlen(unit_str) > 0) {
|
|
||||||
printf("<ns4:Unit>%s</ns4:Unit>", unit_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Unit);
|
|
||||||
}
|
|
||||||
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Value);
|
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Value);
|
||||||
printf("</ns3:RemainingTimeToFullSoC>");
|
printf("</ns3:RemainingTimeToFullSoC>");
|
||||||
}
|
}
|
||||||
@@ -459,12 +398,7 @@ void print_iso1_xml_wireshark(struct iso1EXIDocument* doc) {
|
|||||||
if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed) {
|
if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed) {
|
||||||
printf("<ns3:RemainingTimeToBulkSoC>");
|
printf("<ns3:RemainingTimeToBulkSoC>");
|
||||||
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Multiplier);
|
printf("<ns4:Multiplier>%d</ns4:Multiplier>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Multiplier);
|
||||||
unit_str = get_unit_string(doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Unit);
|
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Unit);
|
||||||
if (strlen(unit_str) > 0) {
|
|
||||||
printf("<ns4:Unit>%s</ns4:Unit>", unit_str);
|
|
||||||
} else {
|
|
||||||
printf("<ns4:Unit>%d</ns4:Unit>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Unit);
|
|
||||||
}
|
|
||||||
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Value);
|
printf("<ns4:Value>%d</ns4:Value>", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Value);
|
||||||
printf("</ns3:RemainingTimeToBulkSoC>");
|
printf("</ns3:RemainingTimeToBulkSoC>");
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
54
test5.xml
54
test5.xml
@@ -1,53 +1,3 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<V2G_Message xmlns="urn:iso:15118:2:2013:MsgDef"
|
<ns1:V2G_Message xmlns:ns1="urn:iso:15118:2:2013:MsgDef" xmlns:ns2="urn:iso:15118:2:2013:MsgHeader" xmlns:ns3="urn:iso:15118:2:2013:MsgBody" xmlns:ns4="urn:iso:15118:2:2013:MsgDataTypes">
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
<ns1:Header><ns2:SessionID>4142423030303831</ns2:SessionID></ns1:Header><ns1:Body><ns3:CurrentDemandReq><ns3:DC_EVStatus><ns4:EVReady>true</ns4:EVReady><ns4:EVErrorCode>0</ns4:EVErrorCode><ns4:EVRESSSOC>100</ns4:EVRESSSOC></ns3:DC_EVStatus><ns3:EVTargetCurrent><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>3</ns4:Unit><ns4:Value>1</ns4:Value></ns3:EVTargetCurrent><ns3:EVTargetVoltage><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>4</ns4:Unit><ns4:Value>460</ns4:Value></ns3:EVTargetVoltage><ns3:EVMaximumVoltageLimit><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>4</ns4:Unit><ns4:Value>471</ns4:Value></ns3:EVMaximumVoltageLimit><ns3:EVMaximumCurrentLimit><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>3</ns4:Unit><ns4:Value>100</ns4:Value></ns3:EVMaximumCurrentLimit><ns3:EVMaximumPowerLimit><ns4:Multiplier>3</ns4:Multiplier><ns4:Unit>5</ns4:Unit><ns4:Value>50</ns4:Value></ns3:EVMaximumPowerLimit><ns3:BulkChargingComplete>false</ns3:BulkChargingComplete><ns3:ChargingComplete>true</ns3:ChargingComplete><ns3:RemainingTimeToFullSoC><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>2</ns4:Unit><ns4:Value>0</ns4:Value></ns3:RemainingTimeToFullSoC><ns3:RemainingTimeToBulkSoC><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>2</ns4:Unit><ns4:Value>0</ns4:Value></ns3:RemainingTimeToBulkSoC></ns3:CurrentDemandReq></ns1:Body></ns1:V2G_Message>
|
||||||
<Header>
|
|
||||||
<SessionID>4142423030303831</SessionID>
|
|
||||||
</Header>
|
|
||||||
<Body>
|
|
||||||
<CurrentDemandReq>
|
|
||||||
<DC_EVStatus>
|
|
||||||
<EVReady>true</EVReady>
|
|
||||||
<EVErrorCode>0</EVErrorCode>
|
|
||||||
<EVRESSSOC>100</EVRESSSOC>
|
|
||||||
</DC_EVStatus>
|
|
||||||
<EVTargetCurrent>
|
|
||||||
<Multiplier>0</Multiplier>
|
|
||||||
<Unit>3</Unit>
|
|
||||||
<Value>1</Value>
|
|
||||||
</EVTargetCurrent>
|
|
||||||
<EVTargetVoltage>
|
|
||||||
<Multiplier>0</Multiplier>
|
|
||||||
<Unit>4</Unit>
|
|
||||||
<Value>460</Value>
|
|
||||||
</EVTargetVoltage>
|
|
||||||
<EVMaximumVoltageLimit>
|
|
||||||
<Multiplier>0</Multiplier>
|
|
||||||
<Unit>4</Unit>
|
|
||||||
<Value>471</Value>
|
|
||||||
</EVMaximumVoltageLimit>
|
|
||||||
<EVMaximumCurrentLimit>
|
|
||||||
<Multiplier>0</Multiplier>
|
|
||||||
<Unit>3</Unit>
|
|
||||||
<Value>100</Value>
|
|
||||||
</EVMaximumCurrentLimit>
|
|
||||||
<EVMaximumPowerLimit>
|
|
||||||
<Multiplier>3</Multiplier>
|
|
||||||
<Unit>5</Unit>
|
|
||||||
<Value>50</Value>
|
|
||||||
</EVMaximumPowerLimit>
|
|
||||||
<BulkChargingComplete>false</BulkChargingComplete>
|
|
||||||
<ChargingComplete>true</ChargingComplete>
|
|
||||||
<RemainingTimeToFullSoC>
|
|
||||||
<Multiplier>0</Multiplier>
|
|
||||||
<Unit>2</Unit>
|
|
||||||
<Value>0</Value>
|
|
||||||
</RemainingTimeToFullSoC>
|
|
||||||
<RemainingTimeToBulkSoC>
|
|
||||||
<Multiplier>0</Multiplier>
|
|
||||||
<Unit>2</Unit>
|
|
||||||
<Value>0</Value>
|
|
||||||
</RemainingTimeToBulkSoC>
|
|
||||||
</CurrentDemandReq>
|
|
||||||
</Body>
|
|
||||||
</V2G_Message>
|
|
||||||
1
test5_encoded.exi
Normal file
1
test5_encoded.exi
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Error encoding to EXI (error: -109)\n
|
||||||
1
test5ws.xml
Normal file
1
test5ws.xml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><ns1:V2G_Message xmlns:ns1="urn:iso:15118:2:2013:MsgDef" xmlns:ns2="urn:iso:15118:2:2013:MsgHeader" xmlns:ns3="urn:iso:15118:2:2013:MsgBody" xmlns:ns4="urn:iso:15118:2:2013:MsgDataTypes"><ns1:Header><ns2:SessionID>4142423030303831</ns2:SessionID></ns1:Header><ns1:Body><ns3:CurrentDemandReq><ns3:DC_EVStatus><ns4:EVReady>true</ns4:EVReady><ns4:EVErrorCode>NO_ERROR</ns4:EVErrorCode><ns4:EVRESSSOC>100</ns4:EVRESSSOC></ns3:DC_EVStatus><ns3:EVTargetCurrent><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>A</ns4:Unit><ns4:Value>1</ns4:Value></ns3:EVTargetCurrent><ns3:EVMaximumVoltageLimit><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>V</ns4:Unit><ns4:Value>471</ns4:Value></ns3:EVMaximumVoltageLimit><ns3:EVMaximumCurrentLimit><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>A</ns4:Unit><ns4:Value>100</ns4:Value></ns3:EVMaximumCurrentLimit><ns3:EVMaximumPowerLimit><ns4:Multiplier>3</ns4:Multiplier><ns4:Unit>W</ns4:Unit><ns4:Value>50</ns4:Value></ns3:EVMaximumPowerLimit><ns3:BulkChargingComplete>false</ns3:BulkChargingComplete><ns3:ChargingComplete>true</ns3:ChargingComplete><ns3:RemainingTimeToFullSoC><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>s</ns4:Unit><ns4:Value>0</ns4:Value></ns3:RemainingTimeToFullSoC><ns3:RemainingTimeToBulkSoC><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>s</ns4:Unit><ns4:Value>0</ns4:Value></ns3:RemainingTimeToBulkSoC><ns3:EVTargetVoltage><ns4:Multiplier>0</ns4:Multiplier><ns4:Unit>V</ns4:Unit><ns4:Value>460</ns4:Value></ns3:EVTargetVoltage></ns3:CurrentDemandReq></ns1:Body></ns1:V2G_Message>
|
||||||
Reference in New Issue
Block a user