Tôi đang cố gắng tạo mẫu thử in dữ liệu bitmap cho tệp văn bản vào mạng LAN của tôi đã bật máy in epson pos TM-T88V.Người ngoài hành tinh thanh toán qua máy in POS và in ảnh
Trong khi tôi không gặp vấn đề gì khi gửi hướng dẫn định dạng văn bản và văn bản, tôi không hiểu, tôi phải làm gì, để máy in in dữ liệu của Arecibo message.
đầu tiên vài dòng:
00000010101010000000000
00101000001010000000100
10001000100010010110010
10101010101010100100100
00000000000000000000000
00000000000011000000000
00000000001101000000000
00000000001101000000000
00000000010101000000000
00000000011111000000000
00000000000000000000000
11000011100011000011000
10000000000000110010000
11010001100011000011010
11111011111011111011111
00000000000000000000000
00010000000000000000010
00000000000000000000000
00001000000000000000001
Thông điệp có 73 hàng và 23 cột kết quả là 1679 các yếu tố hình ảnh. Mỗi phần tử này được xác định bằng 1 cho màu đen hoặc 0 là màu trắng và sẽ được in dưới dạng hình vuông có 8x8 (hoặc 16x16) chấm. kết quả sẽ dẫn đến
Arecibo message http://www.satsig.net/seti/message-to-gliese-581.gif
Từ thông số kỹ thuật của máy in:
Trong khi - như tôi đã nói - các kết nối và gửi tới máy in được không có vấn đề, tôi chỉ không nhận được, những gì hướng dẫn này muốn nói với tôi. Điều gì sẽ xảy ra trong trường hợp của thông điệp Arecibo là
Tôi phải gửi số điện thoại nào cho máy in? Tôi có cần gửi mọi dấu chấm không? nL, nH specify the number of dots of the image data in the horizontal direction as (nL + nH × 256).
là gì?
Đây là chương trình Python đơn giản của tôi, tôi sử dụng cho prototyping:
# -*- coding: utf-8 -*-
import struct
import socket
def sendInstructions(mySocket,l):
for x in l:
mySocket.send(struct.pack('h', *[x]),1)
def emphasizeOn(mySocket):
sendInstructions(mySocket,[27,33,48])
def emphasizeOff(mySocket):
sendInstructions(mySocket,[27,33,0])
def lineFeed(mySocket,number):
for i in range(number):
sendInstructions(mySocket,[0x0a,])
def paperCut(mySocket):
sendInstructions(mySocket,[29,86,0])
def sendText(mySocket,string):
mySocket.send(string.encode('UTF-8'))
def main():
mySocket = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
mySocket.connect(('192.168.1.15',9100))
lines = ["Hello,","World!"]
emphasizeOff(mySocket)
lineFeed(mySocket,2)
for l in lines:
if lines.index(l) == 0:
emphasizeOn(mySocket)
else:
emphasizeOff(mySocket)
sendText(mySocket,l)
lineFeed(mySocket,2)
lineFeed(mySocket,4)
paperCut(mySocket)
mySocket.close()
if __name__=="__main__":
main()
Và điều này có phải làm gì với người ngoài hành tinh thanh toán? – LarsH
+1 cho người ngoài hành tinh thanh toán – Seth
@LarsH - chỉ để tăng sự chú ý của bạn:) ... Không nghiêm túc: Tôi cần in dữ liệu bitmap và khi tôi cảm thấy cần minh họa điều đó, tôi đã nghĩ đến việc sử dụng một ví dụ nổi tiếng, thông điệp Arecibo . Nhưng những gì bạn sẽ gửi một người nước ngoài, nếu bạn chúng tôi một máy in POS? Hóa đơn! – vikingosegundo