Message ProcessingUtilizing the informations contained in the data output requires the host software to parse the received messages, regardless whether they are arriving live from a CLASSAX system or reside in a log file captured with a terminal program. Processing these informations in order to perform further computations, trigger actions or simply display them is only possible if numeric values are stored in dedicated numeric variables and literals like class names in dedicated string variables rather than both being contained somewhere in a character stream. Storing these numeric or string data in the correct variables requires to recognize them in the character stream and making use of them requires to initiate some process whenever they have been updated.

SENSOR LINE offers a software module to complete these tasks. CLXPARSE accepts input data from up to 50 different channels ("lanes") being entered in arbitrary portions which must only be marked with the correct lane information by the calling application software. It then isolates the particular lane data streams and parses them simultaneously.
CLXPARSE does not perform any data acquisition. This leaves the customer completely free to design the data link between the CLASSAX unit and the host computer according to his own considerations. Also, it does not make any difference whether the data are coming from a communication interface or from some file. Thus the module is also a great tool for subsequent analysis of previously captured data.
On recognition of the particular messages CLXPARSE stores the extracted informations in an internal queue which must explicitly be queried by the calling application. It then invokes specific external callback functions which must be defined by an initialization routine and which are passed the stored informations along with the lane specification. It is possible to define callback functions to be called regardless of the lane as well as such which are called only for one specific lane. Since these functions are also passed the lane spec one can additionally specify one common callback function for several lanes and another one for several other lanes while still being able to determine the origin of the data.
Separating execution of the callback functions from running the message parser is necessary to facilitate measures against interruption of the parser by freshly arriving data. Since the parser must hold static variables it can not be made reentrant and so input of new data must be delayed until it has properly returned.
Separate invocation of the callback functions allows for programming any action except recursive data query which does not make much sense. This includes invocation of the message parser as long as entry of new data is again delayed until it has returned. If the callback functions were called by the parser itself this would have to be forbidden because in this case they would of course all run prior to the return of the parser and calling it would be recursive.
CLXPARSE comes as a Win9x/XP standard DLL library. Comprehensive source code examples are available in Microsoft Visual Basic, Visual C/C++, GNU C/C++ and Microsoft Excel.
