⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 packetsource.py

📁 tinyos2.0版本驱动
💻 PY
字号:
## Copyright (c) 2005-2006#      The President and Fellows of Harvard College.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:# 1. Redistributions of source code must retain the above copyright#    notice, this list of conditions and the following disclaimer.# 2. Redistributions in binary form must reproduce the above copyright#    notice, this list of conditions and the following disclaimer in the#    documentation and/or other materials provided with the distribution.# 3. Neither the name of the University nor the names of its contributors#    may be used to endorse or promote products derived from this software#    without specific prior written permission.## THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND CONTRIBUTORS ``AS IS'' AND# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE# ARE DISCLAIMED.  IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF# SUCH DAMAGE.## Author: Geoffrey Mainland <mainland@eecs.harvard.edu>#import signalimport sysimport tracebackfrom IO import *from ThreadTask import *DEBUG = Falserunner = ThreadTaskRunner()def finishAll():    global runner    runner.cancelAll()    runner.finish()class PacketSourceException(Exception):    def __init__(self, *args):        self.args = argsclass PacketSource(ThreadTask):    def __init__(self, dispatcher):        global runner        ThreadTask.__init__(self, runner)        self.dispatcher = dispatcher    def __call__(self):        try:            self.open()        except Exception, x:            if DEBUG:                print "Exception while opening packet source:"                print x                print traceback.print_tb(sys.exc_info()[2])            self.done = True        except:            if DEBUG:                print "Unknown exception while opening packet source"            self.done = True        while not self.isDone():            try:                packet = self.readPacket()            except IODone:                if DEBUG:                    print "IO finished"                break            except Exception, x:                if DEBUG:                    print "IO exception:"                    print x                    print traceback.print_tb(sys.exc_info()[2])                break            except:                if DEBUG:                    print "Unknown IO exception"                break            if packet:                try:#                     print "About to run packet dispatcher!"#                     for i in packet:#                         print ord(i)," ",#                     print                    self.dispatcher.dispatchPacket(self, packet)                except Exception, x:                    if DEBUG:                        print "Exception when dispatching packet:"                        print x                        print traceback.print_tb(sys.exc_info()[2])#                    break                except:                    if DEBUG:                        print "Unknown exception when dispatching packet"#                    break        try:            self.close()        except:            pass        self.finish()    def start(self):        global runner        runner.start(self)    def open(self):        pass    def close(self):        pass    def readPacket(self):        return None    def writePacket(self, packet):        pass

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -