Hello,

I understand that the situation may seem complex and i apologize if my previous 
messages did not provide a clear overview of the problem. Allow me to summarize 
our current situation.
In this response, I will incorporate the various comments made by Greg, Charles 
Tomas, and incorporate a significant portion of Greg's excellent summary.

I have a client workstation with a proprietary terminal emulator running on 
Windows. This PC is connected to a POS printer via a COM serial port. The 
client workstation along with the printer and other connected devices, forms 
the client-side of our Point of Sale (POS) system. This client workstation is 
supported by various hardware devices, including barcode scanners and payment 
terminals. However, these barcode scanners and payment terminals are not within 
the scope of my current focus, which is to find open-source alternatives to 
proprietary solutions for our specific terminal emulator.

The printer model is a Thermal Line Dot Printing type and it supports the 
ESC/POS command system, created by Epson, which provides efficient and 
functional commands for communication with the printer. For more information on 
ESC/POS, please refer to this site: 
https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/index.html

The client PC connects to the server via Telnet but now, as part of our 
project, it uses SSH for secure connections. **It initiates a connection to the 
server to establish an interactive session.**

**At some point, the application will initiate a communication session to the 
"printer" and to the "other device" THROUGH the "printer", all tunneled THROUGH 
the telnet or ssh session using "bidirectional passthrough printing"**. 
Depending on the set of ASCII code sequences sent by the server, the terminal 
either displays characters on the screen or sends the command stream to the 
printer. In our case, it sends this stream to a serial port.

All commands received by the printer begin with ESC (ASCII 27, HEX 1B) or GS 
(ASCII 29, HEX 1D), followed by another character specifying the command. 
Normal text elements are simply sent separated by line breaks to the printer.

The passthrough printing concept is well explained in this guide by Anzio: 
https://www.anzio.com/resources/guide-anzios-passthrough-printing. Our 
server-side application, written in C, follows the same principle of code 
execution with the client workstation via the terminal emulator. Please note 
that our legacy proprietary terminal emulator is not the one provided by Anzio; 
however, in the context of considering a proprietary replacement solution, 
Anzio's solution is among those being evaluated.

Our objective is to explore open-source solutions for this configuration as we 
aim to replace the proprietary software.

I want to express my gratitude for your patience and valuable insights. Please 
let me know if this response now helps to clarify the situation.

Best Regards,
Thierry

Reply via email to