多串口,该怎么解决
多串口
有这么一个需求:
N(暂且为10)台同一种硬件,均为 RS232 通信,N台硬件通过232 连在 多串口卡 设备上,多串口卡设备与PC连接。
PC-->RS232串口卡-->硬件。PC到RS232 发送的命令相同,硬件返回的数据格式也是一样的。
现在的问题在于 怎么区分 返回的数据 是往 哪个串口的。 (返回的数据中并没有有关串口的信息)。
------解决方案--------------------
每一个串口的读线程在数据到达时就会得到通知,那么该读线程所读取的数据不就是标明了串口号的吗?
------解决方案--------------------
每个串口一个线程,对应一个设备。。。
------解决方案--------------------
记得串口卡是一一映射到你的系统的
------解决方案--------------------
多串口通讯时不要是重复放那个控件嘛,每个控件的名字肯定不能相同,在返回事件中不是可以取到Sender: TObject嘛,你根据它不就可以区分了嘛!
才给这一点分啊?
------解决方案--------------------
当你安装好串口卡的驱动程序后,在设备管理器里的“端口(COM和LPT)”下可以看到多个(M个m=n)串口的;
通过各个“通讯端口”的属性可以修改端口号,把你的“N台硬件”对应的连接到对应的M个COM口上,你就知道了外设N与通信口M的对应关系了;
程序中你用的是spcomm,那就把你需要的N个spcomm的CommName分别设为你的M个COM口之一就行了。
有这么一个需求:
N(暂且为10)台同一种硬件,均为 RS232 通信,N台硬件通过232 连在 多串口卡 设备上,多串口卡设备与PC连接。
PC-->RS232串口卡-->硬件。PC到RS232 发送的命令相同,硬件返回的数据格式也是一样的。
现在的问题在于 怎么区分 返回的数据 是往 哪个串口的。 (返回的数据中并没有有关串口的信息)。
------解决方案--------------------
每一个串口的读线程在数据到达时就会得到通知,那么该读线程所读取的数据不就是标明了串口号的吗?
------解决方案--------------------
每个串口一个线程,对应一个设备。。。
------解决方案--------------------
记得串口卡是一一映射到你的系统的
------解决方案--------------------
多串口通讯时不要是重复放那个控件嘛,每个控件的名字肯定不能相同,在返回事件中不是可以取到Sender: TObject嘛,你根据它不就可以区分了嘛!
才给这一点分啊?
------解决方案--------------------
当你安装好串口卡的驱动程序后,在设备管理器里的“端口(COM和LPT)”下可以看到多个(M个m=n)串口的;
通过各个“通讯端口”的属性可以修改端口号,把你的“N台硬件”对应的连接到对应的M个COM口上,你就知道了外设N与通信口M的对应关系了;
程序中你用的是spcomm,那就把你需要的N个spcomm的CommName分别设为你的M个COM口之一就行了。