spi flash存储离线数据以及设备离线正常使用的分析

spi flash 擦写寿命最少10万次,文件系统模式应该擦写次数会多些,具体多少,温度,电压等等相关。理论计算意义不大。

flash存放的卡内金额仅仅是给用户参考的:单片机具有读写权限,服务器仅仅就是写权限,读卡内金额无意义。

离线消费记录的保存:按消费次数保存。

问题点在于,卡内金额如何保存,保存到flash何处,以什么规则确定flash地址,取卡号后4位,no,重复了呢,麻烦,想了想,还是初始化时仅仅初始化卡号,初次刷卡时,设备端发现卡号地址是默认值,请求服务器分配地址,然后写卡地址,写flash。这是一种方式,还有一种就是初始化时,按照一定规则分配地址,想了想有点复杂。还是服务器统一分配比较好。

就是初次刷卡,前提是设备在线,服务器收到卡号的查询包,判断以下几个约束条件

1.该卡号是不是在代理商该设备名下(关键词:代理商手机号,设备号imei或者自定义id,可能代理商有几百台设备,一个客户不可能到所有设备取水,限制在居住附近的几台设备取水);

2.判断该卡是否已经分配flash存储区;已经分配直接下发更新flash卡内金额,未分配地址,获取已经分配的最大地址+1;

按照卡号+卡内金额 8个字节 一个扇区4k,能存512张卡,举个栗子,4Mbyte的flash 一共1024个扇区,前500扇区和后500扇区

互相备份,500*512=256000,25万6千张卡,剩下的24个扇区存离线数据:24*512=12288笔;

具体例子分析:

2台设备 alice和bob,alice和bob同时在线,没问题,

alice在线,bob离线,

相互刷单独刷,离线的可能有问题

alice离线,bob在线

相互刷单独刷,离线的可能有问题

alice离线,bob离线;

这种情况就是在若干台离线的设备上刷卡,由于数据不能同步,可能导致代理商损失,概率较小,一旦联网,钱会扣除。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值