Stream manager.
The supported streams on version 3.9.x are RTCM / NMEA / UBX / SKYTRAQ.
ESPrtk also allows the user to configure filters to manage the RTK data stream running through it. Can insert data, remove a message, repeat a message, replace a message with other data, minimize the appearance of a message ... and set a speed limit (highest ) for Push-Out data .
This feature applies only to RTK applications, they include:
- MQTT_Base
- NTRIP_Base
- Radio_Base
- MQTT_Rover
- NTRIP_Rover
- Radio_Rover
- MQTT_Rover_Repeater
- NTRIP_Rover_Repeater
- Radio_Rover_Repeater
- UART_Base_to_UART_Rover
For MQTT Base / NTRIP Base / Radio Base applications, the input data (PUSH-IN) for the filter is obtained from the RX-UART_1 (or RX-UART_2) port.
For MQTT Rover / NTRIP Rover / Radio Rover applications, the input data for the filter is data received from the MQTT / NTRIP or Radio Base server.
Functions :
- Auto adding: Automatically inserts data (user's RAW byte array) at the most appropriate position of the main data stream.
- Insert / Inject: Only insert data (the user's RAW byte array) in front of or after a specified message.
- Reduce: Remove this message from the main data stream with a finite number of times, then allow this message to run through the data stream again.
- Remove: Removes this message from the main stream forever.
- Repeat: Repeat this message with any number of repeats.
- Replace: Removes this message from the main data stream and replaces it with the insert data (the user's RAW byte array).
Other function :
- Print status: Allows printing the status (Message type, Name, size ...) of the data PUSH-IN and PUSH-OUT.
- Limit speed PUSH-OUT: Creates a bottleneck effect at the output of the filter to minimize the overall bandwidth of the main data stream. The speed of the output stream is always less than or equal to the speed of the input stream and is equal to 1 value specified by the user.
Use the Script command.
- A Script command is surrounded and framed by 2 characters '[' and ']'.
- The data in a Script frame are separated by the '^' character.
- For example: [R-1009 ^ ISB ^ A0B0C0]. ESPrtk 3.9.x allows entering more than one Script command with a storage limit of 1500 bytes.
| Custom AT Code | Example |
[ADD^a^b] | Auto to insert RAW data . Cycle a second. RAW in HEX : b | [ADD^1^D300063F00000000009925CA] - Auto add empty RTCM 1008 to stream, cycle 1 second
|
[T-ID^RMV] | If receive message . Remove this message | [R-1007^RMV] - Remove RTCM 1007 |
[T-ID^ISA^a] | Inser RAW data After T-ID message. RAW in HEX : a | [R-1008^ISA^0A0B0C0D] - Insert 4 byte 0A0B0C0D after RTCM-1008 message. |
[T-ID^ISB^a] | Insert RAW data Before T-ID message. RAW in HEX :a | [N-GPGGA^ISB^0A0B0C0D] - Insert 4 byte 0A0B0C0D before NMEA-$GPGGA message. |
[T-ID^RPL^a] | Replace T-ID message by RAW data . RAW in HEX : a | [R-1074^RPL^0A0B0C0D] - Replace RTCM-1074 message by 4 byte 0A0B0C0D |
[T-ID^RPT^a] | Repeat T-ID message . Max repeat : a | [N-GPRMC^RPT^3] -Repeat NMEA-$GPRMC message 3 times.
|
[T-ID^RDC^a] | Count T-ID message . If (Count < a ) : Disable this message , set Count=Count+1. If (Count >= a ) : Enable this message go through stream , reset Count = 0 . | [R-1005^RDC^3] - Reduce RTCM-1005 message 3 times. |
T-ID | Type message | Example |
R-i | Type = RTCM , ID Integer = i | R-1007 R-1005 |
N-i | Type =NMEA, Header String= i | N-GPGGA N-GNRMC |
U-i1i2 | Type =UBX , Class message HEX= i1, ID message HEX = i2 | U-0106 U-0A02 |
S-i | Type =Skytraq , ID message HEX = i | S-01 S-0E |
Example:
Auto insert (inject) NMEA/RTCM to stream.
In addition, ESPrtk also supports automatic insertion of some RTCM messages such as 1005,1006,1007,1008,1032,1033 for RTCM stream and GGA for NMEA stream :
see Position and AntennaIntroduce.
This feature allows users to insert the default raw data into the main data stream of the RTK application, often using this feature to insert broadcast data or remote control data (from Base to Rover). The insert processing will be done automatically to ensure the main data stream will not be interrupted.
It can be applied on both Basestation and Rover, they include:
- ESPrtk Basestation RTK - NTRIP.
- ESPrtk Basestation RTK - MQTT.
- ESPrtk Basestation RTK - Radio.
- ESPrtk Rover RTK - NTRIP.
- ESPrtk Rover RTK - MQTT.
- ESPrtk Rover RTK - Radio.
On ESPrtk 3.0.0, the maximum insert size is 500 Bytes for Basestation RTK and 500 Bytes for Rover RTK. For Rover RTK Repeater, the total size is 1000 Bytes.
Configuration on WEB Configure.
The configuration for this feature is hidden in the "System" tab, visit http://192.168.4.1/system to go to the configuration page.
Insert and Cycle:
RAW data insertion is always guaranteed by ESPrtk to keep the main data stream inserted safely (without interrupting them).
If RAW data cannot be recognized, by default it will be inserted at the beginning or end of a complete data block.
The insertion cycle is counted in seconds, with a value range from 0 to 10000 seconds. If the cycle is set to 0, ESPrtk will insert every time (equal to the update rate of the data stream).
Check input:
This tool supports HEX input checking, finding errors, printing error locations and error correction suggestions.
The input text format is HEX numeric:
- • Allow character: 0123456789abcedfABCDEF and White Space
- • Cannot contain newline character ( Enter ).
- • Each hex value must be separated by a space.
- • A Byte Hex must contain at least 1 characters (and no more than 2 characters).
- • Irrespective of uppercase and lowercase letters.
For example, all four ways below are valid and have the same output:
- • Hex 1 = 01 02 0F 07 00 0D
- • Hex 2 = 1 2 F 7 0 D
- • Hex 3 = 1 2 f 7 0 d
- • Hex 4 = 01 2 f 07 0 d
All of the four Hex codes above have a unique output:
- • Hex = 01 02 0F 07 00 0D
For example:
For RTK Rover.
If data insertion is enabled on the Base to insert RAW_A, all Rover will receive stream data + RAW_A insert data.
If data insertion is enabled on Rover for RAW_B insertion, TX Rover output will output stream data + RAW_B insert data.
If data insertion is enabled on both Base and Rover, TX Rover output will output stream data + RAW_A insert data + RAW_B insert data.
For NTRIP Rover, if the data insertion function needs to be enabled on the Rover, the Base needs to send (insert) 30 Bytes of synchronization word.
Insert RTCM 1008 and other RTCM messages.
ESPrtk will automatically detect the type of data that the user enters, it will automatically reorganize them and insert them into the RTCM stream in the most reasonable way according to the RTCM flow standards.
Can insert more than 1 type of RTCM message, paste it consecutively into the input data frame, just make sure the total size does not exceed 500 Bytes (1000 characters).
For example: The empty message frame RTCM 1008 (total 13 Bytes) is:
The RTCM 1074 (total 59 Bytes) message frame is :
The final text will be:
Check result insert on U-Center :