如何通过COM1将DOS命令发送到我的Receipt打印机?

时间:2013-06-05 15:40:05

标签: printing cmd serial-port command hex

如何通过COM1将DOS命令发送到我的收据打印机?

我目前正在开发一个收银机软件,我使用收据打印机遇到了问题。我需要能够通过DOS将十六进制命令发送到打印机。

到目前为止,我已尝试执行以下操作。

打开CMD 输入复制con:com1 输入十六进制数 按Ctrl + Z. 按Enter键

根据我所读到的,应该将十六进制数作为命令发送给打印机。但它只是将数字作为字符串发送并打印出文本。

打印机上的一些信息即时使用: TPG A794收据打印机。 可在此处找到打印机上的手册: http://www.cognitivetpg.com/downloads/A794%20Spec%20Sheet.pdf

希望有人可以帮助我,因为我已经尝试了一切,似乎没有任何工作。

1 个答案:

答案 0 :(得分:1)

请勿输入十六进制代码。您需要十进制的ASCII码。 例如:要写入0xF,必须将其转换为十进制(15) 在copy con: com1按下'ALT'(保持按下),同时输入三位数(015)的十进制值后,然后释放'ALT'。 如果是具有多个HexNumber的命令,则继续使用下一个值。 完成后,按Ctrl-Z。

使用起来可能比较容易,如果将“命令”写入文本文件,则可以将它们复制到com1: 例如:

copy linefeed com1:

(我没有要测试的串行设备,但它应该可以工作)

我用

尝试了
copy con bell.txt

然后我输入 007 (= 0x07,这是一个响铃), Ctrl-Z 。这给出了一个lenght = 1 byte

的文本文件
Type bell.txt
然后会发出哔声。

修改 “1B”是所谓的“Escape-Sequence”的代码(多字节命令)“70”是命令本身,它需要三个参数(n,p1,p2)。所以完整的序列长度为5个字节。您必须用适当的数字替换“n”,“p1”和“p2”。您将在串行设备的手册中找到那些(“1B”是所谓的“Escape-Sequence”的代码(一个多字节命令)“70”是命令本身,正如您所描述的那样,它需要三个参数(n,p1,p2)。所以完整的序列长度为5个字节。你必须用正确的数字替换“n”,“p1”和“p2”。你会在序列手册中找到那些设备(http://www.cognitivetpg.com/downloads/189-9200250C.pdf),第69页.P1和P2似乎描述时间,抽屉需要打开/提示)N描述您与之交谈的抽屉。

<强> EDIT2 每个命令创建一个文件。例如。 “open1.bin”“close1.bin”等。按照我的第一个答案中的描述创建它们。您应首先尝试使用“简单”命令(一个字节命令)来验证,这样可以正常工作。要执行命令,请使用copy open1.bin com1:将它们发送到com 1。对于多字节命令,使用copy con: file.txt创建它们在按下“alt”时输入第一个值,释放“alt”,再按一次并按住第二个值,依此类推。