[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Seeking a Terminal Emulator on Debian for "Passthrough" Printing



Hello,

I will try to be more explicit in my request and avoid giving the impression that I'm avoiding the discussion of technical issues. As you mentioned, my previous response seemed to resemble the replies of corporate support teams, but I don't really fall into the category of "those who are afraid to disclose some knowledge they might have heard." I have shared all the information I possess as a system engineer regarding the solution we use, and I have even gone beyond my responsibilities (scope) by addressing the aspect of the workflow that falls under the domain of our application developers working on the functional side.

However, I align more with the first category of individuals "who do not know the technical details" because I struggle to explore beyond the features offered by the proprietary emulator and other similar solutions that the project team has asked me to evaluate.

The problem likely lies, as Abraham Maslow said, in the fact that "If your only tool is a hammer then every problem looks like a nail." I have been constrained in my thinking by wanting to replicate the same implementation as the one I am familiar with in proprietary offerings and I find it challenging to understand how another solution could provide the same outcome while being implemented differently.

Do you expect something like that for Technical specifications for the required solution:

Connection Security:

  Utilization of the SSH protocol to ensure a secure connection to the Linux server, replacing Telnet.

Non-Printing Terminal in passthrough Mode:

  A terminal emulator is used to access a semi-graphical application with a text-based user interface. It should be capable of displaying multi-level grids and application selection menus seamlessly.

Intermediate Filter:

  A filter in between that in response to escape-code-1 starts sending data to the serial port instead of the terminal application and switches back to the terminal application on receiving of escape-code-2.
  Development of a transparent and responsive intermediate filter to ensure a smooth user experience. This filter must handle incoming and outgoing commands without disruption.

    Detection of Escape Codes: The filter continuously monitors incoming data from the terminal emulator to detect the presence of specific escape codes, such as "escape-code-1" and "escape-code-2."
    
    Switching to the Serial Port: When the filter detects "escape-code-1" in the incoming data, it switches to a data redirection mode towards the output device, such as the serial port. From that point on, all incoming data is directed to the output device instead of being displayed in the terminal application, while it continues to monitor communication with the printer.
    
    Waiting for Returns: The filter remains attentive to returns of information coming from the serial printer. These returns may include information about the printing status, errors, or other relevant data.
    
    Handling Returns: When the filter receives returns from the serial printer, it directly transmits them to the terminal application without any modification or addition. Thus, information from the serial printer is relayed as is to the terminal application without altering the pass-through mode.
    
    Reception of "Escape-code-2": When the filter detects "escape-code-2" in the incoming data (usually sent from the terminal application), it ceases redirecting data to the output device. At this stage, it returns to the normal behavior of the terminal emulator, displaying data in the terminal application.
    
    Transparent Processing: Throughout this process, the filter ensures that the transition between data redirection to the output device and display in the terminal application occurs seamlessly, so the user doesn't notice any interruptions or disruptions in data display or printing.
    
    Synchronization with the Terminal Application: The intermediate filter must stay synchronized with the terminal application to correctly detect "escape-code-1" and "escape-code-2." It must react promptly when it detects these codes to switch between redirection and pass-through modes. Poor synchronization could lead to interruptions or unwanted disruptions for the user.
    
    Synchronization with the Serial Printer: The filter must also maintain synchronization with the serial printer to handle returns of information appropriately and transmit them to the terminal application at the right moment. Desynchronization with the serial printer could result in the loss of crucial information regarding the printing status or errors.
    
    Latency Minimization: To ensure precise synchronization, the filter must minimize latency in data and signal processing. Excessive latency could lead to synchronization issues and unwanted delays.
    
    Exception Handling: Synchronization must also be considered when handling exceptions, such as the reception of multiple consecutive escape codes ("escape-code-1" or "escape-code-2"). The filter must be capable of responding adequately to avoid malfunctions and ensure the continuity of operations, necessitating precise synchronization.


Constraints:

  Reliability:
    The solution must be highly reliable, as any loss of sales or issues related to the generation of legal documents, such as invoices and receipts (whether printed or digital), is unacceptable. Business continuity is paramount.

  Compliance with French Standards and Certifications:
    The Point of Sale (POS) system must comply with French standards, including the NF525 standard, as well as French tax requirements. The solution should be capable of meeting current government regulations without requiring re-certification to maintain existing compliance.

  User-Friendliness and Reliability for Non-Technical Users:
    The solution must be simple and reliable since the management of the workstation aspect is handled by a different team than the system team. This team does not need to understand the terminal component, as is currently the case. Non-technical users, such as cashiers, will be using these workstations. Therefore, the solution should be user-friendly and not subject to modifications by these users.

  Independence from Terminal Emulator Updates:
    Since the terminal emulator must undergo regular updates for security reasons, especially regarding SSH, it must not be tightly coupled with the intermediate filter and should not disrupt the filter during terminal updates. Updates to the terminal emulator must be seamlessly managed to ensure system continuity.

Note:

  The PuTTY application has been evaluated to meet consultation needs but does not fulfill the requirements related to sales, especially concerning access to the serial printer.
  Terminals details include the use:
  Coonection by key type: ed25519 with passphrase
  The backspace key:  Control-? (127)
  The function keys and keypad: Xterm 216+
  Remote caracter set: ISO-8859-15:1999 (Latin-9, euro)
  Enable VT100 line drawing even in UTF-8 mode

Regards,
Thierry


Reply to: