当前位置: 首页>>代码示例>>Python>>正文


Python Transport.nfcGetRecordInfo方法代码示例

本文整理汇总了Python中transport.Transport.nfcGetRecordInfo方法的典型用法代码示例。如果您正苦于以下问题:Python Transport.nfcGetRecordInfo方法的具体用法?Python Transport.nfcGetRecordInfo怎么用?Python Transport.nfcGetRecordInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在transport.Transport的用法示例。


在下文中一共展示了Transport.nfcGetRecordInfo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: MicroNFCBoard

# 需要导入模块: from transport import Transport [as 别名]
# 或者: from transport.Transport import nfcGetRecordInfo [as 别名]
class MicroNFCBoard(object):
    @staticmethod
    def getBoard(number = 0):
        a = INTERFACE[usb_backend].getAllConnectedInterface(VID, PID)
        if((a != None) and (len(a) > number)):
            return MicroNFCBoard(a[number])
        return None
    
    @staticmethod
    def getAllBoards():
        return [MicroNFCBoard(i) for i in INTERFACE[usb_backend].getAllConnectedInterface(VID, PID)]
    
    def __init__(self, intf):
        self._intf = intf
        self._transport = Transport()
        self._id = None
        self._version = None
        self._polling = False
        self._connected = False
        self._ndefMessagePresent = False
        self._ndefRecords = None
        self._ndefRead = False
        
    def open(self):
        self._transport.open(self._intf)
        version, revision, self._id = self._transport.info()
        self._version = (version, revision)
        
    def close(self):
        self._transport.close()
        
    @property
    def id(self):
        return self._id
    
    @property
    def connected(self):
        self._updateStatus()
        return self._connected
    
    @property
    def polling(self):
        self._updateStatus()
        return self._polling
    
    @property
    def ndefMessagePresent(self):
        self._updateStatus()
        return self._ndefMessagePresent
    
    @property
    def ndefRecords(self):
        self._updateStatus()
        if self._ndefMessagePresent and not self._ndefRead:
            self._ndefRecords = self._getNdefMessageRecords()
            self._ndefRecordsRead = True
        return self._ndefRecords
    
    @property
    def version(self):
        return self._version
    
    def getNfcInfo(self):
        return self._transport.nfcGetInfo()
    
    def reset(self):
        self._transport.reset(False)
        
    def startPolling(self):
        self._transport.nfcPoll(True)
        
    def stopPolling(self):
        self._transport.nfcPoll(True)
        
    def setLeds(self, led1, led2):
        self._transport.leds(led1, led2)
        
    def _updateStatus(self):
        status = self._transport.status()
        self._polling = (status & STATUS_POLLING) != 0
        self._connected = (status & STATUS_CONNECTED) != 0
        self._ndefMessagePresent = (status & STATUS_NDEF_PRESENT) != 0
        if not self._ndefMessagePresent:
            self._ndefRecordsRead = False
        
    def _getNdefRecords(self, start, count):
        records = []
        for recordNumber in range(start, start+count):
            #Get records info
            recordType, recordInfo = self._transport.nfcGetRecordInfo(recordNumber)
            funcs = {   0 : self._parseUnknownRecord,
                        1 : self._parseURIRecord,
                        2 : self._parseTextRecord,
                        3 : self._parseSmartPosterRecord,
                        4 : self._parseMIMERecord,
                    }
            record = funcs[recordType](recordNumber, recordInfo)
            if record != None:
                records += [record]
        return records
#.........这里部分代码省略.........
开发者ID:thejarle,项目名称:micronfcboard-python,代码行数:103,代码来源:board.py

示例2: MicroNFCBoard

# 需要导入模块: from transport import Transport [as 别名]
# 或者: from transport.Transport import nfcGetRecordInfo [as 别名]

#.........这里部分代码省略.........
        self._transport.nfcPoll(False, False, False)
        
    def ndefRead(self):
        self._transport.nfcOperation(True, False)
        
    def ndefWrite(self):
        self._transport.nfcOperation(False, True)
        
    def setLeds(self, led1, led2):
        self._transport.leds(led1, led2)
        
    def _updateStatus(self):
        status = self._transport.status()
        self._polling = (status & STATUS_POLLING) != 0
        self._connected = (status & STATUS_CONNECTED) != 0
        self._ndefPresent = (status & STATUS_NDEF_PRESENT) != 0
        self._ndefReadable = (status & STATUS_NDEF_READABLE) != 0
        self._ndefWriteable = (status & STATUS_NDEF_WRITEABLE) != 0
        self._ndefBusy = (status & STATUS_NDEF_BUSY) != 0
        self._ndefSuccess = (status & STATUS_NDEF_SUCCESS) != 0
        self._type2 = (status & STATUS_TYPE_MASK) == STATUS_TYPE2
        self._type4 = (status & STATUS_TYPE_MASK) == STATUS_TYPE4
        self._p2p = (status & STATUS_TYPE_MASK) == STATUS_P2P
        self._initiator = (status & STATUS_INITIATOR) != 0
        
        if not self._ndefPresent:
            self._ndefRead = False
            self._ndefRecords = None
        
    def _getNdefRecords(self, start, count):
        records = []
        for recordNumber in range(start, start+count):
            #Get records info
            recordType, recordInfo = self._transport.nfcGetRecordInfo(recordNumber)
            funcs = {   0 : self._parseUnknownRecord,
                        1 : self._parseURIRecord,
                        2 : self._parseTextRecord,
                        3 : self._parseSmartPosterRecord,
                        4 : self._parseMIMERecord,
                    }
            record = funcs[recordType](recordNumber, recordInfo)
            if record != None:
                records += [record]
        return records
    
    def _getNdefMessageRecords(self):    
        #Get message count
        recordsCount = self._transport.nfcGetMessageInfo()
        return self._getNdefRecords(0, recordsCount)
    
    def _parseUnknownRecord(self, recordNumber, recordInfo):
        return None
    
    def _parseURIRecord(self, recordNumber, recordInfo):
        uriPrefix = recordInfo[0]
        uriLength = recordInfo[1]
        uri = unicode(self._decodePrefix(uriPrefix).tostring() + self._getRecordData(recordNumber, 0, uriLength).tostring(), "utf-8")
        return URIRecord(uri)
    
    def _parseTextRecord(self, recordNumber, recordInfo):
        encoding = TEXT_ENCODING[recordInfo[0]]
        languageCodeLength = recordInfo[1]
        textLength = recordInfo[2]
        languageCode = unicode(self._getRecordData(recordNumber, 0, languageCodeLength).tostring(), "utf-8")
        text = unicode(self._getRecordData(recordNumber, 1, textLength).tostring(), encoding)
        return TextRecord(text, languageCode, encoding)
开发者ID:oliviermartin,项目名称:micronfcboard-python,代码行数:70,代码来源:board.py


注:本文中的transport.Transport.nfcGetRecordInfo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。