Skip to content

Instantly share code, notes, and snippets.

@creamidea
Last active December 31, 2015 19:39
Show Gist options
  • Save creamidea/8035348 to your computer and use it in GitHub Desktop.
Save creamidea/8035348 to your computer and use it in GitHub Desktop.
def addListener(self, listener, msgClass):
if listener not in self.listeners:
self.listeners[listener] = {}
amTypes = self.listeners[listener]
amTypes[msgClass.get_amType()] = msgClass
def dispatchPacket(self, source, packet):
...
for l in self.listeners:
amTypes = self.listeners[l]
if amType in amTypes:
try:
msgClass = amTypes[amType]
msg = msgClass(data=data,
data_length = len(data),
addr=serial_pkt.get_header_src(),
gid=serial_pkt.get_header_group())
l.receive(source, msg)
except Exception, x:
print >>sys.stderr, x
print >>sys.stderr, traceback.print_tb(sys.exc_info()[2])
################################
#数据格式
listeners = {
listener : {
msgClass.get_amType(): msgClass
...
}
listener : {
msgClass.get_amType(): msgClass
...
}
...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment