一个分时共用串口的问题,高分请教……

load 2002-04-02 06:16:39
好几个应用程序要分时共用一个串口,我现在的解决办法是:
用信号量标记串口是否在使用,得到信号量的程序可以操作串口,没有得到的则等待。每次操作完都关闭串口,释放信号量。这样基本上能解决分时共用的问题。

但是当关闭串口后的空闲时间别的程序(其它程序)又能使用这个串口,这是不允许的,我要保证串口只能我的几个程序使用,请问如何能实现呢?帮我想个办法!!!
...全文
144 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
load 2002-04-04
  • 打赏
  • 举报
回复
感谢各位的帮助,这次的问题没发弄了,下次做我定按照你们的主意来

放分了!
slf 2002-04-04
  • 打赏
  • 举报
回复
用一个单独进程来实现串口的通信,几个程序分别与此进程通信(可以在你的dll中实现)然后再与串口通信,因为此进程一直占有串口资源,所以别的程序无法使用串口。
关键是每个程序并不需要真正操作串口,只在一处操作串口,其实tapi就是这种思想实现程序共享。
longyii 2002-04-04
  • 打赏
  • 举报
回复
你如果一定要在所有时间独占串口(包括你的进程不运行的时候),有一个笨办法:自己再创建一个进程P,让它独占串口,当你的程序加载dll并需要使用串口时,在dll内部与进程P通信,让它释放串口,当你使用完毕,再让P再次占有。当然如果串口在“释放-分配”的间隙被其他进程抢去,那就...我没法了,不会这么霉吧:)
load 2002-04-04
  • 打赏
  • 举报
回复
就没有其它人帮我了吗?
daiyq 2002-04-03
  • 打赏
  • 举报
回复
给你个思路:
不就是好几个程序都用串口吗?把操作串口功能单独拿出来作为一个单独的进程,只有这个单独的串口进程可以操作串口、负责串口的打开、关闭、接受和发送数据等,然后你的其它程序需要用串口时可以跟串口进程进行数据通讯,这样你的产口进程就可以独占串口,别人的程序肯定不能用串口。你自己的程序通过进程间通讯或者socket通讯随时可以利用串口了/。

不好意思,说的可能不清晰,但肯定可行。
load 2002-04-03
  • 打赏
  • 举报
回复
ju_feng(NorthSky)的思路是可行的,我现在用的就是这种办法,只是每次都把串口关闭后用信号量通知其它程序串口可用,问题是:一个程序用完串口后不关闭,另外一个程序怎么操作串口?

高手请提供例程,急!!!!!!!!!!!
load 2002-04-03
  • 打赏
  • 举报
回复
WIN32程序都有独立的内存页面,动态库没有并没有固定的进程和内存空间,怎么能一直占有串口呢,占有也只是调用此动态库的某一个程序占有,所有权在程序而不在动态库本身。

苦恼!!!
daiyq 2002-04-03
  • 打赏
  • 举报
回复
你在动态库里一直占用者串口资源,这样别的程序就不能使用串口了,然后你接收到数据后在动态库里进行排队处理,这样不久行了。
load 2002-04-03
  • 打赏
  • 举报
回复
谢谢daiyq(代代) 及其他

我现在的困难是:操作串口是在一个动态库里进行的,动态库和程序的接口固定,上面几个程序都不能更改,只能改动态库。
ju_feng 2002-04-02
  • 打赏
  • 举报
回复
要想不要别的程序用就要占用串口,可以在一个任务完成后不关闭串口,而是发送

一个消息通知其他几个程序声明串口可用,其他应用程序向该程序申请使用串口。
cris919 2002-04-02
  • 打赏
  • 举报
回复
我想不出好办法
upupup

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧