TC3x Multiplexer User's Guide
TC3x_UG_01_V03.10 -
Released
Page 26/50
10.01.2002
6.2.5 Trace.exe
Because the PC multiplexer implementation is based on several connected but separated applications
the trace information for the debug traces must be collected out of several trace files created by the
various modules. Trace.exe does this collecting by opening several trace files, searching cyclically for
new information, sorting the found trace information and writing it altogether to a file which then
contains the trace output of the whole system as a formatted text.
6.3 The Internal Pipe System
In order to pass data between the different applications of the PC multiplexer application, the Windows
pipe mechanism is used. This mechanism only exists in Windows NT and Windows 2000. For this
reason the multiplexer doesn’t work in Windows 9x.
The Windows pipe mechanism allows to easily pass data between different applications independently
on which systems they are running (on the same system or on different systems via LAN or even via
WAN). Please refer to the MSDN for a very detailed description of this technology.
The pipe mechanism is encapsulated in different C++ classes in the PC multiplexer implementation.
These classes are CMsgServWrap and CMsgClient. The idea behind the used expressions
“MsgServer” and “MsgClient” is that the server creates and controls a pipe to which clients can connect
and send data to the server. This means that an instance of CMsgServWrap can only receive data
from clients connected to its pipe. Instances of CMsgClient have to connect to the existing server – or
more exactly to their pipes – and can only send data out to this server. Accordingly, each application
which has to transmit data in both directions needs to have at least one instance of CMsgServWrap
and CMsgClient. The class CMessage implements an internal message system which is used for all
data transmissions. This message system is completely based on the pipe mechanism and has no
connection to the Windows message system. The different pipes are identified by their names shown
in Figure 13 on top of each module.