如何通过 COM1 向我的收据打印机发送 DOS 命令?
我目前正在开发收银机软件,但在使用收据打印机时遇到了问题。我需要能够通过 DOS 向打印机发送十六进制命令。
到目前为止,我已经尝试执行以下操作。
打开命令
输入复制con:com1
输入一个十六进制数
按 Ctrl + Z
按回车键
根据我读到的内容,应该将十六进制数字作为命令发送到打印机。但它只是将数字作为字符串发送并打印出文本。
我使用的打印机的一些信息:
TPG A794 收据打印机。
打印机手册可在此处找到:http://www.cognitivetpg.com/downloads/A794%20Spec%20Sheet.pdf http://www.cognitivetpg.com/downloads/A794%20Spec%20Sheet.pdf
希望有人可以帮助我,因为我已经尝试了一切,但似乎没有任何效果。
不要输入十六进制代码。您需要十进制的 ASCII 代码。
例如:要写0xF,必须将其转成十进制(15)
后copy con: com1
输入三位数的十进制值 (015) 时按住“ALT”(按住不放),然后松开“ALT”。
如果是具有多个十六进制数的命令,则继续使用下一个值。
完成后,按 Ctrl-Z。
如果您将“命令”写入文本文件,则可能更容易使用,然后您可以将它们复制到 com1:
例如:
copy linefeed com1:
(我没有要测试的串行设备,但它应该可以工作)
我尝试过
copy con bell.txt
然后我进入了007(= 0x07,这是一个响铃),Ctrl-Z。这给出了一个长度 = 1 字节的文本文件
Type bell.txt
然后会发出蜂鸣声。
EDIT“1B”是所谓的“Escape-Sequence”(多字节命令)的代码,“70”是命令本身,它需要三个参数(n、p1、p2)。所以完整的Sequence有5个字节长。您必须将“n”、“p1”和“p2”替换为正确的数字。您可以在串行设备的手册中找到这些内容(“1B”是所谓的“转义序列”(多字节命令)的代码,“70”是命令本身,正如您所描述的那样,它需要三个参数(n,p1,p2)。所以完整的序列是5个字节长。你必须用正确的数字替换“n”,“p1”和“p2”。你可以在你的序列号手册中找到这些参数设备 (http://www.cognitivetpg.com/downloads/189-9200250C.pdf http://www.cognitivetpg.com/downloads/189-9200250C.pdf),第69页。P1和P2似乎描述了时间,抽屉需要打开/关闭)N描述了你与哪个抽屉交谈。
EDIT2每个命令创建一个文件。例如。 “open1.bin”“close1.bin”等。按照我的第一个答案中的描述创建它们。您应该首先尝试使用“简单”命令(单字节命令)来验证这是否可以正常工作。要执行命令,请使用以下命令将它们发送到 com 1copy open1.bin com1:
。对于多字节命令创建它们copy con: file.txt
按住“alt”的同时输入第一个值,松开“alt”,再次按下并按住第二个值,依此类推。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)