Skip to content
Snippets Groups Projects
Commit 6583bc90 authored by jkerdreu's avatar jkerdreu
Browse files

Core target/source UUID should be ok.

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2305 b32b6428-25c9-4566-ad07-03861ab6144f
parent 3ad8beec
No related branches found
No related tags found
No related merge requests found
......@@ -36,6 +36,8 @@ class InfoDumper:
# new fake device
addr = tools.get_random_address()
dev = Device("cli.experimental",addr)
dev.vendor_id = "IHSEV"
dev.product_id = "xAAL InfoDumper"
self.eng.add_device(dev)
self.eng.add_rx_handler(self.parse_answer)
print(f"xAAL Info dumper [{addr}]")
......
......@@ -31,8 +31,7 @@ class Scanner:
def __init__(self,engine):
self.eng = engine
# new fake device
self.addr = tools.get_random_uuid()
self.dev = Device("cli.experimental",self.addr)
self.dev = Device("cli.experimental",tools.get_random_address())
self.eng.add_device(self.dev)
self.eng.add_rx_handler(self.parse_answer)
......@@ -43,7 +42,7 @@ class Scanner:
self.devtype = devtype
self.seen = []
logger.info("[%s] searching [%s]" % (self.addr,self.devtype))
logger.info("[%s] searching [%s]" % (self.dev.address,self.devtype))
self.eng.send_isAlive(self.dev,self.devtype)
print("="*70)
......@@ -61,7 +60,7 @@ class Scanner:
def parse_answer(self,msg):
if msg.is_alive():
# hidding myself
if msg.source == self.addr:
if msg.source == self.dev.address:
return
#it is really for us ?
if self.devtype != 'any.any':
......
......@@ -31,6 +31,5 @@ def main():
dumper.query(k)
print("Time : %0.3f sec (%d devices)" % (time.time() -t0,len(devs)))
if __name__=='__main__':
main()
......@@ -63,7 +63,7 @@ class MessageFactory(object):
result.append(msg.version)
result.append(msg.timestamp[0])
result.append(msg.timestamp[1])
result.append(cbor.dumps(msg.targets))
result.append(cbor.dumps([t.bytes for t in msg.targets]))
# Format payload & ciphering
buf = []
......@@ -146,11 +146,9 @@ class MessageFactory(object):
msg.body = payload[4]
""" TDB
# Sanity check incomming message
if not tools.is_valid_addr(msg.source):
if not tools.is_valid_address(msg.source):
raise MessageParserError("Wrong message source [%s]" % msg.source)
"""
return msg
#####################################################
......@@ -170,7 +168,7 @@ class MessageFactory(object):
message.source = dev.address
message.devtype = dev.devtype
message.targets = [t.bytes for t in targets]
message.targets = targets
message.timestamp = build_timestamp()
if msgtype:
......@@ -215,18 +213,15 @@ class Message(object):
""" Message object used for incomming & outgoint message """
def __init__(self):
self.body = {} # message body
self.header = {} # dict used to store msg headers
self.timestamp = None # message timestamp
self.version = config.STACK_VERSION # message API version
self.__targets = [] # target property
def __get_header_value(self, key):
""" hack to avoid missing keys in header """
# drop KeyError while playing w/ message keys
if key in self.header.keys():
return self.header[key]
return None
self.timestamp = None # message timestamp
self.source = None # message source
self.devtype = None # message devtype
self.msgtype = None # message type
self.action = None # message action
self.body = {} # message body
@property
def targets(self):
......@@ -237,43 +232,12 @@ class Message(object):
if not isinstance(values, list):
raise MessageError("Expected a list for targetsList, got %s" % (type(values),))
for uid in values:
# TBD
#if not tools.is_valid_addr(val):
# raise MessageError("Bad target addr: %s" % val)
self.__targets.append(uid)
#self.__targets = values
@property
def devtype(self):
return self.__get_header_value('devType')
@devtype.setter
def devtype(self, value):
self.header['devType'] = value
@property
def source(self):
return self.__get_header_value('source')
@source.setter
def source(self, value):
self.header['source'] = value
@property
def msgtype(self):
return self.__get_header_value('msgType')
@msgtype.setter
def msgtype(self, value):
self.header['msgType'] = value
@property
def action(self):
return self.__get_header_value('action')
if not tools.is_valid_address(uid):
raise MessageError("Bad target addr: %s" % uid)
self.__targets = values
@action.setter
def action(self, value):
self.header['action'] = value
def targets_as_string(self):
return [str(k) for k in self.targets]
#####################################################
......@@ -298,30 +262,20 @@ class Message(object):
def dump(self):
""" dump log a message """
logger.debug("== Message (0x%x) ======================" % id(self))
logger.debug("*****Header*****")
if 'devType' in self.header:
logger.debug("devType \t%s" % self.devtype)
if 'action' in self.header:
logger.debug("action: \t%s" % self.action)
if 'msgType' in self.header:
logger.debug("msgType: \t%s" % MessageType(self.msgtype))
if 'source' in self.header:
logger.debug("source: \t%s" % self.source)
logger.debug("version: \t%s" % self.version)
logger.debug("targets: \t%s" % self.targets)
logger.debug(f"version | {self.version}")
logger.debug(f"targets | {self.targets_as_string()}")
logger.debug(f"timestamp | {self.timestamp}")
logger.debug(f"source | {self.source}")
logger.debug(f"devType | {self.devtype}")
logger.debug(f"msgType | {MessageType(self.msgtype)}")
logger.debug(f"action | {self.action}")
if self.body:
logger.debug("*****Body*****")
logger.debug("== body ==")
logger.debug("%s \t" % self.body)
def __str__(self):
l = ["<Message (0x%x)>" % id(self),]
if 'source' in self.header: l.append(self.source)
if 'devType' in self.header: l.append(self.devtype)
if 'msgType' in self.header: l.append(self.msgtype)
if 'action' in self.header: l.append(self.action)
if self.body: l.append(str(self.body))
return " ".join(l)
def __repr__(self):
return f"<xaal.Message {id(self):x} {self.source} {self.devtype} {self.msgtype} {self.action}>"
def is_request(self):
if MessageType(self.msgtype) == MessageType.REQUEST:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment