python - RFID读写器接收到的不稳定数据如何处理?

标签 python django rfid

我的应用程序必须每 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 }} 变量将在页面上显示任何内容。

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

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

最佳答案

其中一个更容易做的事情是使用 Django 的 cache framework ,并将数据存储在本地内存、memcached 或数据库等中。您可以缓存收到的任何数据,如果您没有收到数据,或者数据有误或其他原因,则可以使用缓存的数据:

from django.core.cache import cache

# set cached data
cache.set('data', data)
# get cached data
cache.get('data')

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

关于python - RFID读写器接收到的不稳定数据如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6183633/

相关文章:

python - PyQt 防止 QInputDialog 在 ESC/Enter 交叉单击时关闭

python - 比较不同估计器的分数是否正确?

Django 模板中的 PHP 脚本

javascript - Django-dashing 创建你自己的小部件

c# - 在 C# 中将 byte 转换为 bool

Android Mini PC MK802 RFID 编程使用外部阅读器

python - 使用唯一键和条件合并两个 Pandas 数据框

python - 如何在 Pandas DataFrame 中循环唯一的股票代码值?

python - 在 Django 模板上显示来自 API 的数据

android - 使用 Android 4.4 模拟 Mifare 卡