What is Serial Monitor
HHD Software Serial Monitor is a mixed kernel/user mode application, aimed at Win32 developers, whose work is connected with serial ports. The Serial Monitor allows users to change the default behavior of the serial ports in Win32-based operating systems, where only one application is allowed to use the port at the present moment.
The Serial Monitor achieves it by providing the monitoring device driver, which lies upon the serial device driver of the Windows NT, Windows 2000 and Windows XP operating systems. This driver collects all information including data read and written, control codes received and sent to the underlying hardware by the user mode client, etc.
The filter device driver used by the Serial Monitor is the newest generation of the driver, which sources and logic are described and presented in our article in Windows Developers Journal.
Please read the license agreement before using this product.
HHD Software company site contains the special page, dedicated to the Serial Monitor. It can be accessed at the following URL: http://www.hhdsoftware.com/sermon.html. Check this page frequently to see the latest changes to the product.
Serial Monitor Features
The Serial Monitor does:
- work with any software that opens a serial port and initiate communication through it.
- intercept all data read from and written to the serial port.
- intercept and process all serial input/output control codes (IOCTLs), providing the full dump of their parameters.
- support data logging. An entire monitoring session can be logged (recorded) and then played back later.
- format data into different kinds of output, thus providing user with a full set of information.
- support copying to clipboard and export capabilities.
- work in Windows NT 4.0, Windows 2000/XP workstation/server operating systems.
- fully compatible with ACPI features, allowing you to bring the computer to standby/hibernate mode while running Serial Monitor.
- emulate data sending on behalf of monitored application.
Its unique capabilities make it very useful in the following scenarios:
Developing or Implementing Serial Protocol
When a company develops or implements the serial port protocol, it often faces the lack of software or hardware tools such as protocol analyzers and often comes to implementing its own tool, making it (probably temporary) the part of the software project.
This kind of protocol analyzers always breaks down the clear design of the software, increases the project development time and often becomes not so useful as it is supposed to be because of timing changing.
With Serial Monitor you do not need to do the job anymore. All you have to do is to start your application, start the Serial Monitor, attach it to the application and receive the complete view of what's going on between the device and the software.
All monitored data can be logged into the log file thus making the post-analyzing real. If you need to collect information during the whole night - there's no problem! Just start the Serial Monitor and go to bed. In the morning, you will get a small compressed log file that contains everything you need to find your bugs!
Reverse-engineering the Serial Protocol
There is another area where the Serial Monitor is very useful. It is an area of serial protocols reverse-engineering. We won't talk about copyright here, because there are many lawful areas of reverse-engineering applications. Here are at least two examples:
- The company has the protocol documentation and the working software (maybe as an example of protocol implementation) and needs to write its own software based on this protocol. There seems to be some error in the code, which can't be found using only the documentation, but, unfortunately, there are no sources for the working software.
Then the company uses the Serial Monitor to reverse-engineer the protocol based on the working software. There is no breaking the law, because you do not modify or reverse-engineer the code of the working software!
- The company has a device and the working software (e.g. device driver) but doesn't know the protocol. Moreover, the author of the software does not exist anymore, does not support the product anymore or has no rights for the product anymore. So the company is free to use the Serial Monitor to recreate the protocol from the working software and the device.
With Serial Monitor's ability of working with any kind of third-party user mode software, which uses serial ports to communicate with hardware devices, it becomes very easy to reconstruct the protocol with or without the protocol documentation.
The Serial Monitor, with its complete serial control codes support, very precise request timing and very fast work, can be used to test the correct functionality of any third-party software.
After running the software (with Serial Monitor attached to it) for a period of time and recording the log, the log can later be used to test the correctness of the protocol implementation.