【问题标题】:Reverse Bit Order Python? ESC/POS DLE EOT Printer status escpos反转位顺序 Python? ESC/POS DLE EOT 打印机状态 escpos
【发布时间】:2018-08-17 14:33:45
【问题描述】:

我在解码 DLE EOT 1 时遇到问题 我认为它的位顺序和缺少前导零

import serial
x = 1
while x:
   time.sleep(3)
   ser.write("\x10\x04\x01".encode())  
   bytesToRead = ser.inWaiting()
   data = ser.read(bytesToRead)
   while data:
      print(data)
      print(bin(int.from_bytes(data, byteorder="big")))
      print(bin(data[0])[2:])
      data = ""

所以这是在就绪和在线状态时返回的内容:

b'\x16'
0b10110
10110

这是门打开时返回的“假设离线状态”:

b'\x1e'
0b11110
11110

如何翻译?我不需要 8bits 回来吗?

爱普生电调手册节选:

每个状态由1个字节组成,值为0xx1xx10b。 实时状态可以通过比特 0、1、4、7 与其他传输数据区分开来,除了块数据(Header – NUL)中的数据。

位二进制状态|十六进制|十进制 ====+=============================================== =+===+====== 0 | 0 |固定 |00 |0 | ----+---+-------------------------- -+----+-----+ 1 | 1 |固定 |02 |2 | ----+---+-------------------------- -+----+-----+ 2 | 0 |抽屉踢出连接器插针 3 为低电平 |00 |0 | | 1 |抽屉踢出连接器插针 3 为高电平 |04 |4 | ----+---+-------------------------- -+----+-----| 3 | 0 |在线 |00 |0 | | 1 |离线 |08 |8 | ----+---+-------------------------- -+----+-----| 4 | 1 |固定 |10 |16 | ----+---+-------------------------- -+----+-----| 5 | 0 |不等待联机恢复 |00 |0 | | 1 |等待在线恢复 |20 |32 | ----+---+-------------------------- -+----+-----| 6 | 0 |未按下进纸按钮 |00 |0 | | 1 |正在按下进纸按钮 |04 |64 | ----+---+-------------------------- -+----+-----| 7 | 0 |固定 |00 |0 | -------------------------------------------------- ------------

【问题讨论】:

  • 好吧,我明白了,我想.... 0xx1xx10b 是背单词???如果是这样,这意味着如果我有“前导零”10110 = 00010110,则表示01101000,然后表示在线bit 3 ='0',如果11110 = 00011110 真的是01111000,则bit 3='1' 是离线 !!!!!!!这是正确的吗?
  • 那么如何添加前导零和反转位顺序?

标签: python epson escpos


【解决方案1】:
 print(bin(data[0])[2:].zfill(8)[::-1])

这将添加前导零并反转位。结果: 在线状态:

                            /---------Bit 3
00010110  -> reversed =  01101000
0xx1xx10b -> reversed = b01xx1xx0
                            ^---------Bit 3

【讨论】:

    猜你喜欢
    • 2015-03-25
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2020-09-22
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多