File syn_dmx512.h¶
FileList > proto > syn_dmx512.h
Go to the source code of this file
USITT DMX512-A Stage & Architectural Lighting Protocol Stack. More...
#include "../common/syn_defs.h"#include <stdbool.h>#include <stddef.h>#include <stdint.h>
Classes¶
| Type | Name |
|---|---|
| struct | SYN_DMX512_Master DMX512 Master Handle. |
| struct | SYN_DMX512_Slave DMX512 Slave Handle. |
Public Types¶
| Type | Name |
|---|---|
| enum | SYN_DMX512_RxState DMX512 Receiver State Machine States. |
Public Functions¶
| Type | Name |
|---|---|
| size_t | syn_dmx512_master_build_frame (const SYN_DMX512_Master * master, uint8_t * out_buf, size_t max_len) Build DMX packet payload (Start Code + Channel Slots). |
| uint8_t | syn_dmx512_master_get_channel (const SYN_DMX512_Master * master, uint16_t channel) Get channel value (1-indexed channel, 1..512). |
| void | syn_dmx512_master_init (SYN_DMX512_Master * master, uint16_t num_channels) Initialize DMX512 Master engine. |
| SYN_Status | syn_dmx512_master_set_channel (SYN_DMX512_Master * master, uint16_t channel, uint8_t value) Set channel value (1-indexed channel, 1..512). |
| uint8_t | syn_dmx512_slave_get_channel (const SYN_DMX512_Slave * slave, uint16_t offset) Read channel value from local slave footprint (0-indexed offset). |
| void | syn_dmx512_slave_init (SYN_DMX512_Slave * slave, uint16_t start_address, uint16_t footprint) Initialize DMX512 Slave engine. |
| bool | syn_dmx512_slave_is_updated (SYN_DMX512_Slave * slave) Check if a complete DMX packet was received since last query. |
| void | syn_dmx512_slave_rx_break (SYN_DMX512_Slave * slave) Signal line Break event to Slave engine (e.g. from UART framing error interrupt). |
| void | syn_dmx512_slave_rx_byte (SYN_DMX512_Slave * slave, uint8_t byte) Ingest incoming byte stream into Slave engine. |
Macros¶
| Type | Name |
|---|---|
| define | SYN_DMX512_BAUD_RATE 250000UL |
| define | SYN_DMX512_MAX_CHANNELS 512UDMX512 Protocol Constants. |
| define | SYN_DMX512_START_CODE_NULL 0x00U |
Detailed Description¶
Provides non-blocking, zero-malloc DMX512 Master transmitter and Slave receiver engines supporting standard 512-channel universes, start code filtering, start address slot mapping, and UART framing breaking.
Public Types Documentation¶
enum SYN_DMX512_RxState¶
DMX512 Receiver State Machine States.
enum SYN_DMX512_RxState {
SYN_DMX512_STATE_WAIT_BREAK = 0,
SYN_DMX512_STATE_WAIT_START,
SYN_DMX512_STATE_READ_SLOTS
};
Public Functions Documentation¶
function syn_dmx512_master_build_frame¶
Build DMX packet payload (Start Code + Channel Slots).
size_t syn_dmx512_master_build_frame (
const SYN_DMX512_Master * master,
uint8_t * out_buf,
size_t max_len
)
Parameters:
masterMaster handle.out_bufOutput buffer for frame payload.max_lenMaximum capacity of out_buf.
Returns:
Number of payload bytes written (1 + num_channels).
function syn_dmx512_master_get_channel¶
Get channel value (1-indexed channel, 1..512).
Parameters:
masterMaster handle.channelChannel index (1..512).
Returns:
8-bit slot value.
function syn_dmx512_master_init¶
Initialize DMX512 Master engine.
Parameters:
masterMaster handle.num_channelsActive universe length (1..512, default 512).
function syn_dmx512_master_set_channel¶
Set channel value (1-indexed channel, 1..512).
SYN_Status syn_dmx512_master_set_channel (
SYN_DMX512_Master * master,
uint16_t channel,
uint8_t value
)
Parameters:
masterMaster handle.channelChannel index (1..512).value8-bit slot value (0..255).
Returns:
SYN_OK on success, error code on invalid channel.
function syn_dmx512_slave_get_channel¶
Read channel value from local slave footprint (0-indexed offset).
Parameters:
slaveSlave handle.offsetFootprint channel offset (0 .. footprint - 1).
Returns:
Channel value byte.
function syn_dmx512_slave_init¶
Initialize DMX512 Slave engine.
Parameters:
slaveSlave handle.start_addressStart channel address (1..512).footprintChannel footprint length (e.g. 4 for 4-channel fixture).
function syn_dmx512_slave_is_updated¶
Check if a complete DMX packet was received since last query.
Parameters:
slaveSlave handle.
Returns:
true if updated, false otherwise.
function syn_dmx512_slave_rx_break¶
Signal line Break event to Slave engine (e.g. from UART framing error interrupt).
Parameters:
slaveSlave handle.
function syn_dmx512_slave_rx_byte¶
Ingest incoming byte stream into Slave engine.
Parameters:
slaveSlave handle.byteIncoming byte from UART rx.
Macro Definition Documentation¶
define SYN_DMX512_BAUD_RATE¶
define SYN_DMX512_MAX_CHANNELS¶
DMX512 Protocol Constants.
define SYN_DMX512_START_CODE_NULL¶
Standard dimmer start code
The documentation for this class was generated from the following file src/syntropic/proto/syn_dmx512.h