社区
Delphi
帖子详情
请教delphi多线程技术监控多个串口
firetop818
2007-06-30 04:32:04
现要实现多线程技术监控多个串口:
可以实现各个串口的同时单独发送和接收,且各串口之间是独立运行、独立监控的。
请问怎么实现?能否给个例子阅读,谢谢!
...全文
900
16
打赏
收藏
请教delphi多线程技术监控多个串口
现要实现多线程技术监控多个串口: 可以实现各个串口的同时单独发送和接收,且各串口之间是独立运行、独立监控的。 请问怎么实现?能否给个例子阅读,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
僵哥
2007-07-03
打赏
举报
回复
建议可以考虑使用完成端口。
constantine
2007-07-03
打赏
举报
回复
放多几个mscomm32控件就行了,
firetop818
2007-07-03
打赏
举报
回复
只要某个串口有数据,我把各个串口数据收集处理,然后再通过另一个专用串口再把这些数据发送给服务器,这个过程我想这样实现:用Timer每隔1秒检测一下哪些串口有数据,若有我就处理,我想问一下,如果这个处理(包括发送的延时)的时间超过了1秒,Timer将会出现什么情况?这样做是否合理?
newfang
2007-07-02
打赏
举报
回复
SPCOMM用着不错的,不用自己再用API搞~~浪费劳动力~~
abcdefgdeng
2007-07-02
打赏
举报
回复
用MSCOM就可以了。MSCOM可以在Delphi的Active component中加入,MSCOM是微软的,系统安装好之后都会带有。实现你的功能不需要多线程,每个串口之间本身不会有冲突,因为每个MSCOM的端口是不一样的,比如说MSCOM1的端口为0,MSCOM2的端口为1,不同端口连接的设备会从对应的端口传数据给MSCOM控件。当接收的数据满足你指定的规则时,可以触发comevent事件。并在事件下写你的数据处理程序。如果楼主还不明白,你可以查查MSCOM的使用。
firetop818
2007-07-01
打赏
举报
回复
有的说要通过线程,有的说直接用串口控件就可以处理多个串口数据了,迷茫了
jadeluo
2007-07-01
打赏
举报
回复
MSCOMM32已经把串口的读、写功能都封装好了(它内部是用线程来实现的),而且它提供了事件驱动的编程接口。所以你使用MSCOMM32时,是不需要再使用线程编程的。
firetop818
2007-07-01
打赏
举报
回复
谢谢 luxuewei5214(小卢)(以下内容仅供参考),我用的是MSCOMM32控件,也可以自动检测串口的接收,另外"每个线程里包含一个串口控件"是动态创建还是要放N个spcomm控件呢
ly_liuyang
2007-07-01
打赏
举报
回复
搞多几个SPCOMM就是啦
firetop818
2007-07-01
打赏
举报
回复
池龙大哥,在类里动态创建串口读写的控件,不熟悉,而且时间紧,还请再指教
luxuewei5214
2007-07-01
打赏
举报
回复
创建n个线程,每个线程里包含一个串口控件,串口的接受和发送都在县城里处理就ok了。建议使用spcomm控件,他自己检测串口的接受,只要在接受事件中写处理的代码就可以了
池龙
2007-07-01
打赏
举报
回复
从TThread继承一个类,在类里动态创建串口读写的控件。这样你要读写几个串口只要创建相应数量的实例就行了。多个线程实例用TObjectList维护。
firetop818
2007-07-01
打赏
举报
回复
To poolord(池龙):我用MSCOMM32串口控件行吗?我要监测八个串口数据,并作处理,那我是不是要用八个MSCOMM32呢?还有我是把线程事件放到MSCOMM32的oncomm事件中,还是把MSCOMM32的oncomm32事件放到线程的execute中的?
tonumbbb(空白的历史1966至1976)和solokey(争取在2008年成为低级程序员) ,那个控件本身就是多线程的吗?如果八个串口同时来了数据,是否会有冲突
谢谢大家
solokey
2007-06-30
打赏
举报
回复
CnPack的组件包里的Cnrs232,几个串口创建几个就可以了..
numbbb
2007-06-30
打赏
举报
回复
用N个SPCOM组件打开N个COM口。
池龙
2007-06-30
打赏
举报
回复
其实不太想回你这个帖子。。。看在你可能是搞工控的份上说几句。。。
你的问题其实关键是两点。
其一是串口的读写。这个可以用控件,也可以自己用API写代码实现。CreateFile打开串口,GetCommState、SetCommState取和设置端口参数,ReadFile读数据,CloseHandle关闭串口。
其二是多线程的使用。Delphi有个TThread类,直接继承下来写你的线程就行了,Delphi自己有Demo可以看。
这两个问题解决,后面就是线程同步、数据的存储访问、编码解码之类的工作,问题不大。
自己多Google下,相关代码很多的。给个建议,以后问问题尽量问在点上,问之前多找找相关的资料,你这个问题提得就像“怎么样造辆汽车”一样。。。-_-|||
Delphi
7正式企业版
Delphi
7正式企业版 ISO 文件内附 CD key感谢恶魔天使
《实战
Delphi
6/Kylix2/SOAP/Web Service程序设计篇》(
《实战
Delphi
6/Kylix2/SOAP/Web Service程序设计篇》(李维著)
Delphi
7高级应用开发随书源码
Delphi
7高级应用开发随书源码
网络检查
这是我的第一个
DELPHI
元件作品。用
DELPHI
3完成的, 可以安装在D2/D3/D4/D5上面,没有问题。 其作用是可以帮助您检查计算机连接到网络上了还是 断开状态。 非常容易使用,主要是用on...
网络信息过滤
用
DELPHI
实现网络信息过滤(附文档,程序可能有bug)
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章