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