James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1444回复:14

急:虚拟串口的问题!

楼主#
更多 发布于:2003-11-13 13:07
win2000系统,DDK。

项目需求:原本两个串口应用程序,在同一时间只有一个能访问串口1。
现在要改造成两个应用程序可以同时访问串口1。

方案:设计两个虚拟串口,如com8,com9。
一个应用程序访问com8,另一个访问com9。
虚拟串口com8和com9对收到的数据打包,从实际的串口1发送出去。

问题:1、如何做虚拟串口?给个思路即可,有例子更好。
            2、虚拟串口驱动程序如何调用串口1的发送和接收函数?

感谢万分!
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-17 17:09
你的COM8是怎么实现的?是表现为一个COM设备,还是只是一个普通device object,不过名字“恰好”是COM8? :D

表现为一个COM设备。主要是参造ircomm2k作的,我现在只是做试验,可以虚拟一个com口。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-11-17 17:05
你的COM8是怎么实现的?是表现为一个COM设备,还是只是一个普通device object,不过名字“恰好”是COM8? :D
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-11-17 16:47
我想把从com8,com9来的数据存储起来,然后分别打不同的包,
再通过com1发下去,这样就实现了两个应用程序公用一个com1同时
发送接收数据。

有什么问题吗?如有一定告之,将万分感谢!这个项目不能拖。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-11-17 16:43
难道你是创建device object,让它的symbolic name是COM8、COM9,然后实际去调真正的COM驱动? :D


我用zwCreateFile等不可以吗?
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-11-17 16:35
难道你是创建device object,让它的symbolic name是COM8、COM9,然后实际去调真正的COM驱动? :D
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-11-17 16:26
你需要做两个驱动,一个模拟bus驱动。一个是模拟串口驱动。你可以搜索我以前发的贴子,问过一个usb转串口的问题,思路是一样的。


好像不用作Bus驱动,我直接在虚拟串口驱动里调用真正的串口驱动即可。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-11-14 10:33
我下载了ircomm2k的源代码,里面好像就是有虚拟串口和bridge,
看样子要好好研究这个东西了。

不只能否一个月搞定,还要写文档,烦。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-11-14 10:14
如楼上所说,比较麻烦的。一个bus driver,枚举你的com口,一个com的driver。
能在应用解决最好了。 :D比如hook

应用程序是不能动的,都是通用的工具。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-11-14 10:12
你需要做两个驱动,一个模拟bus驱动。一个是模拟串口驱动。你可以搜索我以前发的贴子,问过一个usb转串口的问题,思路是一样的。

Bus驱动是什么东西?
我的底子很浅,没办法,就给24天做这个,以前没用过DDK.
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2003-11-13 21:55
如楼上所说,比较麻烦的。一个bus driver,枚举你的com口,一个com的driver。
能在应用解决最好了。 :D比如hook
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-11-13 18:45
你需要做两个驱动,一个模拟bus驱动。一个是模拟串口驱动。你可以搜索我以前发的贴子,问过一个usb转串口的问题,思路是一样的。
I know nothing!
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-11-13 17:07
我给你个思路,不知行不行,用动态连接库控制实际串口1,两个应用程序对串口的访问在动态连接库中串行处理。
好处是不用虚拟串口驱动程序,效果一样,缺点是你必须要修改应用程序。

谢谢!
但应用程序不能修改。再给点意见,谢谢!

车到山前必有路。 虽然有些土,却是我最有感触的一句话。
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-11-13 17:06
我给你个思路,不知行不行,用动态连接库控制实际串口1,两个应用程序对串口的访问在动态连接库中串行处理。
好处是不用虚拟串口驱动程序,效果一样,缺点是你必须要修改应用程序。

动态连接库好象是进程独立啊?看来不行,呵呵。 :D
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-11-13 17:01
我给你个思路,不知行不行,用动态连接库控制实际串口1,两个应用程序对串口的访问在动态连接库中串行处理。
好处是不用虚拟串口驱动程序,效果一样,缺点是你必须要修改应用程序。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
游客

返回顶部