Python Forum
Decoding log files in binary using an XML file.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Decoding log files in binary using an XML file.
#1
Good day.

I am attempting to create a new log decoder based on an existing program, the message data is compared against an XML file and binary strings are translated in to human readable format.

below is an example of one of the messages:
Output:
[01-04-2019 13:16:18.209] MESSAGE-RX [DSE->ATO] ID=102 SEQNUM=0000173551 TIME=1554124577 SRC=01 DST=00 LEN=040 VALID=1 CRC=6CC41467 MESSAGE=6600280002A5EF00010008000000005CA20F21000100005CA20F210000050D00000000006714C46C
each line corresponds to one message, below is an example of the XML file that has the protocol that the log explorer uses to decode each message:

Output:
<message id="5" minlen="30" maxlen="30" name="hel locomotive command" msgType="request"> <header> <item name="sequenceNum" len="32" /> <item name="timestamp" len="32" /> <item name="version" len="16" /> <item name="sourceId" len="16" /> <item name="destinationId" len="16" /> <item name="length" len="16" /> </header> <payload> <field><item name="messageId" len="8" descriptionLink="ATO_MESSAGE_ID" ><values><value>5</value></values></item> </field> <field><item name="targetLocmPosition" len="8" descriptionLink="LOCOMOTIVE_POSITION" ><values><range from="0" to="16" /></values></item> </field> <field name="locmCommands"> <field><item name="applyEngineRunIsolate" len="8" descriptionLink="LOCOMOTIVE_RUN_ISOLATED" ><values><range from="0" to="3" /></values></item> </field> <field><item name="applyShortHoodRedLights" len="8" descriptionLink="COMMAND_ON_OFF" ><values><range from="0" to="1" /></values></item> </field> <field><item name="applyLongHoodRedLights" len="8" descriptionLink="COMMAND_ON_OFF" ><values><range from="0" to="1" /></values></item> </field> <field><item name="applySafeToBoardLights" len="8" descriptionLink="COMMAND_ON_OFF" ><values><range from="0" to="1" /></values></item> </field> <field><item name="applySafeToAlightLights" len="8" descriptionLink="COMMAND_ON_OFF" ><values><range from="0" to="1" /></values></item> </field> <field><item name="applyBell" len="8" descriptionLink="COMMAND_ON_OFF" ><values><range from="0" to="1" /></values></item> </field> <field><item name="applyHorn" len="8" descriptionLink="COMMAND_ON_OFF" ><values><range from="0" to="1" /></values></item> </field> <field><item name="cmmBypass" len="8" descriptionLink="COMMAND_ON_OFF" ><values><range from="0" to="1" /></values></item> </field> </field> </payload> <integrity poly="0x1EDC6F41" init="0x00000000" refin="false" refout="false" xored="0x00000000"> <item name="crc" len="32" /> </integrity> </message>
Does anyone know of any libraries that I can use to make this process easier? id prefer to not hard code anything in the translation part because I dont want my work to become obsolete when a new protocol is released.

Thank you
Reply


Messages In This Thread
Decoding log files in binary using an XML file. - by captainfantastic - Apr-03-2019, 05:42 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Decoding lat/long in file name johnmcd 4 270 Mar-22-2024, 11:51 AM
Last Post: johnmcd
  Enigma Decoding Problem krisarmstrong 4 633 Dec-14-2023, 10:42 AM
Last Post: Larz60+
  How do I read and write a binary file in Python? blackears 6 6,015 Jun-06-2023, 06:37 PM
Last Post: rajeshgk
  json decoding error deneme2 10 3,396 Mar-22-2023, 10:44 PM
Last Post: deanhystad
  Hashing an address for binary file Python_help 8 2,566 Nov-04-2021, 06:23 AM
Last Post: ndc85430
  flask app decoding problem mesbah 0 2,311 Aug-01-2021, 08:32 PM
Last Post: mesbah
  Decoding a serial stream AKGentile1963 7 8,339 Mar-20-2021, 08:07 PM
Last Post: deanhystad
  Read/Write binary file deanhystad 3 3,094 Feb-01-2021, 10:29 AM
Last Post: Larz60+
  Binary File Error SalsaBeanDip 1 1,724 Oct-12-2020, 09:13 PM
Last Post: bowlofred
  Convert file of hex strings to binary file medatib531 4 13,571 Oct-09-2020, 05:42 PM
Last Post: DeaD_EyE

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020