RS232 comm spy, peek, sniff, capture, redirect

I would like to spy (peek, sniff, capture, redirect) data sent to a comm (RS232) port from an existing application that cannot be modified for purposes of modifying that information into a new data stream for export to another RS323 port. I have a navigation program that sends out  tracking information through an RS232 port using the newer NMEA 0183 protocal. I would like to modify this data to an older NMEA 0180 protocal so that my vintage auto pilot will accept it. I am looking for a VB 6.0 preferrable application. the application cannot interfere with the communications, it should only be able to read the data being sent out the RS232 port.
VincentpirainoAsked:
Who is Participating?
 
Jaime OlivaresConnect With a Mentor Software ArchitectCommented:
Well, let's start saying that this is done generally in C. Windows serial driver doesn't allow you to access serial port while other process is doing the same, so you need to replace Windows standard serial driver with a "filter serial driver" (SERIAL.SYS in WinXP, SERIAL.VXD in Win9x).
Once you haver replaced the driver you will need to talk with it with proper calling (usually done in C/C++). Here is an example of serial application that use the refered method:
http://www.getsomesoft.com/Utilities/System-Tools/11719-Serial-Monitor.html
0
 
VincentpirainoAuthor Commented:
jaime_olivares, thanks for response. Is there a VB solution (with souce code) that can interface to a "filter serial driver"? I checked out serial monitor but that seems to require $ plus C programming skills.
0
 
Jaime OlivaresSoftware ArchitectCommented:
Sincerely I don't know about a Visual Basic solution, sometimes you can translate C code to Visual Basic with some performance penality. But the stuff about the driver is fully valid.
0
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

 
Jaime OlivaresSoftware ArchitectCommented:
About using WinExec:

Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, Optional ByVal nCmdShow As Long) As Long

WinExec ("thesameprogram.exe");
0
 
VincentpirainoAuthor Commented:
jaime_olivarea, was your last entry meant for another question?
0
 
Jaime OlivaresSoftware ArchitectCommented:
Sorry, you are right.
0
 
VincentpirainoAuthor Commented:
I confirmed with HDD Software that VB won't be able to (easily anyway) interface with the object in Serial Monitor, this was there response:

"The classes and interfaces of the Serial Monitor are developed in such way, that are accessible only to compiling languages, such as C++ or Pascal. More precise, all interfaces are marked "local", so cannot take part in automation, which is the way Visual Basic uses them."

Any other thouhts?
0
 
Jaime OlivaresSoftware ArchitectCommented:
I recommend you to switch to C/C++ if you want to dedicate to this kind of applications. Visual Basic has many limitations and low performance.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.