From 810b696b8d5d0b8a2c8bb0a596d34e43f4de764c Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Sun, 9 Dec 2018 04:38:07 +0700 Subject: trx_toolkit/data_if.py: add message parsing methods This change extends DATAInterface class with new methods: - recv_raw_data() - read raw data from socket; - recv_l12trx_msg() - read raw data and parse as L12TRX; - recv_trx2l1_msg() - read raw data and parse as TRX2L1; which would simplify the further usage of this class. Change-Id: I761c4e63864622d3882b8f9c80ea43b58f092cb1 --- src/target/trx_toolkit/data_if.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src') diff --git a/src/target/trx_toolkit/data_if.py b/src/target/trx_toolkit/data_if.py index f4431a46..45114ed2 100644 --- a/src/target/trx_toolkit/data_if.py +++ b/src/target/trx_toolkit/data_if.py @@ -26,6 +26,39 @@ from udp_link import UDPLink from data_msg import * class DATAInterface(UDPLink): + def recv_raw_data(self): + data, _ = self.sock.recvfrom(512) + return data + + def recv_l12trx_msg(self): + # Read raw data from socket + data = self.recv_raw_data() + + # Attempt to parse as a L12TRX message + try: + msg = DATAMSG_L12TRX() + msg.parse_msg(bytearray(data)) + except: + log.error("Failed to parse a L12TRX message " + "from R:%s:%u" % (self.remote_addr, self.remote_port)) + return None + + return msg + + def recv_trx2l1_msg(self): + # Read raw data from socket + data = self.recv_raw_data() + + # Attempt to parse as a L12TRX message + try: + msg = DATAMSG_TRX2L1() + msg.parse_msg(bytearray(data)) + except: + log.error("Failed to parse a TRX2L1 message " + "from R:%s:%u" % (self.remote_addr, self.remote_port)) + return None + + return msg def send_msg(self, msg): # Validate a message -- cgit v1.2.3