當前位置: 首頁>>代碼示例>>Python>>正文


Python Transport.nfcSetMessageInfo方法代碼示例

本文整理匯總了Python中transport.Transport.nfcSetMessageInfo方法的典型用法代碼示例。如果您正苦於以下問題:Python Transport.nfcSetMessageInfo方法的具體用法?Python Transport.nfcSetMessageInfo怎麽用?Python Transport.nfcSetMessageInfo使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在transport.Transport的用法示例。


在下文中一共展示了Transport.nfcSetMessageInfo方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: MicroNFCBoard

# 需要導入模塊: from transport import Transport [as 別名]
# 或者: from transport.Transport import nfcSetMessageInfo [as 別名]

#.........這裏部分代碼省略.........
        text = unicode(self._getRecordData(recordNumber, 1, textLength).tostring(), encoding)
        return TextRecord(text, languageCode, encoding)
    
    def _parseSmartPosterRecord(self, recordNumber, recordInfo):
        recordsStart = recordInfo[0]
        recordsCount = recordInfo[1]
        records = self._getNdefRecords(recordsStart, recordsCount)
        return SmartPosterRecord(records)
    
    def _parseMIMERecord(self, recordNumber, recordInfo):
        mimeTypeLength = recordInfo[0]
        dataLength = recordInfo[1]
        mimeType = unicode(self._getRecordData(recordNumber, 0, mimeTypeLength).tostring(), "utf-8")
        data = self._getRecordData(recordNumber, 1, dataLength)
        return MIMERecord(mimeType, data)
    
    def _decodePrefix(self, prefix):
        return self._transport.nfcDecodePrefix(prefix)
    
    def _getRecordData(self, recordNumber, item, itemLength):
        buf = array("B")
        while len(buf) < itemLength:
            chunkLength = min(CHUNK_SIZE, itemLength - len(buf))
            buf += self._transport.nfcGetRecordData(recordNumber, item, len(buf), chunkLength)
        return buf
    
    def _setNdefRecords(self, records):
        self._transport.nfcPrepareMessage(True, False)
        recordNumber = 0
        spRecordNumber = len(records) #Smart poster records after main records
        for record in records:
            spRecordNumber = self._addNdefRecord(recordNumber, record, spRecordNumber)
            recordNumber += 1
        self._transport.nfcSetMessageInfo(recordNumber)
        self._transport.nfcPrepareMessage(False, True)
        recordNumber = 0
        spRecordNumber = len(records) 
        for record in records:
            spRecordNumber = self._setNdefRecord(recordNumber, record, spRecordNumber)
            recordNumber += 1
        #self._transport.nfcSetMessageInfo(recordNumber)
        
    def _addNdefRecord(self, recordNumber, record, recordsStart, spAllowed = True):
        funcs = {   URIRecord : self._generateURIRecord,
                    TextRecord : self._generateTextRecord,
                    SmartPosterRecord : self._generateSmartPosterRecord,
                    MIMERecord : self._generateMIMERecord,
                }
        
        if( not spAllowed and type(record) == SmartPosterRecord ):
            raise SmartPosterNestingException()
                
        return funcs[type(record)](recordNumber, record, recordsStart)
        
    def _generateURIRecord(self, recordNumber, record, spRecordNumber):
        #Try to get prefix
        buf = array("B")
        buf.fromstring(record.uri)
        prefix, length = self._encodePrefix(buf[0:36])
        
        self._transport.nfcSetRecordInfo(recordNumber, 1, [prefix, len(buf[length:])])
        
        return spRecordNumber
        
    def _generateTextRecord(self, recordNumber, record, spRecordNumber):
        languageCodeBuf = array("B")
開發者ID:oliviermartin,項目名稱:micronfcboard-python,代碼行數:70,代碼來源:board.py


注:本文中的transport.Transport.nfcSetMessageInfo方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。