Universal Data Parser
Latest version: 5.0.1 build 1126. November 28, 2025.
The Universal Parser module is an XML-driven extension for our data loggers. It lets you design flexible parsers for complex text protocols and simple binary packets, using only XML configuration files. You do not need to write Python code or create a custom proxy module. Parser behavior is defined by rules, conditions, and field definitions inside an editable XML files that the module loads at startup.
This module is ideal when standard ASCII Data Parser features are not enough. You can describe nontrivial record formats and multiple record types from one device. The parser reads incoming data, applies your XML rules, and produces structured values ready for logging, export, or further processing.
A configuration file uses standard XML 1.0 syntax with a clear tree structure. Each node describes a part of the parser configuration, and each node has attributes that provide additional parameters for data processing. Logic values use numeric flags, where 0 means false and 1 means true. This makes the module suitable for many industrial non-standard protocols.
Practical Text Data Parsing Example
Consider a device that sends measurement lines as plain text over a serial port to Advanced Serial Data Logger:
TIMESTAMP ;TEMP;HUM ;STATUS 2025-01-02 08:00:00;23.5;41.2;OK<CR>
With Universal Parser, you can define a configuration that splits this line into fields and maps them to variables. A simplified XML snippet might look like this:
<Config name="EnvLogger [Text]" logtitle="EnvLogger"> <Response begin="" end="#0D" > <Item type="delimit" pos="1" ordernum="1" delimiter=";" name="DATE_TIME_STAMP" type="datetime" format="YYYY-MM-DD HH:MM:SS" /> <Item type="delimit" pos="1" ordernum="2" delimiter=";" name="TEMP" type="float" /> <Item type="delimit" pos="1" ordernum="3" delimiter=";" name="HUM" type="float" /> <Item type="delimit" pos="1" ordernum="4" delimiter=";" name="STATUS" type="string" /> </Response> </Config>
In this example, Response defines a record separator that ends with a carriage return. Item nodes define how to interpret segments of the line. The module extracts the timestamp into the DATE_TIME_STAMP variable, converts the temperature and humidity to numeric values, and stores the status as a string. You can then use these variables in the logger to build export strings, database records, or Excel rows.
Key Features
- XML-based parser configuration without the need for Python or other programming languages unlike "Python plugin" or "Proxy plugin" modules.
- Support for both text protocols and simple binary packets.
- Flexible field definition and mapping to logger variables for use in export plugins.
- Full support of Windows ANSI encodings and UTF-8.
- Clear, structured XML with configurable nodes and attributes for implementing different data parsing algorithms.
Summary
The Universal Parser module provides a configurable way to turn raw serial or network data into structured records using XML configurations. It supports text and binary formats, and it can create robust and adaptable parsers without writing code.