From 89a5f31634fb9b8d3a6774b027be6ae01f21de42 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 31 Mar 2008 18:42:58 +0200 Subject: * host/mex: - added DATE request. - start node only when date has been received. --- host/mex/mex/hub.py | 4 ++++ host/mex/mex/node.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/host/mex/mex/hub.py b/host/mex/mex/hub.py index 79b18286..5255ae1d 100644 --- a/host/mex/mex/hub.py +++ b/host/mex/mex/hub.py @@ -143,6 +143,10 @@ class Hub: assert self.wait_date >= self.hub.date else: self.wait_date = None + elif m.mtype == mex.DATE: + date = Msg (mex.DATE) + date.push ('L', self.hub.date) + self.send (date) elif m.mtype == mex.REQ: m.pop ('B') mr = Msg (mex.REQ) diff --git a/host/mex/mex/node.py b/host/mex/mex/node.py index 15cc5c2e..aa980c61 100644 --- a/host/mex/mex/node.py +++ b/host/mex/mex/node.py @@ -44,6 +44,11 @@ class Node: self.handlers = { } self.register (mex.DATE, lambda msg: self.handle_DATE (msg)) self.register (mex.REQ, lambda msg: self.handle_REQ (msg)) + # Synchronise. + rsp = None + while rsp == None or rsp.mtype != mex.DATE: + rsp = self.recv () + self.dispatch (rsp) def wait (self, date = None): """Wait forever or until a date is reached.""" -- cgit v1.2.3