目前有个客户通过以太网模式来远抄热表和阀门的数据,这个网络的布置是这样的:电脑-(以太网)->集中器-(无线)->集中器->热表或阀门,原先这公司测试的时候通讯效果蛮好,基本上数据都能抄回来,但是现在在现场却发现阀门的数据经常抄不回来,但是热表的数据基本上都能抄到,而且反应速度蛮好。现在的问题:1、热表跟阀门以太网接口的处理是一样的,只是一个返回的数据长些,一个短些,我实在是想不出什么原因导致这个结果?(客户说线路没问题)
2、我程序里现在是按抄表列表一个个顺序下来先发后收数据,我知道这种模式不一定好,但是因为第一次做网络抄表,而且现场有1000多的表,用线程怕控制不好。如果换作线程处理接收,发送仍然顺序操作,那么这个接收什么时候结束?因为我收到的数据还要保存计算分摊,不可能一直处于接收状态;
2、我程序里现在是按抄表列表一个个顺序下来先发后收数据,我知道这种模式不一定好,但是因为第一次做网络抄表,而且现场有1000多的表,用线程怕控制不好。如果换作线程处理接收,发送仍然顺序操作,那么这个接收什么时候结束?因为我收到的数据还要保存计算分摊,不可能一直处于接收状态;
用线程操作读表会更合理些,你用秒表,那你能保证几秒钟数据就抄读上来了?并且还浪费时间,有时还有可能出现抄表不成功的情况。定义一个线程,里面可以有2个事件处理:一个是专门负责发送数据,一个专门负责接收数据,类似的可以在网上下载个CSerialPort类看看。