最近因迁移一套老系统,是N年前用Delphi6开发的串口通讯程序,该程序在
WindowsServer2000服务器上能正常运行。现在要把这套程序拷贝到一台新
的WindowsServer2008服务器上运行时,发现访问不要前端串口设备,经
检查发现问题的情况大概是这样的:程序中建立串口通讯的参数中波特率是2400,
这个参数用于新服务器上,就不能建立与前端串口设备的通讯,除非改为9600就
可以了(采集程序和前端设备是同一个没有改变)。
想请教大家的是:
为什么同样的程序,在WIN2000和WIN2008下运行会出现
这样的问题呢?如果不改源程序中的通讯参数(波特率),是否能解决呢?
你试试在 2008 系统中操作超级终端,看看其中串口设置时是否有 2400 可选?偶刚才试过 WinXP 是有的。
如果没有,则只能用系统支持的波特率。
你的计算机硬件有变化么?如果仅仅是操作系统的问题,可以试试看虚拟机
谢谢两位的回复,我尝试了用别的串口程序,包括我自己用C#写的小程序,都能建立通信的,只是这个老程序不行,
这个老程序在老服务器上(WINDOWS200SERVER)上立马就正常。
我把老程序中的通信波特率改为9600后,用监控程序能看到串口有收、发字节的,数量应该也正确,但是程序就是不能接收到返回的数据,
看来这个接收的地方可能有问题吧?
回复caozhy,你说的“试试虚拟机”,具体是怎么个试法呢?硬件没有变化。
就是说在你的服务器上安装一个虚拟机软件,比如windows virtual pc或者vmware station,然后在里面安装早期的操作系统,比如说windows 2000/xp