OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2711|回复: 10

无线通信数据存储与回补算法

[复制链接]

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
发表于 2018-1-4 21:36:46 | 显示全部楼层 |阅读模式
1金钱
在做无线通信时,经常会出现断网的情况,当终端向服务器发送数据不通时,将数据存储到本地,当网络通畅时,再将存储到本地的数据回补到服务器。
各位大神,有没有好一点的算法,求指教。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-1-5 00:52:54 | 显示全部楼层
估计MODBUS,可以解决你的问题,每发一个数据,都要等待应答。
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2018-1-6 21:18:19 | 显示全部楼层
正点原子 发表于 2018-1-5 00:52
估计MODBUS,可以解决你的问题,每发一个数据,都要等待应答。

原子哥,我了解一些MODBUS协议,这只是一个数据传输协议啊,有涉及数据存储与回补吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-1-7 01:18:26 | 显示全部楼层
jungle1989 发表于 2018-1-6 21:18
原子哥,我了解一些MODBUS协议,这只是一个数据传输协议啊,有涉及数据存储与回补吗?

这就是保证数据可靠传输的协议。
数据可以可靠传输,这不正是你要的么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-1-7 10:28:28 | 显示全部楼层
断网自己模块主动读取数据保存本地,这个能有啥通用算法,自己开发实现这个功能好了
一分耕耘一分收获。
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2018-1-7 14:16:06 | 显示全部楼层
搞个环形数组,完美解决你的问题
我有故事,你有酒吗
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2018-1-8 09:56:27 | 显示全部楼层
我可能没表达清楚,网络不通时,请数据保存在EEPROM,网络通畅时,再从EEPROM读出来,目前的算法是定义三个指针变量s,e,t,当写入EEPROM时,E += Bytes  (Bytes 表示存储的数据个数)。当读取EEPROOM时,S += Bytes,当缓存超过最大的条数时,t += Bytes。
回复

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
发表于 2018-1-8 16:01:55 | 显示全部楼层
我做过无线通信相似的应用,一段存储空间加一个写入点一个读取点,组成环形就可以了
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2018-1-10 16:37:41 | 显示全部楼层
jungle1989 发表于 2018-1-8 09:56
我可能没表达清楚,网络不通时,请数据保存在EEPROM,网络通畅时,再从EEPROM读出来,目前的算法是定义三个 ...

搞的复杂了,  flash写入你存储的当前数据条数  ,数据总数,后面跟你的数据,环形覆盖存储,就可以了
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2018-1-11 21:28:03 | 显示全部楼层
哆啦A萌 发表于 2018-1-8 16:01
我做过无线通信相似的应用,一段存储空间加一个写入点一个读取点,组成环形就可以了

但是你这个这样控制读取条数呢,可能存在的情况是:1、写入点超过了读取点,未超过最大环。2、写入点超过最大环,且超过了读取点,这样怎么来处理呢?
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2018-1-11 21:35:38 | 显示全部楼层
ssssssssssss 发表于 2018-1-10 16:37
搞的复杂了,  flash写入你存储的当前数据条数  ,数据总数,后面跟你的数据,环形覆盖存储,就可以了

我的理解,你的思路和8楼的综合起来好像可以完美解决哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-15 03:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表