OxTS RT-Range data parsing utility
This simple parser is capable of parsing RT-Range Ethernet packets (NCOM and RCOM).
REQUIRES PYTHON 3.10 OR NEWER
Installation
Use pip to install
pip install rt-range
Usage
Basic parsing
from rt_range.ethernet import EthernetParser
rt_packet: bytes = ... # RT-Range Ethernet packet
# Parsing with automatic packet type identification
parsed: dict[str, ...] = EthernetParser.parse_rt_ethernet(rt_packet)
The packet type will be determined automatically.
Raises ValueError if the bytestring is not a valid RT-Range packet.
Raises NotImplementedError if the parser for detected type is not implemented.
Specifying packet type
from rt_range.ethernet import EthernetParser, PacketType
ncom_data: list[bytes] = ... # RT-Range Ethernet packets list
# Parsing with specified type
parsed: list[dict[str, ...]] = [
EthernetParser.parse_rt_ethernet(packet, PacketType.NCOM)
for packet in ncom_data
]
This forces the parser to use the specified packet type regardless of the packet contents. Use this only if you are sure about the packet content asit may lead to parsing errors or unexpected values in the parsing result.
Raises NotImplementedError if the parser for detected type is not implemented.
Using Pandas
import pandas as pd
from rt_range.ethernet import EthernetParser, PacketType
range_data: list[bytes] = ... # RT-Range Ethernet packets list
# Parsing and converting to DataFrame
parsed = pd.DataFrame([
EthernetParser.parse_rt_ethernet(packet, PacketType.RCOM_extended_range)
for packet in range_data
])
The returned list of dictionaries can be easily converted to the Pandas Dataframe for further processing.
Short documentation
Class EthernetParser
- Package:
rt_range.ethernet.eth_parser - Import:
from rt_range.ethernet import EthernetParser - Purpose: RT-Range NCOM and RCOM packets parsing
- Members:
-
Class method
is_implemented(cls, packet_type: PacketType)Returns
Trueif the parser for the specified packet type is implemented,Falseotherwise -
Class method
parse_rt_ethernet(cls, buffer: bytes, packet_type: PacketType | None = None)Parse bytes buffer to
dict[str, ...]
-
Enum PacketType
- Package:
rt_range.ethernet.eth_parser - Import:
from rt_range.ethernet import PacketType - Purpose: RT-Range packets types definitions
- Members:
- NCOM
- RCOM_lane
- RCOM_extended_range
- RCOM_wrapped_NCOM
- RCOM_trigger_time
- RCOM_polygon
- RCOM_multiple_sensor_point
- Unknown
Enum SyncByte
- Package:
rt_range.ethernet.eth_parser - Import:
from rt_range.ethernet import SyncByte - Purpose: Sync Byte definitions for distinguishing NCOM and RCOM
- Members:
- NCOM
- RCOM
Class Packet
- Package:
rt_range.ethernet.rt_packet - Import:
from rt_range.ethernet.rt_packet import Packet - Purpose: RT-Range parseable Packet
- Members:
-
Method
decode(self, buffer: bytes) -> tuple[np.array, Selector]Decodes bytes buffer with
np.dtypetonp.array -
Method
get(self, obj: np.array, name: str, selector: Selector)Decodes raw value using rules defined in packet structure
-
Method
translate(self, obj: np.array, selector: Selector) -> dict[str, ...]Translates
np.arrayinto a dictionary -
Method
parse(self, buffer: bytes) -> dict[str, ...]Wrapper for decoding and translation
-
Metadata
Release files for rt-range 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rt_range-0.3.2.tar.gz | 15.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rt_range-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.2 kB
Release files / rt_range-0.3.2.tar.gz
| Download URL | rt_range-0.3.2.tar.gz |
|---|---|
| Size | 15.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa92c400ca275f43f9f0af0b0f51622ec819af8c4dce8346d1e3ad5806ce57da
|
|
BLAKE2b-256 checksum How to use checksums |
5d7b83798dc3f7803331100970c473aab0501f968a119aeea8d3d976923c7a9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|
Release files / rt_range-0.3.2-py3-none-any.whl
| Download URL | rt_range-0.3.2-py3-none-any.whl |
|---|---|
| Size | 16.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1d8c19c5ff30315fdbf69475645c6611d96f01cebf7ec8e90310fa941270473d
|
|
BLAKE2b-256 checksum How to use checksums |
f2c33a404f43c8488d5a78282c68f07e8f88ec23f15965d832d76e701f3bffd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|