加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何处理从RFID阅读器收到的不稳定数据?

发布时间:2020-12-20 13:23:32 所属栏目:Python 来源:网络整理
导读:我的应用程序必须每2秒钟从RFID阅读器连接和接收数据,因此它已在 django框架上开发.以下是views.py中的相关行: HOST = '192.168.0.1'PORT = 50007soc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)soc.settimeout(2)soc.connect((HOST,PORT))soc.sen
我的应用程序必须每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)rn')
datum = soc.recv(128)

if datum.find("ok") > -1:
    soc.send('tag.read_id()rn')
    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读取部分移出视图,并使用celery(或其他)将其作为任务运行,保存结果,并在视图中使用最新保存的数据

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读