LArPix interface message formats¶
The module contains all the message formats used by systems that interface with larpix-control:
- dataserver_message_encode: convert from packets to the data server messaging format
- dataserver_message_decode: convert from data server messaging format to packets
-
larpix.format.message_format.
dataserver_message_encode
(packets, version=(1, 0))[source]¶ Convert a list of packets to larpix dataserver messages. DAQ board messages are formatted using 8-byte words with the first word being a header word describing the interpretation of other words in the message. These messages are formatted as follows
- All messages:
byte[0] = major version
byte[1] = minor version
byte[2] = message type
b'D'
: LArPix datab'T'
: Timestamp datab'H'
: Heartbeat
- LArPix heartbeat messages:
- byte[3] =
b'H'
- byte[4] =
b'B'
- byte[5:7] are unused
- byte[3] =
- LArPix data messages:
- byte[3] = io channel
- bytes[4:7] are unused
- bytes[8:] = raw LArPix 7-byte UART words ending in a single null byte
- Timestamp data messages:
- byte[3:7] are unused
- byte[8:14] = 7-byte Unix timestamp
- byte[15] is unused
Example usage:
from larpix.larpix import Packet, Key packet = Packet() packet.chip_key = Key('1-1-1') msgs = datserver_message_encode([packet]) msgs[0] # b'\x01\x00D\x01\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00' msgs[0][:8] # header msgs[0][8:] # data words
Parameters: - packets – list of
larpix.Packet
objects - version – optional, encode a message in specified version format,
tuple
of major, minor numbers
Returns: list of bytestream messages, 1 for each packet
-
larpix.format.message_format.
dataserver_message_decode
(msgs, version=(1, 0), **kwargs)[source]¶ Convert a list of larpix data server messages into packets. Additional packet meta data can be passed along via kwargs E.g.:
msg = b'\x01\x00D\x01\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00' packets = dataserver_message_decode([msg], io_group=1) packets[0] # Packet(b'\x04\x00\x00\x00\x00\x00\x00'), key of '1-1-1'
Parameters: - msgs – list of bytestream messages each starting with a single 8-byte header word, followed by N 8-byte data words
- version – optional, message version to validate against,
tuple
of major, minor version numbers
Returns: list of
larpix.Packet
andlarpix.TimestampPacket
objects