寻求一个方案

奔雷手 2011-09-04 12:53:23
没有接触过硬件通信方面的内容,故来请教:
一台PC机,多台硬件设备,数据库。
PC机给多台硬件设备发送指令(串口/网口),硬件设备返回数据,PC机判断数据的准确性 然后记入数据库。
1,PC发送数据 是否需要多线程来处理(但是感觉发送指令并没有冲突);
2,PC接受数据 是否需要多线程并写入数据库,是创建多线程接受数据还是 创建多线程 写入数据库 还是两者都要;
...全文
79 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
haitao 2011-09-05
  • 打赏
  • 举报
回复
读串口:60x500/5=6k/s
写数据库:60x500/15=2k/s sql=2k/s x 4=8k/s

这样的数据压力,应该不用 多线程去读写 也能实现了
奔雷手 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sz_haitao 的回复:]
每次多少字节的数据?

50~200台 是通过多串口卡?也不可能那么多端口啊
[/Quote]
目前最多预计是60台(要求客户限制60台陪一台PC),是多串口卡MOXA。
最多的一次返回数据500 byte
cntigercat 2011-09-04
  • 打赏
  • 举报
回复
用时钟控制线程
haitao 2011-09-04
  • 打赏
  • 举报
回复
每次多少字节的数据?

50~200台 是通过多串口卡?也不可能那么多端口啊
奔雷手 2011-09-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sz_haitao 的回复:]
接收,只要数据发送频率不是很快,一个线程最好
全部保存在内存,写数据库应该一个线程就行了

关键还是看 设备的数据发送频率 及 设备台数
[/Quote]
发送指令 5秒一次,正常情况下接收数据5秒一次,写入数据库是15秒一次。
硬件设备有50~200台。
haitao 2011-09-04
  • 打赏
  • 举报
回复
接收,只要数据发送频率不是很快,一个线程最好
全部保存在内存,写数据库应该一个线程就行了

关键还是看 设备的数据发送频率 及 设备台数
奔雷手 2011-09-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hongss 的回复:]
如果数据发送频率不是很快的话,分时采样就足够了
[/Quote]
发送频率很快,但是计入数据库的频率就不用那么快
hongss 2011-09-04
  • 打赏
  • 举报
回复
如果数据发送频率不是很快的话,分时采样就足够了

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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