簡體   English   中英

通過python串口發送十六進制代碼到打印機

[英]sent hex code via python serial to printer

我需要將ESCPOS命令發送到熱敏打印機。 這些命令在此處列出: http : //pyramidacceptors.com/cms/wp-content/uploads/2013/02/ESC_POS_Protocol_Commands_REV_B.pdf

如何通過python串行發送簡單的十六進制代碼? 串行連接完成。 我想做一個完整的嘗試:

content = "\x1B\x6D"
ser.write(content)

但這不起作用,我將需要經常使用.pdf,因此在python中使用十六進制時要注意什么? 例如,打印和進紙n行命令應使用python:1B 64 nn =行

content = "\x1B\x64\x5"
ser.write(content)

首先,您不發送“十六進制”。 您發送二進制數據-這是字節流。

每個字節 (除其他外)都可以表示00FF之間的十六進制數字或ASCII字符。

據我了解,描述ESC POS協議的文檔給出了應以二進制形式發送的各種命令的“人工表示”。

例如,給定“打印和送紙” ,我讀:

  HEX ASCII Print and feed paper n lines 1B 64 n Esc dn 

這意味着,為了“打印並送入5行”,您必須發送3個字節

\x1B\x64\x05

在Python> = 2.6中,它是這樣編寫的(注意b前綴):

b"\x1B\x64\x05"

或給出您的代碼片段,將導致:

content = b"\x1B\x64\x05"
ser.write(content)

請注意,我不知道該設備。 也許您必須發送某種前綴才能將其切換為“命令模式”。 也許不吧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM