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