请问大侠们,GPRS采集器的linux下程序处理读写问题!!!

布鲁克斯南南 2012-12-02 12:41:14
小弟的问题是 这样的 gprs 采集器 -- 256个表 读表时应该会发一个广播的地址,然后下面的表会回数据的, 但是256个表有不同的地址,首先说明的是这些表不是通过网络通信(采用rs485:半双工的通信方式,不能同时读写的)现在的问题是我把广播地址发下去了,下面的表会依依回数据,那么我要在程序里怎么来处理这种由不同地址发来的数据(下面的表应该算是客户端吧)这里应该应该只用到(read(),和write()两个函数了,因为我们在单个表的读写的时候就只用到这两个函数的) 我知道网络通信里可以用到(epoll()和,select()这些函数来处理吧)。。


--------大神们不明白的可以的留言啊。
------谢谢了!!
...全文
185 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
布鲁克斯南南 2012-12-13
  • 打赏
  • 举报
回复
引用 3 楼 yang79tao 的回复:
问题问得太不明白了,485怎么能连上电脑呢?如果转成了232,那就是一个串口读写程序而已,与gprs 采集器没有关系。 速度慢(比如串口),又没什么并发的,你彩用什么模式也不会提高其速度。 开两个线程即可,一个读,然后把数据放链表(防止阻塞读线程,本来就慢,再阻塞一下就慢得不行了)。 一个从链表里面取数据做业务。
嗯 原理差不多和你说的,我一开始以为485广播地址发下去后下面的表会有很多数据会回复的,485有是半双工的,后来发现没有什么并发的问题。
youngwolf 2012-12-13
  • 打赏
  • 举报
回复
问题问得太不明白了,485怎么能连上电脑呢?如果转成了232,那就是一个串口读写程序而已,与gprs 采集器没有关系。 速度慢(比如串口),又没什么并发的,你彩用什么模式也不会提高其速度。 开两个线程即可,一个读,然后把数据放链表(防止阻塞读线程,本来就慢,再阻塞一下就慢得不行了)。 一个从链表里面取数据做业务。
布鲁克斯南南 2012-12-13
  • 打赏
  • 举报
回复
-------------没人问津吗!
布鲁克斯南南 2012-12-02
  • 打赏
  • 举报
回复
跪求版主解决, ——————————————————————————给个提示也好啊!

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧