【问题标题】:Control the sound of an NFC reader控制 NFC 阅读器的声音
【发布时间】:2018-11-19 17:33:55
【问题描述】:

我正在使用 pynfc 读取 NFC 标签。我有一个 ACR 122U USB NFC 读/写单元。该单元在读取标签时能够发出声音,但是我无法在 pynfc 文档中找到有关控制它的任何内容。有没有办法使用 pynfc、其他 python 或 linux 操作系统来调用 NFC 阅读器的声音?

【问题讨论】:

  • 该设备的API documentation 列出了一些用于控制“蜂鸣器”的命令(所述文档的第 6.2 和 6.7 节)。您是否尝试过发送这些命令?
  • @JonahBishop 谢谢,这似乎是一个好的开始,但我不知道如何以这种方式控制阅读器。

标签: python nfc


【解决方案1】:

以下是蜂鸣器蜂鸣器的示例: 在第 75 行将以下代码添加到 pynfc/__init__.py。(在相同缩进的 def poll 上方)

def buzz(self):
    ba = (c_ubyte * 9)(*[0xFF,0x00,0x40,0x00,0x4C,0x10,0x00,0x01,0x01])
    result = nfc.nfc_initiator_transceive_bytes.argtypes[3]._type_()
    nfc.nfc_initiator_transceive_bytes(self.pdevice, ctypes.byref(ba), len(ba), ctypre.byref(result),2,1000)

从您的脚本中调用 nfc.buzz()。

我没有测试代码的设备。另请注意,您不能同时进行投票和嗡嗡声。

【讨论】:

    【解决方案2】:

    对于nfcpy,我发现如果on-connect 函数返回True,如果阅读器有能力,蜂鸣器和灯就会熄灭。

    #!/usr/bin/python
    import nfc
    import time
    import datetime
    
    def on_connect(tag):
        print('Last read: {}'.format(datetime.datetime.now()))
        return True
    
    while True:
        with nfc.ContactlessFrontend('usb') as clf:
            clf.connect(rdwr={'on-connect': on_connect, 'beep-on-connect': True})
        time.sleep(1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      相关资源
      最近更新 更多