API documentation

This section describes requirements and guidelines.

Packetisers

We begin with the packetiser we have written as a default emulator this is a pretty simple package that uses the transmitter and payload classes defined in the configuration to send data.

At the moment we have an assumption that the ICD payload is being used. but minor changes to the packetise method would remove that requirement. Very minimal work is needed to replicate this with another payload.

The actual transmission protocol is abstracted into the transmitters and this is currently defaulting to SPEAD2 and UDP. But as this is almost completely abstracted should be easy to change.

Transmitters

The transmitters are envisaged to be at least as diverse as UDP, IBV and perhaps ROCE we have only implemented the UDP transmitter. But extensions should be trivial

Payloads

Receivers

UDP Protocol Multi-stream SPEAD2 receiver

class cbf_sdp.receivers.spead2_receivers.receiver(config, tm, loop)[source]

SPEAD2 receiver

This class uses the spead2 library to receive a multiple number of streams, each using a single UDP reader. As heaps are received they are given to a single consumer.

run()[source]

Receive all heaps, passing them to the consumer

Others