|
|
最近忙着写论文,好久没来了,这里还是很热闹啊。
在做论文过程中遇到了一些问题,贴出来寻求大家的帮助。
-----------------------------------
我的论文如下:
1。客户端PC:通过浏览器访问Web服务器,读取空调参数并可以设置参数;
2。Web服务器端arm10:在pxa270的板子上实现一个基于嵌入式linux系统的Web服务器,并用Qt做了GUI,用CGI写了一些交互的服务端脚本;
3。模拟空调控制器端arm7:模拟空调的一个简单控制器,基于无操作系统的编程,可以实现串口的收发,收是中断解决的。
远处的客户端通过该Web服务器来达到控制另一个arm7的板子。三者无论哪一个改变空调参数,要保持三者的状态设置一致。
-----------------------------------
关于即时显示,Web服务器端与arm7之间的串口传输,三者同步,还没搞定。其余的工作已经完成。
先说一下我的实现方法:客户端PC访问arm10的Web服务器,一个读取和一个设置空调的参数的表单,在服务器端通过两个cgi脚本实现,设置的参数先保存在服务器端的一个文本文件,读取参数也是从该文本文件里读取。 服务器端Qt实现的GUI也可以读取和设置空调参数,分别用两个slots来实现,读取和设置同样是对那个文本文件。
1。即时显示问题
客户端或者服务器端,任一端设置了空调的参数,我必须去点击按钮,才能得到其最新的设置。想做成任一端改变,空调的参数就会即时改变的那种。想通过监视文本文件的修改的时间,如果时间变了,将自动运行read slots或者read.cgi。后来试试发现不行,不知道有没有什么更好的方法?
2。服务器arm10和arm7之间的串口传输
服务器每隔几秒钟通过串口发命令过去查询arm7的状态,arm7中断程序收到数据,并把空调状态参数通过串口发给服务器端。服务器端的收发通过一个select函数来控制,判断串口设备是否有数据,有数据就读并进行处理(写入文本文件中),没有数据就继续发发命令给arm7查询arm7状态。但是select函数好像不是很稳定。调试时,当我运行了收的程序,另一个板子发数据过来,可select还是返回为0(返回为0表示无数据)。 有没有更好的更稳定的方法实现?
3。三端同步
前面两个问题解决了,这个问题估计就比较容易了。
还有就是,感觉Web服务器端的程序太散了,如何协调他们的工作非常难。能否做成一个可执行文件里? 能否用多进程或者多线程来处理? 本人对进程和线程不太熟。能否不用文本文件,有什么其它更好的方法吗?
内容可能比较多,烦请各位了。在此谢过!!! |
|