mirror of
https://github.com/uhi22/pyPLC.git
synced 2024-11-20 01:13:58 +00:00
cleanup: pcapConverter added comments and cleaned-up
This commit is contained in:
parent
4a8dbe2d4e
commit
6e70eee176
1 changed files with 26 additions and 10 deletions
|
@ -1,7 +1,7 @@
|
|||
|
||||
# pcap Converter
|
||||
#
|
||||
# This little helper tool read a network trace (e.g. recorded with wireshark) and
|
||||
# This little helper tool reads a network trace (e.g. recorded with wireshark) and
|
||||
# interprets the content of the EXI.V2GTP.TCP.IPv6 data.
|
||||
#
|
||||
# Preconditions:
|
||||
|
@ -9,15 +9,34 @@
|
|||
# 2. You installed the python library pyshark, according to https://github.com/KimiNewt/pyshark/
|
||||
# pip install pyshark
|
||||
# 3. You cloned and compiled the OpenV2Gx EXI decoder from https://github.com/uhi22/OpenV2Gx
|
||||
#
|
||||
# Limitations:
|
||||
# - Only DIN is supported at the moment.
|
||||
# - The script treats all V2G EXI messages as DIN messages. This means, the ApplHandshake messages at
|
||||
# the begin of the charging session will lead to wrong or not decoded data.
|
||||
# - The path where the script look for pcap files needs to be configured in the code.
|
||||
#
|
||||
# Possible improvements / Todos:
|
||||
# - Show also the SLAC, NeigborDiscovery and SDP.
|
||||
# - Add flexibility to also decode the ApplHandshake messages.
|
||||
# - Add ISO support.
|
||||
# - Configure the path where to look for pcap files via command line
|
||||
#
|
||||
|
||||
import pyshark
|
||||
import exiConnector
|
||||
import os
|
||||
|
||||
# The path where the script will search for pcap files:
|
||||
directory = '../temp'
|
||||
|
||||
|
||||
def convertPcapToTxt(inputFileName):
|
||||
cap = pyshark.FileCapture(inputFileName, display_filter="ipv6")
|
||||
fileOut = open(inputFileName + '.decoded.txt', 'w')
|
||||
print("# generated by pcapConverter.py", file=fileOut)
|
||||
print("# https://github.com/uhi22/pyPLC", file=fileOut)
|
||||
# Example how to access the data:
|
||||
#print(cap)
|
||||
#print(cap[0])
|
||||
#print(cap[1])
|
||||
|
@ -45,17 +64,14 @@ def convertPcapToTxt(inputFileName):
|
|||
print(decoded, file=fileOut)
|
||||
fileOut.close()
|
||||
|
||||
# assign directory
|
||||
directory = '../temp'
|
||||
|
||||
# iterate over files in
|
||||
# that directory
|
||||
# iterate over files in the directory
|
||||
for filename in os.listdir(directory):
|
||||
f = os.path.join(directory, filename)
|
||||
strFileNameWithPath = os.path.join(directory, filename)
|
||||
# checking if it is a file
|
||||
if os.path.isfile(f):
|
||||
print(f)
|
||||
if (f[-5:]==".pcap") or (f[-7:]==".pcapng"):
|
||||
strFileNameWithPath = f
|
||||
if os.path.isfile(strFileNameWithPath):
|
||||
print(strFileNameWithPath)
|
||||
# check the file extension:
|
||||
if (strFileNameWithPath[-5:]==".pcap") or (strFileNameWithPath[-7:]==".pcapng"):
|
||||
print("Will decode " + strFileNameWithPath)
|
||||
convertPcapToTxt(strFileNameWithPath)
|
||||
|
|
Loading…
Reference in a new issue