监控软件采用什么机制?(100分)

  • 主题发起人 主题发起人 nywjx
  • 开始时间 开始时间
N

nywjx

Unregistered / Unconfirmed
GUEST, unregistred user!
我要写一个程序,从前端机(通过串口)读取设备的状态(0或1),将其反映在程序的电子
地图上,还要每隔1~10秒向服务器发送这些设备的状态值。
我是这样做的:一个线程用来处理串口接收到的设备的状态值,同时向数据库中更新这些
状态值;一个线程从数据库中读取这些状态值,更新电子地图上的设备显示;
至于每隔1~10秒向服务器发送设备的状态值,我准备写另外一个小程序,驻留内存,
直接从数据库中读取设备的状态值后向服务器发送。
不知道各位还有没有更好的方案?
 
这样已经很好了。
不过有一点可以改进的,因为你线程之间是可以直接通信的,没必要再经数据库中转一次
接收状态的线程收到信息后,一是写到数据库,一是通知另一线程更新显示,当然了,线程
间同步做起来就没有你上面简单。
 
那我可以把向服务器发送这个功能合并到一起吗?我总觉得一个系统搞两个软件不太好
 
我还以为你特意分成两个呢
那你把发送的那个功能也做成一个线程就行了。
 
可这样会不会增加系统的负担呢?那样的话,整个软件就有四个线程了
 
可以把这个程序看成下位机的程序
我觉得你如此频繁的操作数据库,性能肯定有影响
在计算机中速度 cpu>>内存>>硬盘
所以,我建议使用动态实时数据库,你可以看看我的笔记
如果下位机只作这个运用,线程的问题倒是小问题
关键是硬盘的操作占用cpu
我写的下位机监控软件干的事比这个还要多,还要涉及可编程的控制,需要中断操作
 
to:wyddr
不错,写得挺好的。不过我有点小小的问题,也是个很菜的问题:怎么把数据表长驻内存?
 
去找一个TMemoryTable,Dev Express公司就有,去www.51delphi.com就有。
 
初始化读入--和数据结构对应
按照windows对内存的管理,不常用的会被放到虚拟内存(硬盘)上
你刷新这么频繁,不用担心

需要的功能做在一起,写起来也方便些
 
多人接受答案了。
 
后退
顶部