did some renaming to go along with the pep. Also, added the message number as a hex value to the MessageTemplate for faster access (no decoding) when we get it from the udp pipe.
This commit is contained in:
committed by
Salad Dais
parent
2847c290ff
commit
fe238cf56d
@@ -25,8 +25,10 @@ $/LicenseInfo$
|
||||
|
||||
#standard libraries
|
||||
import struct
|
||||
import string
|
||||
import re
|
||||
import pprint
|
||||
|
||||
|
||||
#local libraries
|
||||
from makepacketdict import makepacketdict, makereversepacketdict
|
||||
|
||||
@@ -93,28 +95,44 @@ class MessageTemplate():
|
||||
|
||||
self.name = header[0]
|
||||
self.frequency = header[1]
|
||||
self.msgNum = header[2]
|
||||
self.msgTrust = header[3]
|
||||
self.msgEncoding = header[4]
|
||||
|
||||
self.msg_num = string.atoi(header[2],0)
|
||||
if self.frequency == 'Fixed':
|
||||
#have to do this because Fixed messages are stored as a long in the template
|
||||
binTemp = struct.pack('>l', string.atol(header[2],0))
|
||||
self.msg_num_hex = repr(binTemp)
|
||||
self.msg_num = struct.unpack('>h','\x00' + binTemp[3])[0]
|
||||
elif self.frequency == 'Low':
|
||||
self.msg_num_hex = repr(struct.pack('>bbh',0xff,0xff, self.msg_num))
|
||||
elif self.frequency == 'Medium':
|
||||
self.msg_num_hex = repr(struct.pack('>bb',0xff, self.msg_num))
|
||||
elif self.frequency == 'High':
|
||||
self.msg_num_hex = repr(struct.pack('>b', self.msg_num))
|
||||
|
||||
self.msg_trust = header[3]
|
||||
self.msg_encoding = header[4]
|
||||
if len(header) > 5:
|
||||
self.msgDeprecation = header[5]
|
||||
self.msg_deprecation = header[5]
|
||||
else:
|
||||
self.msgDeprecation = ''
|
||||
self.msg_deprecation = ''
|
||||
|
||||
def get_frequency(self):
|
||||
return self.frequency
|
||||
|
||||
def get_message_number(self):
|
||||
return self.msgNum
|
||||
return self.msg_num
|
||||
|
||||
def get_message_hex_num(self):
|
||||
return self.msg_num_hex
|
||||
|
||||
def get_message_trust(self):
|
||||
return self.msgTrust
|
||||
return self.msg_trust
|
||||
|
||||
def get_message_encoding(self):
|
||||
return self.msgEncoding
|
||||
return self.msg_encoding
|
||||
|
||||
def get_deprecation(self):
|
||||
return self.msgDeprecation
|
||||
return self.msg_deprecation
|
||||
|
||||
def get_name(self):
|
||||
return self.name
|
||||
|
||||
@@ -8,16 +8,21 @@ from pyogp.lib.base.data import msg_tmpl
|
||||
|
||||
class MessageTemplateParser():
|
||||
def __init__(self):
|
||||
self.message_templates = {}
|
||||
|
||||
self.message_templates = []
|
||||
self.version = ''
|
||||
|
||||
def get_version(self):
|
||||
return self.version
|
||||
|
||||
def get_template_list(self):
|
||||
return self.message_templates.values()
|
||||
return self.message_templates
|
||||
|
||||
def get_template(self, name):
|
||||
return self.message_templates[name]
|
||||
|
||||
def add_template(self, new_template):
|
||||
self.message_templates[new_template.get_name()] = new_template
|
||||
#self.message_templates[new_template.get_name()] = new_template
|
||||
self.message_templates.append(new_template)
|
||||
|
||||
def parse_template_file(self, template_file):
|
||||
count = 0
|
||||
@@ -40,6 +45,14 @@ class MessageTemplateParser():
|
||||
#raw_input()
|
||||
except StopIteration:
|
||||
break
|
||||
|
||||
if self.version == '':
|
||||
version_test = re.match("version.(.+)",line) #gets packet headers
|
||||
if version_test != None:
|
||||
parts = version_test.group(1)
|
||||
parts = parts.split()
|
||||
self.version = float(parts[0])
|
||||
|
||||
|
||||
#get packet header, starting a new packet
|
||||
packet_header = re.match("^\t([^\t{}]+.+)",line) #gets packet headers
|
||||
@@ -71,8 +84,9 @@ def print_packet_list(packet_list):
|
||||
for packet in packet_list:
|
||||
print '======================================'
|
||||
print packet.get_name() + ' ' + packet.get_frequency() + ' ' + \
|
||||
packet.get_message_number() + ' ' + packet.get_message_trust() + ' ' + \
|
||||
packet.get_message_encoding() + '' + packet.get_deprecation()
|
||||
str(packet.get_message_number()) + ' ' + str(packet.get_message_hex_num()) + \
|
||||
' ' + packet.get_message_trust() + ' ' + \
|
||||
packet.get_message_encoding() + ' ' + packet.get_deprecation()
|
||||
|
||||
for block in packet.get_blocks():
|
||||
print '\t' + block.get_name() + ' ' + block.get_block_type() + ' ' + \
|
||||
|
||||
Reference in New Issue
Block a user