Transport protocol

The data between the PC and STM is Protobuf preceeded by a 7-byte header and 5+n byte header.

The header itself consists of the following bytes:

DescriptionAmount of bytesValue
Start bytes10x2
Sender receiver10x0*
Message ID10x0
Size of content2number of bytes in content
Checksum of content1checksum of content (everything after 7th byte)
Checksum of header1checksum of header (first 6 bytes, skipping the leading 0x2)

Sender receiver

The sender-receiver value is documented as follows

Enums

ValueDescription
PC0
nRF1
STM2
STM - Memory3

Left 4 bits represent a sender Right 4 bits represent a recipient

STM - Memory has been separated for memory operations (Import, Export), due to ease of implementation.

The content consists of the following bytes:

DescriptionAmount of bytesValue
Protobuf Structure ID2Structure ID
Type112
Size of Protobuf content2number of bytes in the Protobuf content
Protobuf contentnThe Protobuf content that's being sent

Checksum

The message checksum is calculated by summing all bytes together and overflowing at a byte (sum % 256).

Structure ID

These structures are connected to the ones accessible here.

StructureID
Command0x10
Project0x11
Station0x12
Test0x13
Measurement0x14
RESERVED0x15
Result0x16
Setting0x17
Ota0x18
TesterInfo0x19
OtaInfo0x20
ExportCommand0x21
ImportCommand0x22