串口通讯的一个问题,谢谢
我这里有一个设备,该设备能够提供rs-485通讯,这个设备是用被动的模式实现rs-485通讯的.通讯协议我有.需要有一套软件对该设备(可能是255个)进行轮询,而后捕获各个数据反馈数据采集到以后需要存储到数据库中,而后就是如何显示的问题了.数据很简单的,就是一串报文,小于1k.需要捕获的数据仅仅是4、5个参数而已.
我看了通讯协议:
主机发送命令如:{FB;2A;<length>|1F4:TYP|<Crc>},FB是sending device地址,2A是target device地址.
设备回:{2A;FB;<length>|3E8:IPN|<Crc>}
以上地址只是协议中给的一个例子,实际设备可能有5台,每台地址不一样,我的问题是:
1. 程序轮询时,怎么知道五台的地址是多少呢?不知道地址又怎么发命令给设备询问相关数据呢?
2. 向端口写数据时,以什么方式写呢,可以发一串字符吗?只要符合协议规定的格式,可以吗?
因为不太懂,所以有可能问题也描述不清楚,请资深的朋友帮助释疑!万分感谢!能列举例子更好!
[解决办法]
1.可以用定时器的方式,按地址递增的方式进行对设置的轮询,在一定时间无回应时则跳过至一下个设备
2.用MSCOMM 控件进行对字符串的发送。关于MSCOMM的资料可以网上查一下很多。
[解决办法]
mscomm控件可以,但是定时器就不如线程稳定了,经常遇到的问题就是定时器时间长了系统变慢。