【问题标题】:How to deal with unstable data received from RFID reader?RFID读写器接收到的数据不稳定如何处理?
【发布时间】:2011-05-31 14:30:55
【问题描述】:

我的应用程序必须每 2 秒连接一次 RFID 阅读器并从其接收数据,因此它是在 django 框架上开发的。以下是 views.py 中的相关行:

HOST = '192.168.0.1'
PORT = 50007
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.settimeout(2)
soc.connect((HOST, PORT))
soc.send('tag.db.scan_tags(100)\r\n')
datum = soc.recv(128)

if datum.find("ok") > -1:
    soc.send('tag.read_id()\r\n')
    data = soc.recv(8192)

如果 RFID 阅读器在其字段中找到任何 RFID 标签,应用程序会将接收到的数据呈现为 {{ data }} 的模板。当字段中没有标签或无法读取标签时会出现问题,{{ data }} 变量将在页面上不显示任何内容。

我希望我的应用程序能够显示最后可以读取的数据。如果没有新数据,就显示最新的。只有当新数据出现时,数据才会被更改。这将使我的应用程序更加稳定。

有什么建议吗?非常感谢。

【问题讨论】:

    标签: python django rfid


    【解决方案1】:

    其中一个更简单的方法是使用 Django 的cache framework,并将数据存储在本地内存、memcached 或数据库等中。您可以缓存收到的任何数据,并使用缓存的数据,如果您不接收数据,或者它是错误的或其他:

    from django.core.cache import cache
    
    # set cached data
    cache.set('data', data)
    # get cached data
    cache.get('data')
    

    您还可以通过其他方式存储数据,例如在模型上。您可能应该将 RFID 读取部分移出视图,并使用celery(或其他东西)将其作为任务运行,保存结果,并在您的视图中使用最新保存的数据

    【讨论】:

    • 非常感谢。这对我真的很有帮助。
    猜你喜欢
    • 2012-04-19
    • 2014-07-04
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2020-12-30
    • 2011-05-22
    相关资源
    最近更新 更多