Serial Analyzer Version 2.8.0

May 2017, by Crovy

Serial Analyzer is a software Born in 2001 to monitor the data
exchanged by the two equipment on the serial line.
Time has evolved integrating connections tcp/ip client and Server
addition to recall BeanShell scripts
useful to compose real programs or simply calculate the checksum
frame to be transmitted.
This software, due to the driver to handle the serial line, can
run only on Windows, Linux and MacOsX operating systems.

There are many ways to define this software:

Serial line RS232, RS422 and RS485 analyzer;

Serial line RS232, RS422 and RS485 sniffer;

Serial line RS232, RS422 and RS485 monitor;

Communications software;

Serial Terminal;

Client Tcp/IP;

Server Tcp/Ip;

Client UDP;

Server UDP;

Bridge Tcp/Ip with serial line;

The main features are:

Connection type "Client" with connection Serial, Tcp/IP or UDP;

Viewing and setting signals control serial line;

Various display modes of data received/transmitted:

ASCII displays data encoded Ascii. In this mode any control characters (such as CR or LF) are visually interpreted according to their characteristics (for example, the head sends CR);

ASCII & HEX The data are displayed either hexadecimal encoding that Ascii (figures of minors 0x20 and over 0x7E are displayed as a space);

Different coloring for the data transmitted and received;

Since version 2.7.1 you can replace the control characters (from 0x00 to 0x1F) with the name used in the ASCII table. For example, the character 0x02 may appear as STX;

Optional recognition of two different "frame header" in order to facilitate the interpretation
of the data. The message "New frame" is displayed with a different color, also you can choose to
display the date and time or the difference in ms from previous frame or absolute time in ms;

Automatic answer to a really identified with a definable frame that can include part of the data received. Since version 2.7.0 you can define many automated answers acknowledging the received data;

Twelve areas where sequences set of data can be transmitted simply by pressing the function button. Since version 2.7.0 you can map a sequence to each key enabling the Command Mode;

Save files of everything that is sent and received;

Full text search in the terminal area;

Copying data from termial area to ClipBoard;

Transmission of the data contained in ClipBoard;

Block scrolling display;

Server Tcp/Ip or Udp function, from the list of connected
clients you can exclude a communication with a specific
clients by using a check box.
For the Tcp/Ip server there are three different ways:

TERMINAL the same Server will also used as a terminal
(the client connection is disabled) and transmitted data
is sent to all connected clients;

ECHO, like manner TERMINAL the difference is that the data
received from a client are sent to all other connected clients;

BRIDGE, like manner ECHO with ab option to make also a
client connection.
In this mode you can make a bridge between a Tcp/Ip server
and a serial connection.

For the Udp server is available only the TERMINAL mode that
works as the Tcp/Ip server;

Table Ascii coding integrated;

All settings are saved to a file properties;

Program mode to facilitate repetitive operations;

Interfacing with BeanShell that allows you to create real
Java programs to be executed from "HotKeys" or special menus.
Here are some typical BeanShell applications:

Calculating checksum frame data to be sent;

Verification of calculating the checksum of the data received;

Program for upload/download data;

Client Tcp/Ip conection bridged with a serial connection;

"Line Mode" option for send the data only after pressing the Enter key;

For the Serial Analyzer has been made a special installation program
valid for both Windows, Linux and experimental for MacOsX.
Just extract from the zip and run it. For installation need to be "Administrator"
of the system because drivers for serial lines are installed in Java folder
that generally can be found in sections accessible only to (root) Administrator.

This you see is an example of client tcp/ip connection.

This you see is an example of server tcp/ip connection.

For this program there is a
italian and
english manual (that is integrated in the program).
Requires J2SE 7.0 (version 1.7) or higher, are not supported versions below.

If you have a problem to manage the usb to serial converter
under Linux, you can view our
tutorial dedicated
to the usb to serial converter!
Since version 2.7.0 Serial Analyzer uses the librariesRXTX which operate automatically (ie without creating a link) the usb-serial converters, of course, the operating system must always operate such converters at the driver level.

To Do List Version 2.8.0

May 2017, by Crovy

implement the plug-in structure;

to be able to change the parameters of the connection from the scripts in BeanShell;

Known Bugs Version 2.8.0

May 2017, by Crovy

By pushing the "F10" button on keyboard, "File" menu will be opened
I think it is a problem of Java;

Sometimes, when opening tcp/ip server, this does not accept the connections
(from sure it seems more a problem of Router/firewall for connections from the outside);

Change Log

From the programming editor, by double clicking on a line with the "send" or "command mode"instruction, the string is automatically transmitted on the open connection channel.

Added the ability to load from the command line the .properties file and the .sap file.
They do not need parameters, just specify the full path and file name (with extension) of the files to upload.Example: java -jar SerialAnalyzer.jar /home/fabio/test.properties /home/fabio/test.sap

When you change the data of HotKeys (as to be transmitted and comments) now are automatically updated the tool tips of HotKeys and even all details of external HotKeys.
Before you had to save the file or open (or close and open) the connection;

Added Drag&Drop feature to load the configurations files (*.properties and *.sap) by simply dragging them into the application;

Changed IP address setting of the network connection in order to accept the host name (for example "localhost" instead of "127.0.0.1" instead);

Modified UDP connection so as to allow reception from any port of sender.
Before the sender had to convey the same port input;

Removed from the list of network interfaces names with the MAC address (in the case of multicast connection);

Fixed loop of exceptions (which effectively blocked any possibility to continue or quit the program) when you used a usb-serial adapter and this was removed with open access;

Fixed bug compiling file ".sap" when the file is in Windows format (sequece CR-LF instead of the only LF to go to next line);

When you select the main windows, if the standard in/out window is opened this is bring in front;

Added an option in the Command menu to automatically open/close the client connection when the main window is active/not active;

Added an option in the Tools menu to use the system proxy in the network connections.
The setting is automatically stored at the program level;

Added option to external HotKeys and ModemStatus panel to move it when you move the main window;

Added in the Help menu the check if your version of the SerialAnalyzer is up to date;

Added in the Help menu the link to the web site;

Added in the Help menu the link to the donation;

Saved, and restored at starting, the state open/close of external HotKeys and ModemStatus windows;

Visualized a messagge more clear when the bind port is not valid;

2.7.4 dated 4 July 14

Added serial line BaudRate selection of speeds 75, 110, 600, 56000, 128000, 153600 and 256000 (attention, not all systems support these BaudRate);

2.7.3 dated 13 February 13

Added the selection of the ethernet interface (means list of ip address) for MULTICAST connection;

2.7.2 dated 08 February 13

Modified Terminal Area for fix Java 7 bug that don't wrap the string at window size;

2.7.1 dated 04 December 11

Added option to replace the control characters (from 0x00 to 0x1F) with the name as used in the ASCII table. For example, the character 0x02 may appear as STX;

Added option to highlight, with custom colors, all sequences of characters matching a search pattern;

Modified font HotKeys definitons and Program editor, used monospace font instead of proportional;

Fixed initialization error of color customization. When you start the Serial Analyzer was set only the background color;

Fixed bug of UDP server management in Programming mode;

Fixed bug of UDP server management, would display the data received from connections not included (defined in Server Status tabs);

2.7.0 dated 11 April 11

Added client connection type MULTICAST;

Added the ability to change the font color of the transmitted, received and system messages;

Added the ability to change the background color of the terminal area;

Added entry in the File menu to load the last file properties used in the previous session;

Modified log file management. Now every time you start the log, you must select where to save the log file itself (it is proposed automatically on the last file used).
For this reason it was removed the "NewLog" button;

Added mode Command Mode;

Added management of Auto Answer;

Made available in the BeanShell script the following methods:

setLastBshFilePath;

getLastBshFilePath;

setLastBshFileName;

getLastBshFileName;

Replaced the old and no longer supported libraries JavaComm with libraries RXTX.
This allows you to use the Serial Analyzer even on Apple computers with Mac OS X (only x86 no ppc).

Modified filter on the file type when you load a properties file or program file (.sap) with not distinguishing between uppercase and lowercase;

Modified the definition and management of FrameHeader and FrameTail so you can write directly in ASCII characters (first you have to use the decimal/hexadecimal encoding used in SerialAnalyzer) and of indefinite length (the first was limited to 10 characters).

Changed the management of configuration parameters to allow some changes without having to reconnect to the client/server;

Changed the management of the configuration of client and server not allowing editing when connection is active;

Added in Programming the instruction sendK to send the string associated with key of Command Mode;

Fixed bug client parameters: at the start if is selected a serial connection could also change the IP address and port;

Fixed bug: at the start was not set the font size stored in the INI file;

Fixed bug: could happen that at the start of the program the window size was larger than the default or even larger than the screen blocking the same program.
The error appeared in the presence of a large amount of text assigned to a function key and saved in the default properties file or in the file specified on the command line.

2.6.2 dated 01 October 10

Fixed bug in management of RUN led. In the event of a program that calls a script. The led remains off.

Fixed bug saving management of configuration and program when you close the Serial Analyzer.
If you enter int the file save dialog and than abort the Serial Analyzer is closed.

Added option to not interpret the decimal encoding in the data sent. Useful when data in XML format.

Added "Line Mode" option to send data only after pressing the Enter key. Useful for sending AT commands to the modem, so you can correct the string with the backspace key.
It works only for data entered by keyboard.

Added command to send the "break" signal on the serial line.

2.6.1 dated 17 July 09

Fixed error in the management of the minimum dimensions of the main window.
This did not allow the proper scaling, for example, when it decided
not to see the edges or the StatusBar.

Fixed error on opening the client connection from a script in BeanShell.
In practice, the connection was opened but were not handled the data
sent and received.

Fixed error in interpretation of coding data encoded in decimal and hexadecimal.
The string "<abc>" was always interpreted as decimal encoded data and
the string was not transmitted.
Obviously the string "<065>" is always converted to "A".
The same error was also present for the hexadecimal encoding, the string
"[1K]" was not transmitted.

Fixed error in the "StdOut/Err" windows which did not allow
you to select and copy text;

Added serial line BaudRate selection of speeds 230400, 460800 and 921600
(attention, not all systems support these BaudRate).

Added display messages in the Terminal Area when changing the state of
control signals of the modem.
This messages are recorded also in the log file.

Added option to display system messages in the Terminal Area (actually
only the control signals of the modem).

Made available to scripts in BeanShell method "getApplicationDataString".

2.6.0 dated 11.02.09

Modified the logic of the server function to easily create a bridge
between different connections;

Modified managment of client tcp/ip connection for recognize when the
server close the connection;

Added in a StatusBar one LED to indicate when a Program
or a BeanShell script is running;

Added in View menu an option to select the LookAndFeel to be applied
to the program.
The LookAndFeel is managed by the JcLafChooser program used as a library.
To add more LookAndFeel see the instructions for the JcLafChooser.
The information about the used LookAndFeel is automatically saved so
when restart the SerialAnalyzer the LookAndFeel is the last used;

Added to View menu the managment of font size applied to the terminal area;
This information is saved so that when restarting the program is used
the last selected font size;

Added a panel containing the twelve HotKeys with the name taken from
the comment. The panel is displayed through the View menu;

Added in View menu an option to keep the program always on top;

Added to a View menu an option to disable the automatic control of the
minimum size of the frame so that it can reduce more than what is allowed;

Added to the Tools menu an item "Refresh Script Menu" to update the
BeanShell script menu without having to restart the SerialAnalyzer;

Enabled operation of the function keys (and then sending the data) when
is selected one of the two HotKeys tab;

Added in About window the license information;

Modified management of minimum frame size to fit automatically in
function of used LookAndFeel;

The management of the SystemInfo windows is managed by the program
JcProperties
used as a library;

Completely rewritten all the layout in order to stop using the library
layouts.jar;

Added a red border to all the windows setup parameters;

Added a green border in the modem and server status windows;

Added a panel, along the main, which contains the status of the modem.
The panel is the same as the Modem Status tab. The visualization is
activated through the View menu;

Modified management of "New Instance" to make it compatible
with Windows Vista;

Fixed error message appears when the version of Java is not compatible.
It show the name of another program ... JcRename!;

2.5.2 dated 16.09.08

Optimized data conversion in the selected view format;

Correct error in the method intToString available to BeanShell script.
The method converts the integer data into ascii string compliant to
the selected view format of the SerialAnalyzer parameters, instead of always
convert to the format CTRL -->HEX.
This error led to transmit data not corrected if in the settings was
not selected format CTRL -->HEX as incorrectly converted, for example,
selecting the decimal format 0x02 was sent as 30 32;

2.5.1 dated 01.07.08

When you run a script in BeanShell I check if the option "AutoAnswer"
is active, if it is active will be asked if you want to disable.
This is because the function "AutoAnswer" can alter the script execution;

When you close the application or when you load a new configuration
file/programme in addition to options to save the file was added the
option of "Cancel";

Fixed error in the "Program" section.
When running a program that call a BeanShell script, for example to
calculate the checksum, the following errors occours:

the cursor was not as busy;

instructions enableSendDisplay and enableRxDisplay not worked,
the data were always appear;

2.5.0 dated 18.03.08

Implemented client/server udp.
The maximum size of a package udp was set in 2048 byte whereas worldwide parameter
Maximum Transmission Unit (MTU) is set at 1500 bytes. For info view
Wikipedia.
In the table "Server Status" are recorded all udp connections, udp packets
are sent to all clients who are connected.
To delete a client select the check box "Exclude" and at the first
transmission this client is removed from the list.

Completely rewrited management recognition of Frame Header.
This is to solve the following problems:

Fixed error in the recognition of Frame Header where it was not possible
the recognition of frame header composed by Ascii
visualizable characters (i.e. characters between 0x20 and 0x7E)
and not visualizable characters (less than 0x20 and greather than 0x7E)
cannot be recognized. Actually recognisation works, but then the
inscription ==== NEW FRAME === does not appear in the right position;

Fixed error in writing to the log file when they recognize from
two different Frame Header with different length that caused an exception.

Correct size of the System Property window;

Fixed error management keyboard when you write directly in the terminal
area were not accepted the characters typed in combination with the
"Alt Gr" key (such as @ and # in Italian keyboard).

Fixed error that occurs when the Java Virtual Machine is updated.
In previous versions the Serial Analyzer not started and no errors was reported.
Now an error message is shown indicating how to resolve the problem.
This happens because when you install the Serial Analyzer the libraries
for managing serial connection will be installed in Java
Virtual Machine used at that time, when installing a new Java
Virtual Machine these libraries are not present.
To resolve this problem we must start the installation program of
Serial Analyzer and select to install only the "Library System".
In previous versions, to see if the problem is the same, you can
start the SerialAnalyzer from shell/dos with the command
"java -jar SerialAnalyzer.jar" if you see the following exception:
"Exception in thread "main" java.lang.NoClassDefFoundError: javax/comm/CommPortIdentifier"
the problem is the same.

When the program start the Java version is checked, in the case
of unsupported versions (less than 1.5) displays an error message;

2.4.3 dated 12.02.08

Added menu "View" with the commands to select which components view
and enable the visualization of the transmitted data.
By default, all entries are enabled and consequently all the components are displayed.
If you want to reduce the minimum size of the program window you can
choose to disable the display of some component.
The only exception, if the vertical resolution of the display is less
than 480 pixel edges of the buttons are disabled by default.
This change was designed to run the "SerialAnalyzer" on Asus "Eee PC"
which has a reduced vertical resolution of the display;

Minor changes to the layout to reduce the minimum size;
Also, to optimize the minimum size, we recommend that you install
(option provided in the installation program) LookAndFeel "Liquid";

Minor changes to optimize the management of tcp/ip server;

2.4.2 dated 13.12.07

The string of connection parameters, appears at the bottom left,
shows the parameters of active connection, client or server in
the previous version were displayed only data connection client.
The parameters are distinguished by letter that precedes the data:
"S" for server connection and "C" for the client connection.
If the server is used in a mode that allows you to activate a client
connection, the data presented refer to the client connection;

Added to the tcp/ip client connection the "bind" option where you
declare the port used by the client for the connection;

Added compilation of the program before the execution. This is
useful in the case of minor changes to be executed quickly;

In programming mode was changed the minimum time set for instructions
setSleep and wait from 100 to 10mS.
The default time for setSleep remains 100mS;

To the BeanShell interface was added the following methods:

clearTerminalArea to clear the terminal area;

clientIsOpen to see if the client connection is open;

clientOpen to open the client connection;

clientClose to close the client connection;

Fixed error on automated response. When the timer delay was set at
zero could happen that the automated response does not work anymore.
To restore the operation was necessary to restart the Serial Analyzer;

2.4.1 dated 01.10.07

Issuing the first version on the site for previous versions
see the Serial Analyzer manual;