About the TQ Tool
The TQ Tool is a comprehensive viewer and testing utility for RIO Transmit Queue (TQ) files. It allows you to inspect individual records in TQ files, view parsed TLOG transactions, analyze EPSLOG data with field-level details, and send records directly to your RIO Server for testing. Supports all TQ record types: TLOG (999), Non-TLOG (996), EPSLOG (995), and TAX (994).
What are TQ Files?
RIO Transmit Queue (TQ) files contain queued records waiting to be sent to the RIO Server. Each record in a TQ file has a standardized 24-byte header followed by variable-length payload data. TQ files can contain multiple record types:
| MsgType |
Name |
Description |
| 999 |
TLOG |
IBM/Toshiba transaction log records (binary TLOG data) |
| 996 |
Non-TLOG |
Generic non-transaction data (configuration files, reports, etc.) |
| 995 |
EPSLOG |
EPS (Electronic Payment System) log records with FID-based fields |
| 994 |
TAX |
Tax configuration data (alternating key/value pairs) |
TQ File Format (24-Byte Header)
Every record in a TQ file begins with a standardized 24-byte header:
| Field |
Size |
Type |
Description |
| VLI |
2 bytes |
LE Uint16 |
Variable data length (payload size in bytes) |
| MsgType |
2 bytes |
LE Uint16 |
Message type (999=TLOG, 996=Non-TLOG, 995=EPSLOG, 994=TAX) |
| DtCollected |
12 bytes |
ASCII |
Collection timestamp (YYMMDDhhmmss format) |
| Flags |
1 byte |
Bitflags |
0x01=First Partial, 0x02=Middle Partial, 0x04=Last Partial, 0x08=CRC Present, 0x10=SubHdr Present |
| CRC |
4 bytes |
LE Uint32 |
CRC4690 checksum for payload data (if flag 0x08 set) |
| Filler |
3 bytes |
- |
Padding (ignored) |
Key Features
File Upload & Parsing
Drag and drop or select RIO TQ files for instant parsing. TLOGic automatically:
- Parses all 24-byte headers and validates structure
- Extracts and decodes SubHeader properties (key:value pairs)
- Validates CRC4690 checksums when present
- Displays statistics: total records, MsgType breakdown, date range, payload sizes
Record List View
Browse all records in the TQ file with a comprehensive list showing:
- Record Number - Sequential index for easy reference
- MsgType Badge - Color-coded by type (TLOG=Blue, Non-TLOG=Green, EPSLOG=Orange, TAX=Purple)
- Timestamp - When the record was collected
- Payload Size - Data size in bytes
- CRC Status - ✓ Valid, ✗ Invalid, or ○ No CRC
- Flags - Visual badges for partial records (F/M/L) and SubHeader (S)
Search & Filter Records
Quickly find specific records using powerful filter syntax:
mt:999 or type:tlog - Filter by message type
dt:240115 or dt:>=240115 - Date collected filter
crc:ok or crc:fail - CRC validation filter
partial:true - Show only partial records
subhdr:true - Show only records with SubHeader
size:>1000 - Payload size filter
Detailed Record View
Click any record to view comprehensive details in expandable sections:
- Header Fields - All 24-byte header values decoded and formatted
- SubHeader Properties - Key/value pairs (ftype, fname, totrecs, etc.) when present
- Raw Header Hex - Complete hex dump with ASCII view
- Parsed Payload - Format-specific interpretation (see below)
- Raw Payload Hex - Complete hex dump with ASCII view, popout modal, "Show All" expansion
Record Type Parsing
TLOG Records (MsgType 999)
TLOG records contain binary IBM/Toshiba transaction data. The TQ Tool:
- Attempts to parse the first transaction using the WASM parser
- Displays transaction fields: Terminal, Transaction Number, Date/Time, Cashier, Items, Total
- Falls back to raw hex/ASCII view if parsing fails (malformed data)
- Provides popout modal for detailed inspection
Tip: TLOG records in TQ files are complete transaction records, not fragments. You can view the full transaction structure just like you would with a standard TLOG file.
Non-TLOG Records (MsgType 996)
Non-TLOG records contain generic data like configuration files, reports, or custom data. The TQ Tool:
- Displays comma-separated values from the payload
- Shows record count and SubHeader properties (ftype, fname, totrecs)
- Provides raw hex/ASCII view for binary data inspection
EPSLOG Records (MsgType 995)
EPSLOG (Electronic Payment System Log) records use a sophisticated FID-based format with 204 defined fields. The TQ Tool provides comprehensive parsing:
EPSLOG Header Parsing
The TQ Tool parses the complete EPSLOG structure:
- VLI (4 bytes) - Record length stored in both Big Endian and Little Endian
- Header (27 bytes) - Node ID, Reason Code, Category, Type, Timestamp, Transaction State
- Header Extension (10 bytes) - Unknown fields and End-of-Header marker (0xFDFDFDFD or 0x20202020)
- FID Data (Variable) - Field ID + Length + Data repeating structure
- End-of-Record Marker - 0xEDEDEDED validation
EPSLOG FID Table Display
Each FID (Field ID) is displayed in a comprehensive table with:
| Column |
Description |
| FID |
Field ID in hex format (e.g., 0x42) |
| Field Name |
Human-readable name (e.g., "TotalAmount", "Track2", "XMLUserDataRequest") |
| Type |
Data type badge: A (ASCII), H (Hex), P (BCD), I (Integer), C (Character) |
| Value |
Type-specific formatted value (see formatting below) |
| Raw Hex |
Complete hex representation of field data |
Type-Specific Field Formatting
| Type |
Description |
Example |
| A |
ASCII - Printable text, null-terminated, XML preserved |
<HighRiskItemsPresent>true</HighRiskItemsPresent> |
| H |
Hex - Binary data as hex string |
A1 B2 C3 D4 |
| P |
BCD - Binary Coded Decimal to numeric string |
12345 from 12 34 50 |
| I |
Integer - Little Endian 1/2/4-byte integer, amounts formatted as currency |
$46.60 from raw value 4660 |
| C |
Character - Single character with hex value or just hex for non-printable |
'X' (0x58) or 0x00 |
Supported EPSLOG Fields: The TQ Tool recognizes all 204 standard EPSLOG fields including MessageType, Terminal, TransactionNumber, TotalAmount, Track2, EMVTagData, XMLUserDataRequest, and many more. Unknown FIDs are displayed as "Unknown" with best-effort interpretation.
TAX Records (MsgType 994)
TAX records contain tax configuration data stored as alternating key/value pairs. The TQ Tool:
- Parses key/value pairs (e.g., "A", "0% SALES TAX", "B", "6.25% SALES TAX")
- Displays as a formatted table for easy reading
- Shows raw hex/ASCII view for verification
Sending Records to RIO Server
Testing Feature: The TQ Tool allows you to send individual records or batches directly to your RIO Server for testing. This is useful for validating server behavior with specific TQ file data.
Sending Options
The TQ Tool provides multiple ways to send records:
- Send Selected Records - Select multiple records with checkboxes and send as a batch
- Send All Records - Send the entire TQ file contents
- Send Filtered Records - Apply a search filter, then send only matching records
- Configuration - Set RIO Server URL, store number, division, format, UTC offset, and authentication
RIO Configuration
Click the Config button to set up your RIO Server connection:
| Setting |
Description |
| Service URL |
Your RIO Server endpoint (e.g., https://rio.example.com/trickle/file) |
| Store Number |
Store number to use in RioRequest messages |
| Division |
Division code for RioRequest |
| Format |
Format identifier (defaults to 'GENERIC' if not in SubHeader) |
| UTC Offset |
Timezone offset (e.g., -05:00) |
| Basic Auth |
Optional username/password for HTTP Basic Authentication |
Send Results & Tracking
After sending records, the TQ Tool displays detailed results:
- ✓ Success - Green checkmark, 200 OK response
- ✗ Failed - Red X with HTTP status code and error message
- Response Time - Latency in milliseconds
- View Request/Response - Click to see full RioRequest XML and server response
- Retry Failed - Re-send only failed records
Export Features
Export Options
- Export as JSON - Download selected/filtered records as JSON with all parsed fields
- Export Raw Binary - Reconstruct TQ file format with selected/filtered records (24-byte headers + payloads)
- Copy to Clipboard - Copy selected record's hex data
- Pop Out Modal - View parsed payload or raw hex in full-screen modal for detailed inspection
Common Use Cases
Debugging RIO Integration
- Inspect exact record structure sent to RIO Server
- Validate CRC checksums
- View SubHeader properties (ftype, fname, totrecs)
- Send problematic records individually to isolate issues
Testing Specific Scenarios
- Filter to specific MsgTypes for targeted testing
- Test EPSLOG payment records with XMLUserDataRequest
- Validate TLOG transaction parsing
- Test partial record handling
Data Validation
- Verify all records have valid CRC checksums
- Check for missing or corrupted SubHeaders
- Validate EPSLOG FID data formatting
- Ensure proper timestamp formatting
Analysis & Exploration
- View distribution of MsgTypes in TQ files
- Analyze payload size statistics
- Explore EPSLOG field usage (which FIDs are present)
- Examine date ranges and collection patterns
Best Practices
Tips for Success
- Always check CRC status badges - invalid CRCs may indicate data corruption
- Use SubHeader properties (especially
fname and ftype) to understand record context
- For EPSLOG records, use the "Pop Out" modal to view long XML data in field values
- Test with a small subset of records first before sending entire TQ files
- Export records as JSON to share specific examples with your team
- Use search filters to quickly find records by date, type, or CRC status
- When debugging, compare Raw Hex view with Parsed Payload to verify parsing accuracy
Important Notes
- TQ files must be valid RIO TQ format (24-byte header + variable data)
- EPSLOG records require exactly 512-byte blocks (multiples of 512)
- Partial records (flags 0x01, 0x02, 0x04) are displayed individually - assembly not automatic
- Sending records to production RIO Servers should be done with caution and approval
- Large TQ files (>1000 records) may take time to parse and render