Module sacn::packet [] [src]

Parsing of sacn network packets.

The packets live within the scope of the ACN protocol suite.

Examples

let packet = AcnRootLayerProtocol {
    pdu: E131RootLayer {
        cid: Uuid::new_v4(),
        data: E131RootLayerData::DataPacket(DataPacketFramingLayer {
            source_name: "Source_A",
            priority: 100,
            synchronization_address: 7962,
            sequence_number: 154,
            preview_data: false,
            stream_terminated: false,
            force_synchronization: false,
            universe: 1,
            data: DataPacketDmpLayer {
                property_values: DataPacketDmpLayerPropertyValues {
                    start_code: 0,
                    dmx_data: &[1, 2, 3],
                },
            },
        }),
    },
};

let mut buf = [0; 638];
packet.pack(&mut buf).unwrap();

assert_eq!(
    AcnRootLayerProtocol::parse(&buf).unwrap(),
    packet
);

Structs

AcnRootLayerProtocol

Root layer protocol of the Architecture for Control Networks (ACN) protocol.

DataPacketDmpLayer

Device Management Protocol PDU with SET PROPERTY vector.

DataPacketDmpLayerPropertyValues

Property values carrying the actual DMX data.

DataPacketFramingLayer

Framing layer PDU for sACN data packets.

E131RootLayer

Root layer protocol data unit (PDU).

SynchronizationPacketFramingLayer

sACN synchronization packet PDU.

UniverseDiscoveryPacketFramingLayer

Framing layer PDU for sACN universe discovery packets.

UniverseDiscoveryPacketUniverseDiscoveryLayer

Universe discovery layer PDU.

Universes

List of universes.

UniversesIter

Iterator yielding each universe.

Enums

E131RootLayerData

Payload of the Root Layer PDU.