问一个很偏的问题,和BCB无关,而且我也不知道在哪儿问才好

jishiping 2005-12-15 02:21:01
是这样子的,想要做一个模拟打印机,这个模拟打印机,不是Windows下的虚拟打印机,而是做成一个象实际的打印机那样。用途是这样的,有些设备,他运行的根本不是Windows,可能是DOS,也可能是其他的一些系统,这些设备将东西打印到打印机上。我们现在想要实现的功能就是,我们用一根线连接到这个设备的输出打印的输出端(类似PC的并口),线的另一头连接到一个PC上,在这个PC上写一个软件,将这个PC模拟成一个打印机,拦截设备打印的内容。由于设备是医学设备,运行的系统是DOS或者其他的系统,所以我们不可能写一个程序让程序运行在这个设备上,只能写一个程序运行在另一个PC上,同时将PC模拟成打印机硬件。所以我说这个东西和BCB没有任何关系,而且在CSDN上,我也不知道放在哪里问才有人可能知道。所以我就先在这儿问问,看看有没有人知道这方面的资料。这儿先谢谢大家了。
...全文
563 56 打赏 收藏 转发到动态 举报
写回复
用AI写文章
56 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanshangming 2005-12-20
  • 打赏
  • 举报
回复
至于指令集,一般随打印机都有一本厚厚的手册上有。如EQ-300K上就有。但针式的指令集应该与喷墨的和激光的打印机各不相同。
guanshangming 2005-12-20
  • 打赏
  • 举报
回复
把我知道的说一下,给老大参考

做一个直接电缆连接线,具体做法是
2->15 3->13 4->12 5->10 6->11 15->2 13->3 12->4 10->5 11->6 25->25

把这条线连接双方PC,让一个PC监控另一个PC发过来的并口数据,供分析。

如果需要监视双方通讯的数据,可以尝试一下把这根线用上面的方法并到另一根与正常打印机连接的打印线上。但有可能要更改一下接线的方法。

同样,这根线可以做调试用。
CityHost 2005-12-19
  • 打赏
  • 举报
回复
季老大的问题,作个标记,好好的学习
南郁 2005-12-19
  • 打赏
  • 举报
回复
哈哈,突然想起有一次要了解某个没有输出文件的DLL的过程了。。先把自己写成一个假DLL,提供一个同名输出函数,看调用者发给自己什么了。。。然后再把自己装成调用者,把这个数据发给真实的DLL。。大致过程类似吧?
南郁 2005-12-19
  • 打赏
  • 举报
回复
Step 1.搞清这台设备到底支持哪些打印机?如何支持的?
如果:1.1 只能使用该设备出厂时配置的打印机,那没办法啊。
1.2 如果发现只要是某种类型的打印机(比如所有HP或爱普生的针对或喷打),接上去它就能嗄吱嗄吱地干活,就试试第二步。

Step 2. PC这边,连上该设备的并口,写程序不断监听该并口。有收到数据就保存下来。
设备那端,开机,尝试打印(如果设备之前必须有个单独的“寻找打印机”的动作,就先做这个动作)。看看PC这头收到什么数据了?

Step 3. 把打印机(真实的)接到PC上,给它发出刚才收到的那个数据。。。看看打印机会不会主动回个数据?记录下来了。。

Step4. 改程序(最好是改外部数据文件),收到设备的数据后,把S3打印机回的数据,“还”给这台数据。

。。。。。
lisypro 2005-12-18
  • 打赏
  • 举报
回复
找一个写打印机驱动的应该知道
csrwgs 2005-12-17
  • 打赏
  • 举报
回复
还 有一个问题就是如何让安装DOS的机器识别打印机。
这也需要用DSP模拟打印机给出相应的信号。

这只需要弄清楚一种型号的打印机就可以了
csrwgs 2005-12-17
  • 打赏
  • 举报
回复
可以使用DSP或者CPLD采集并口的数据,并翻译成激光头要运动的轨迹。
DSP再通过232/485把数据传给主机,用来显示
lc2236 2005-12-17
  • 打赏
  • 举报
回复
protocol called : "DICOM 3.0" . you can google it
勉励前行 2005-12-17
  • 打赏
  • 举报
回复
不懂。
好象說的是要把PC模擬成一台打印機,目的是捕捉某醫學設備的打印輸出並解析。

但我不懂,來學習。我想,

1、首先要知道這醫學設備上能用的一台打印機型號,因為不是什麼打印機都能用的。
2、找出該種型號的控制語言
3、捕捉輸出了哪些指令,即捕捉這醫學設備上用到的指令集,因為要全部實現一台打印機的控制語言就相當於做該種打印機解析模塊了。只實現一個子集會輕松些。

lvjack 2005-12-17
  • 打赏
  • 举报
回复
看来的一个方法:挂接本地端口localspl.dll的WritePort
并口监控,看看发的什么,http://www.mcurd.com/soft/parallel.rar(这个是看状态的)
并口调试工具包 http://www.yymcu.com/showcontent.asp?id=101

建议google一下“并口调试助手”、“并口调试”
问问搞单片机或嵌入式开发的估计会有些帮助
liujunls 2005-12-16
  • 打赏
  • 举报
回复
既然要模拟打印机,那首先要了解的就是该医学设备支持什么打印机,如果是自带的专用打印机,那就了解该打印机的指令,如果是通用的打印机那就了解任一款打印机指令就行。如果是专用打印机而又无法了解它的指令,那就应该没办法实现了。
Behard 2005-12-16
  • 打赏
  • 举报
回复
我也是医疗行业的
这个问题我们也曾出现过,现在只能自己做打印机了

以前一般使用 EPSON 的 LQ 方式或者 HP 的 PCL 打印,这个在 DOS 下很容易解决
直接使用 LQ 或者 PCL 协议即可

现在没有 LQ 了,PCL 的好像也是没有并口的了,现在都是 USB 或者 NET 的

关键的是,你原来设备使用什么打印机的?如果这个不知道就比较麻烦了
如果知道原来的打印机,应该能自己模拟协议
Maconel 2005-12-16
  • 打赏
  • 举报
回复
我已经说了,设备不是我们的,而且设备运行的是什么操作系统都不一定(可能既不是Windows也不是DOS),我们无法更改这个设备上的任何东西。
//-------------------------------------------------------------
就算是真的打印机,也要装驱动才可以打印,所以在设备这边还是要装一个你自己写的驱动。我想打印机其实也是把要打印的数据由打印程序交给驱动程序,驱动再按协议传给打印机,打印机按协议打印。所以我认识还是一个并口通讯的问题,当然这个协议我想应该还是有一个大致的通用标准的。


而且关键的一点,要让这个设备将另一个PC(PC上安装了我们程序)认为是打印机才行。
//-------------------------------------------------------------
这个,我想也是由操作系统通过并口发一个什么命令给对方,如果返回的是某种结果,那么操作系统就会认为是个打印机。这个我想应该是不同的打印机都遵循的通用标准。所以你的程序只要返回一个这种结果,对方操作系统就会认为你这边是个打印机。


以上只是我的猜想,具体是不是,还是应该去请教一下做过打印机驱动的朋友。
pipiluxixi1 2005-12-16
  • 打赏
  • 举报
回复
我找到一份PCL Developer’s Guide,不知老大是否需要?
alloutoflove 2005-12-16
  • 打赏
  • 举报
回复
开机BIOS设置里的键盘也是有驱动的,只不过是BIOS自带读取硬件的东西而已...
DOS时代如果不需要装专门的打印机驱动程序的话,那一定只有标准的功能,而且用的是DOS默认的自带打印机驱动程序. 而且DOS下我记得是有打印机驱动程序的,具体是不是必须我想和打印机也有关的.
还是那句, 打印端必须有个东东才行...
alloutoflove 2005-12-16
  • 打赏
  • 举报
回复
我觉得这个一定要在打印端做文章才行...即使真是一台打印机连接到那设备上,设备也不一定认识它...
TR@SOE 2005-12-16
  • 打赏
  • 举报
回复
JSP,

对啊,我就是这个意思。你想,如果两边都是自己的协议都能搞定,那两边都是大家熟知的协议不是应该更容易?

呵呵。
penu 2005-12-16
  • 打赏
  • 举报
回复
晕,老季居然有这问题。以前也有人问过我,可是偶只有思路。:(

一、过程分析
1、设备打印过程
向打印设备发送识别指令,确认打印机是否支持
是支持的打印机,则根据打印内容发送打印指令——可能是标准指令集也可能是针对具体打印机的控制指令集
2、打印机接收处理过程
接收指令,处理并向设备反馈回相应信息

二、模拟要点
1、对设备发过来的打印机识别指令正确返回
A、确定你那个设备支持的打印机品牌和型号,这可从设备手册上查到。象有些工控设备只认EPSON的一些型号,其它一概不认。
B、设备发出的打印机识别指令是哪一条?
C、该型号打印机返回的标识值是什么?返回格式?
2、对设备发过来的打印指令正确识别处理
A、设备发出的打印指令是属于哪类指令集?
是标准(通用)打印指令集还是具体型号打印机的控制指令集?
B、取得打印指令集表,指令与返回码的描述与格式
C、针对指令集逐个对应处理方式
3、接收并口数据并处理
pipiluxixi1 2005-12-16
  • 打赏
  • 举报
回复
就像netsys2说的,打印机有自己的指令集。我的一位同事做过用单片机系统实现打印,不需要什么驱动,就是按照指令集的指令要求,通过并口(单片机系统的)发字节指令。Esc和PCL指令集都实现了。我的电脑上有Epson的几款打印机的相关指令,网上也应该能找到。
加载更多回复(36)

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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