亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ramsymbols.py

?? 無線通信的主要編程軟件,是無線通信工作人員的必備工具,關天相關教程我會在后續傳上.
?? PY
?? 第 1 頁 / 共 2 頁
字號:
# "Copyright (c) 2000-2003 The Regents of the University of California.  # All rights reserved.## Permission to use, copy, modify, and distribute this software and its# documentation for any purpose, without fee, and without written agreement# is hereby granted, provided that the above copyright notice, the following# two paragraphs and the author appear in all copies of this software.# # IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT# OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY# OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.# # THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY# AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS# ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO# PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."## @author Kamin Whitehouse #"""\RamSymbols.py -- a tool for poking and peeking ram symbols on motes.To be used in conjunction with tinyos-1.x/contrib/nestfe/nesc/lib/RamSymbols"""import sys, string, time, typesfrom xml.dom import minidomimport pytos.util.nescDecls as nescDeclsimport pytos.util.RoutingMessages as RoutingMessagesimport pytos.Comm as Comm from copy import deepcopyclass RamSymbol( RoutingMessages.RoutingMessage ) :  #this is the variable the determines, on a blocking rpc call, how  #many messages will be queued up.  Should perhaps be bigger for large  #networks, but will generally be the same number for all rpc  #functions that use the same send and receive comm stacks.  msgQueueSize = 10    def __init__(self, xmlDefinition=None, parent=None) :    if xmlDefinition==None :      return    self.pokeResponseMsg = None    self.memAddress = int(xmlDefinition.getAttribute("address"))    length = int(xmlDefinition.getAttribute("length"))    typeDef = xmlDefinition.getElementsByTagName("type")[0]    self.isPointer = typeDef.getAttribute("typeClass") == "pointer"    self.isArray = xmlDefinition.hasAttribute("array")    symbolType = parent.app.types[typeDef.getAttribute("typeName")]    #if symbolType.size > parent.app.enums.MAX_RAM_SYMBOL_SIZE :    if self.isPointer :      symbolType = nescDecls.nescPointer(parent.app, symbolType)    if self.isArray :      if length % symbolType.size == 0 :        numElements = length // symbolType.size      else :        raise Exception("Could not discern ram symbol array length")      symbolType = nescDecls.nescArray(numElements, symbolType)    structArgs = []    if type(symbolType) == nescDecls.nescStruct :      self.isStruct = True      structArgs.append(symbolType)    else :      structArgs.append(xmlDefinition.getAttribute("name"))      structArgs.append( ("value", symbolType) )    #now initialize this command as a TosMsg object (which is really a nescStruct)    RoutingMessages.RoutingMessage.__init__(self, parent, 0, *structArgs)    if self.isStruct :      self.__dict__["name"] = xmlDefinition.getAttribute("name")    if length != self.size :        raise Exception("Ram symbol size incorrect")    self.pokeResponseMsg = nescDecls.TosMsg(self.memAddress, "PokeResponseMsg",                                          ("value", parent.app.types.result_t))     def poke(self, value=None, arrayIndex = None, dereference=False, **nameArgs) :    if not self.parent.app.__dict__.has_key("RamSymbolsM") :      raise Exception("You must include the contrib/hood/tos/lib/RamSymbols/RamSymbolsM module in your nesc application in order to poke or peek at ram symbols")    func = self.parent.app.RamSymbolsM.poke    if arrayIndex != None :      if self.isArray :        if dereference == True :          if self.isPointer:            ptr = self.value["value"].elementType            newValue = deepcopy(ptr.value)            func.symbol.memAddress = self.memAddress + ptr.size * arrayIndex            func.symbol.length = newValue.size          else :            raise Exception("Dereferencing is only allowed for pointer types")        else :          newValue = deepcopy(self.value["value"].elementType)          func.symbol.memAddress = self.memAddress + newValue.size * arrayIndex          func.symbol.length = newValue.size      else :        raise Exception("Indexing a poke is only supported for arrays")    elif dereference == True :      if self.isPointer and self.isArray :        raise Exception("Poke cannot be used to dereference an entire array of pointers")      elif not self.isPointer :        raise Exception("Dereferencing is only allowed for pointer types")      newValue = deepcopy(self.value["value"].value)      func.symbol.memAddress = self.memAddress      func.symbol.length = newValue.size    else :       if self.isArray and self.size > self.parent.app.ramSymbol_t.data.size :          raise Exception("Array is too large for poking.  You must index the poke")      if self.isStruct :        newValue = deepcopy(self)      elif self.isPointer :        newValue = self.parent.app.types["unsigned int"]      else :        newValue = deepcopy(self.value["value"])      func.symbol.memAddress = self.memAddress      func.symbol.length = newValue.size    if func.symbol.length > self.parent.app.types.ramSymbol_t.data.size :      raise Exception("Ram symbol size too large for msg buffer")    if value != None :      self._assignParam(newValue, value, "value")    newBytes = newValue.getBytes()    oldBytes = func.symbol.data.getBytes()    newBytes = oldBytes.replace(oldBytes[:func.symbol.length], newBytes, 1)    func.symbol.data.setBytes(newBytes)    func.symbol.dereference = dereference    result = func(**nameArgs)    if result != None:      return map(self.parsePokeResponse, result)      def parsePokeResponse(self, msg) :    response = deepcopy(self.pokeResponseMsg)    if msg.nescType == "RpcResponseMsg":      response.value=0      addr = msg.sourceAddress    else :      if msg.value["value"].value != self.memAddress and (not self.isArray or          (msg.value["value"].value -self.memAddress) % self.value["value"].elementType.size !=0 or          msg.memAddress >= self.memAddress + self.len * self.value["value"].elementType.size):        raise Exception("Memory address mismatch in poke response")      response.value = 1      addr = msg.parentMsg.sourceAddress    response.parentMsg = msg    response.nescType = "".join( [self.nescType, ".poke(),  nodeID=%d"%addr] )    return response  def peek(self, arrayIndex = None, dereference=False, **nameArgs) :    if not self.parent.app.__dict__.has_key("RamSymbolsM") :      raise Exception("You must include the contrib/hood/tos/lib/RamSymbols/RamSymbolsM module in your nesc application in order to poke or peek at ram symbols")    func = self.parent.app.RamSymbolsM.peek    if arrayIndex != None :      #change memaddress to memAddres + array index      if self.isArray :        if dereference :          if self.isPointer :            func.memAddress = self.memAddress + self.value["value"].elementType.size * arrayIndex            #set length of memcpy to ptr dereferenced value            func.length = self.value["value"].elementType.value.size          else :            raise Exception("Dereferencing a peek is only allowed for pointers")        else :          func.memAddress = self.memAddress + self.value["value"].elementType.size * arrayIndex          func.length = self.value["value"].elementType.size      else :        raise Exception("Indexing a peek is only allowed for arrays")    elif dereference :      #if this is an array or ptrs, fail      if self.isArray :        raise Exception("peek cannot be used to dereference an array of pointers")

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线观看一区二区三区| 精品国产乱码久久久久久闺蜜 | 91婷婷韩国欧美一区二区| 亚洲午夜影视影院在线观看| 久久精品在这里| 欧美色视频在线| 成人激情开心网| 精品在线观看视频| 香蕉久久夜色精品国产使用方法| 国产日韩精品久久久| 欧美一区二区免费观在线| 91麻豆福利精品推荐| 国产精品自拍毛片| 日韩电影免费在线观看网站| 亚洲色图第一区| 国产色产综合产在线视频| 欧美一三区三区四区免费在线看 | 91久久人澡人人添人人爽欧美| 久久国产综合精品| 亚洲国产aⅴ天堂久久| 亚洲欧美综合网| 国产日产亚洲精品系列| 欧美不卡一区二区三区| 7777精品伊人久久久大香线蕉的| 色婷婷久久99综合精品jk白丝| 成人网在线播放| 国产成人精品三级| 国产精品系列在线播放| 极品美女销魂一区二区三区| 青草av.久久免费一区| 偷拍一区二区三区| 亚洲成在线观看| 亚洲国产日韩精品| 亚洲国产综合人成综合网站| 一区二区三区四区乱视频| 亚洲久本草在线中文字幕| 亚洲欧洲日韩在线| 亚洲三级小视频| 亚洲乱码中文字幕| 亚洲精品视频免费看| 亚洲精品免费在线| 一级精品视频在线观看宜春院 | 国产成人丝袜美腿| 国产精品白丝av| 高清不卡一区二区在线| 成人免费看视频| 不卡欧美aaaaa| 色婷婷综合五月| 欧美系列在线观看| 在线不卡免费欧美| 欧美一区二区三区免费观看视频| 日韩欧美成人午夜| 精品久久久久久久久久久久久久久 | 欧美亚洲综合另类| 欧美日韩一区二区三区四区| 51精品视频一区二区三区| 欧美一区二区三区的| xf在线a精品一区二区视频网站| 国产亚洲成av人在线观看导航| 国产欧美日韩在线看| 亚洲天堂2016| 日韩电影免费在线观看网站| 精品一区二区在线播放| 成人福利电影精品一区二区在线观看| 9人人澡人人爽人人精品| 91久久精品午夜一区二区| 制服丝袜中文字幕亚洲| 久久蜜臀精品av| 最新欧美精品一区二区三区| 午夜视频在线观看一区二区| 精品一区二区在线免费观看| 成人午夜在线免费| 欧美日韩中文国产| 精品国产第一区二区三区观看体验| 欧美国产精品一区二区| 一区二区三区波多野结衣在线观看| 午夜激情一区二区| 懂色av一区二区夜夜嗨| 欧美午夜一区二区三区| 亚洲精品一区二区三区四区高清 | 亚洲精品一区二区三区精华液| 国产精品美女久久久久久久久久久 | 国产乱一区二区| 91美女在线视频| 精品国产制服丝袜高跟| 亚洲欧美视频在线观看视频| 美国一区二区三区在线播放| 99免费精品在线观看| 欧美福利视频导航| 国产精品久久综合| 日韩和欧美的一区| 99久久精品国产一区二区三区 | 欧美日韩一级片在线观看| 久久久www免费人成精品| 洋洋成人永久网站入口| 国产一区二区福利| 欧美视频在线播放| 国产精品网曝门| 美女视频一区在线观看| 在线视频你懂得一区二区三区| 久久久不卡网国产精品一区| 天堂在线一区二区| 色8久久人人97超碰香蕉987| 国产亚洲人成网站| 青青草成人在线观看| 91精品1区2区| 国产精品嫩草99a| 久久99精品久久久久久| 欧美日韩精品一区二区三区四区| 国产精品久久久久久久岛一牛影视| 美女久久久精品| 欧美在线影院一区二区| 中文字幕亚洲综合久久菠萝蜜| 国产真实乱子伦精品视频| 制服丝袜av成人在线看| 一区二区三区欧美在线观看| www.久久精品| 中文字幕乱码日本亚洲一区二区| 久久av资源网| 日韩网站在线看片你懂的| 亚洲成人手机在线| 欧美自拍丝袜亚洲| 亚洲卡通动漫在线| 91天堂素人约啪| 亚洲色图视频免费播放| 成人av中文字幕| 中文欧美字幕免费| 成人免费视频一区二区| 久久久久久久久久电影| 国产在线精品一区二区夜色| 日韩视频免费直播| 美国精品在线观看| 7799精品视频| 日韩成人伦理电影在线观看| 欧美裸体一区二区三区| 亚洲成人免费视| 欧美日本国产一区| 日韩二区三区四区| 日韩精品一区二| 久久电影国产免费久久电影 | 亚洲欧美日韩国产中文在线| 99久久精品国产导航| 成人欧美一区二区三区小说 | 免费看黄色91| 日韩欧美国产三级| 久久精品噜噜噜成人88aⅴ| 欧美变态口味重另类| 国产精品自拍在线| 国产丝袜在线精品| 91在线观看污| 一区二区三区不卡视频| 欧美日韩国产欧美日美国产精品| 亚洲丰满少妇videoshd| 日韩欧美资源站| 国产黄人亚洲片| 中文字幕在线不卡视频| 欧美性xxxxxxxx| 蜜桃av一区二区三区| 国产欧美一区二区在线| 91蜜桃在线免费视频| 午夜国产不卡在线观看视频| 精品噜噜噜噜久久久久久久久试看| 国产盗摄一区二区| 亚洲精品中文在线观看| 欧美精品777| 国产乱人伦精品一区二区在线观看 | 国产精品久久影院| 精品视频一区 二区 三区| 免费的国产精品| 欧美激情在线看| 欧美日韩日日夜夜| 韩国av一区二区三区| 亚洲欧美国产高清| 日韩视频免费直播| av电影在线观看一区| 三级影片在线观看欧美日韩一区二区 | 色综合久久中文综合久久牛| 亚瑟在线精品视频| 久久亚洲综合色一区二区三区| av不卡免费电影| 免费成人av在线| 亚洲免费在线看| 久久奇米777| 在线视频一区二区三区| 国产乱妇无码大片在线观看| 亚洲激情av在线| 久久久久久久性| 欧美日本一区二区三区四区| 高清不卡一区二区| 美女尤物国产一区| 一区二区三区四区视频精品免费| 精品国产免费一区二区三区四区 | 亚洲一区二区在线观看视频| www成人在线观看| 欧美三级午夜理伦三级中视频| 国产精品99久久久久久有的能看| 亚洲综合一区二区精品导航| 国产网站一区二区| 欧美一区二区免费视频| 日本久久电影网|