社区
进程/线程/DLL
帖子详情
高难度问题,这几个类怎么设置.
lvcjh
2003-05-20 08:02:02
我以前有一个VB程序,操作串口是这样做的,先发送数据到下位机,然后不断查询机器回应,我现在想做成多线程的,需怎么做(只通过一个串口).
我想这样做,不知行不行,先发送马上返回,然后有回应就处理.
一个主要问题是,如果下位机先没响应,然后突然想应,而前面还没发完.
他有没有冲突检测机制.
...全文
78
12
打赏
收藏
高难度问题,这几个类怎么设置.
我以前有一个VB程序,操作串口是这样做的,先发送数据到下位机,然后不断查询机器回应,我现在想做成多线程的,需怎么做(只通过一个串口). 我想这样做,不知行不行,先发送马上返回,然后有回应就处理. 一个主要问题是,如果下位机先没响应,然后突然想应,而前面还没发完. 他有没有冲突检测机制.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lvcjh
2003-05-27
打赏
举报
回复
谢谢qinghero(水阔长江),请接分哟。
qinghero
2003-05-23
打赏
举报
回复
不会自动清空,你要在程序里清空
lvcjh
2003-05-23
打赏
举报
回复
如果超时之后,他会自动清空其中内容么。
我们重发数据之前要不要发清空数据的指令。
lvcjh
2003-05-22
打赏
举报
回复
看来,为了保险,还是下位机一个个的发,然后等待返回。
你看这样做好吗。
监控界面对象(CWnd子类6个)------>下位机对象(CWnd子类1个)------->串口对象(无父类1个)
每秒钟发一个消息给下位机对象 一个结构队列(消息,下位机编号,串口号) 可发送字符串
启动超时时钟 发送完,启动时钟,并接收数据。 收到字符位即
接收完发消息到界面对象,否则发超时 发消息给下
同时封装指信今,不同机器换掉这 位机对象
请问一下还有哪些问题还没考虑到。
qinghero(水阔长江) thanks.
你以前一个接线程,一个发线程,会不会出现线程调度出现的数据不完整呢。 下位机是否只接收到完整的数据才回映,发果是这样一个错误数据会不会使他长期处于等待呢。
qinghero
2003-05-22
打赏
举报
回复
完全可以
下位机是否只接收到完整的数据才回映 :我用的下位机准确地说是一个安捷伦表和一些国产的电气参数测量仪表;它们的程序不是我写的;不过我认为肯定是收到完整的数据才回映吧,它们里面是由单片机管理的通讯程序,应该是不会长期等待的。
lvcjh
2003-05-21
打赏
举报
回复
如果一个串口连接多个下位机,每台都有限编号,回映时会不会冲突。
如果一个串口只连一台下位机就好办。现在我对这不是很清楚,能解释一下么。
qinghero
2003-05-21
打赏
举报
回复
我觉得不用发两次消息,在第一次发送的消息里处理就是了;
从下位机发送过来的信息肯定有一个发送头,如果你接收到发送头,就把存在缓存里的上一次的信息冲掉就行了,然后就直接在你这个消息映射函数里掉用子函数处理这个字符串就行了
qinghero
2003-05-21
打赏
举报
回复
你这种方法也是可行的。如果是国产的比较便宜,一般都不可以。呵呵,是不是有点片面?
lvcjh
2003-05-21
打赏
举报
回复
现在只有先发送,然后等待下位机的数据,完成后再对下一个下位机发数据。
所说的多线程是不是只不阻塞在哪个地方,发完就由读线程去读,如果完毕或超时则post消息给主线程。只有对多个串口时才会体现出优势。
另外收发可不可以同时进行,或怎么检测下位机是否可以进行双工。
qinghero
2003-05-21
打赏
举报
回复
一般情况下都是一个串口连接多个下位机的,你从上位机发送一个消息,就是相当于网络上的广播,只不过是广播的信息只对某一台下位机有用罢了。如果你的上位机对多台下位机发送信息时候没有间隔,下位机接收到后也会在这个网络上发送数据,因为所有的下位机的线都是接在一起的,所以当下位机同时发送数据时,就存在冲突的可能;有些下位机没有用到232接口所有的9根线,就没有"请求发送""允许发送"这样的机制。所有最好还是上机位检测多个下位机时,每检测一个要间隔一段时间。
lvcjh
2003-05-20
打赏
举报
回复
我现在找了一个类,现在可以发送字符串,发完后不等返回。
每接收一个字符就会发一个消息到本窗口,我想对返回的消息进行封装。
每接收一个完整的回映后,再发一个消息到别的窗口。并且加一个要发消息对列,没发的自动加在尾部,有空就可以发。如果下位机对某个消息没返回怎么办。会不会出现回映的冲突。
qinghero
2003-05-20
打赏
举报
回复
我也做过这方面的东西,我的方法是:两个线程,一个发送,一个接收;设一个定时器,时间到了就从发送线程发送数据。接收线程监听串口,当接收到一个字符之后,就向主窗口发送一个消息,对应的处理函数就进行处理,当然了,要互斥访问这个串口。
从无到有构建亿级高性能高并发高可用的亿级微服务秒杀系统
通过从业10年接触过很多的技术开发人员,尤其在面试一些技术人员的时候,发现他们的技术知识更新较慢,很多人渴望接触到高并发系统和一些高级技术架构,为了帮助更多人能够提升自己和接触到这
类
技术架构,并满足企业...
搜集的
几个
超
高难度
的数独题
但根据
几个
软件的难度评价,这个并不是最难的。欢迎大家给出
高难度
的数独题! 题目 HoDoKu v2.2 难度评价 Sudoku Explainer v1.2.9 难度评价 000001007000060020800900300095400003003000400...
软考5个高级难度最小的是哪个?哪个通过率高一些?
软考5个高级难度最小的是哪个? 软考高级常考的资格主要有信息系统项目管理师、系统分析师、系统架构设计师、网络规划设计师以及系统规划与管理师。...其他
几个
高级资格对于信息系统项目管理师要更...
计算机学会a
类
论文是sci吗,什么是SCI、EI、CCF、DASFAA
期刊会议的论文,sci,ieee,ccf 等等他们之间的关系对于期刊、会议、SCI、EI、CCF等上一个链接写的很清楚。在这我只做一些补充,如有错误请批评指正。1.SCI一般收录高质量的期刊的文章,会议文章一般很少收录,除非...
atapi.sys 蓝屏 难度系数☆☆☆ ...
刚才,在半岛博客上看视频,机子有点卡,我看了看cpu使用率也不高,内存也剩不少,这是怎么回事儿呢?我就想,想着想着,电脑就黑了,崩儿~ 蓝屏了...... 怎么说咱也是见过蓝屏的人,这一堆字母的罗列说半天就是...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章