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


Python Transport.nfcSetRecordData方法代码示例

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


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

示例1: MicroNFCBoard

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

#.........这里部分代码省略.........
        
        return spRecordNumber
        
    def _generateTextRecord(self, recordNumber, record, spRecordNumber):
        languageCodeBuf = array("B")
        languageCodeBuf.fromstring(record.language)
       
        textBuf = array("B")
        textBuf.fromstring(record.text)
        
        self._transport.nfcSetRecordInfo(recordNumber, 2, [{v: k for k, v in TEXT_ENCODING.items()}[record.encoding], len(languageCodeBuf), len(textBuf)])
        
        return spRecordNumber
        
    def _generateSmartPosterRecord(self, recordNumber, record, recordsStart):
        self._transport.nfcSetRecordInfo(recordNumber, 3, [recordsStart, len(record.records)])
        spRecordNumber = recordsStart
        
        for spRecord in record.records:
            self._addNdefRecord(spRecordNumber, spRecord, 0, False) #No sub records
            spRecordNumber += 1
            
        return spRecordNumber
    
    def _generateMIMERecord(self, recordNumber, record, spRecordNumber):
        mimeTypeBuf = array("B")
        mimeTypeBuf.fromstring(record.mimeType)
       
        dataBuf = array("B", record.data)
        
        self._transport.nfcSetRecordInfo(recordNumber, 4, [len(mimeTypeBuf), len(dataBuf)])
        
        return spRecordNumber
    
    def _setNdefRecord(self, recordNumber, record, recordsStart, spAllowed = True):
        funcs = {   URIRecord : self._setURIRecord,
                    TextRecord : self._setTextRecord,
                    SmartPosterRecord : self._setSmartPosterRecord,
                    MIMERecord : self._setMIMERecord,
                }
        
        if( not spAllowed and type(record) == SmartPosterRecord ):
            raise SmartPosterNestingException()
                
        return funcs[type(record)](recordNumber, record, recordsStart)
        
    def _setURIRecord(self, recordNumber, record, spRecordNumber):
        #Try to get prefix
        buf = array("B")
        buf.fromstring(record.uri)
        prefix, length = self._encodePrefix(buf[0:36])
        
        self._setRecordData(recordNumber, 0, buf[length:])
        
        return spRecordNumber
        
    def _setTextRecord(self, recordNumber, record, spRecordNumber):
        languageCodeBuf = array("B")
        languageCodeBuf.fromstring(record.language)
       
        textBuf = array("B")
        textBuf.fromstring(record.text)
        
        self._setRecordData(recordNumber, 0, languageCodeBuf)
        self._setRecordData(recordNumber, 1, textBuf)
        
        return spRecordNumber
        
    def _setSmartPosterRecord(self, recordNumber, record, recordsStart):
        spRecordNumber = recordsStart
        
        for spRecord in record.records:
            self._setNdefRecord(spRecordNumber, spRecord, 0, False) #No sub records
            spRecordNumber += 1
            
        return spRecordNumber
    
    def _setMIMERecord(self, recordNumber, record, spRecordNumber):
        mimeTypeBuf = array("B")
        mimeTypeBuf.fromstring(record.mimeType)
       
        dataBuf = array("B", record.data)
        
        self._setRecordData(recordNumber, 0, mimeTypeBuf)
        self._setRecordData(recordNumber, 1, dataBuf)
        
        return spRecordNumber

    def _encodePrefix(self, uri):
        prefix, length = self._transport.nfcEncodePrefix(uri)
        return prefix, length
    
    def _setRecordData(self, recordNumber, item, itemData):
        itemLength = len(itemData)
        itemOff = 0
        while itemOff < itemLength:
            chunkLength = min(CHUNK_SIZE, itemLength - itemOff)
            buf = array("B", itemData[itemOff:itemOff+chunkLength])
            self._transport.nfcSetRecordData(recordNumber, item, itemOff, buf)
            itemOff += chunkLength
开发者ID:oliviermartin,项目名称:micronfcboard-python,代码行数:104,代码来源:board.py


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