75 #ifndef FIRMWARE_SRC_TRANSCEIVER_H_
76 #define FIRMWARE_SRC_TRANSCEIVER_H_
82 #include "system_config.h"
83 #include "peripheral/ic/plib_ic.h"
84 #include "peripheral/ports/plib_ports.h"
85 #include "peripheral/tmr/plib_tmr.h"
86 #include "peripheral/usart/plib_usart.h"
87 #include "system/int/sys_int.h"
332 const uint8_t* data,
unsigned int size);
355 unsigned int size,
bool is_broadcast);
367 unsigned int iov_count);
538 #endif // FIRMWARE_SRC_TRANSCEIVER_H_
uint16_t start
The start of the discovery response.
Definition: transceiver.h:157
A RDM Get / Set Request.
Definition: transceiver.h:117
An RDM controller and/or source of DMX512.
Definition: transceiver.h:104
Invalid data received.
Definition: transceiver.h:132
PORTS_BIT_POS break_bit
The port bit to use to generate breaks.
Definition: transceiver.h:257
INT_VECTOR input_capture_vector
The vector to use for IC.
Definition: transceiver.h:261
bool Transceiver_SetBreakTime(uint16_t break_time_us)
Set the break (space) time.
A TX error occurred.
Definition: transceiver.h:129
TransceiverOperation
Identifies the various types of transceiver operation.
Definition: transceiver.h:113
uint16_t Transceiver_GetBreakTime()
Return the current configured break time.
uint16_t break_time
The break time in 10ths of a uS.
Definition: transceiver.h:179
uint16_t break_start
The start of the break.
Definition: transceiver.h:168
Mode change complete.
Definition: transceiver.h:119
The operation was cancelled.
Definition: transceiver.h:142
TransceiverTiming * timing
The timing parameters associated with the operation.
Definition: transceiver.h:233
The frame timed out (inter-slot delay exceeded)
Definition: transceiver.h:140
unsigned int length
The length of the received data.
Definition: transceiver.h:226
INT_VECTOR timer_vector
The vector to use for timer.
Definition: transceiver.h:264
The hardware settings to use for the Transceiver.
Definition: transceiver.h:250
bool Transceiver_QueueRDMDUB(int16_t token, const uint8_t *data, unsigned int size)
Queue an RDM DUB operation.
uint16_t Transceiver_GetMarkTime()
Return the current configured mark-after-break (MAB) time.
INT_SOURCE usart_rx_source
The source of USART RX.
Definition: transceiver.h:254
INT_SOURCE timer_source
The source to use for timer.
Definition: transceiver.h:265
uint16_t mark_start
The start of the mark / end of the break.
Definition: transceiver.h:169
An IOVector, with a pointer to memory and a length attribute.
Definition: iovec.h:35
The test failed.
Definition: transceiver.h:143
Receive mode.
Definition: transceiver.h:118
bool Transceiver_QueueRDMRequest(int16_t token, const uint8_t *data, unsigned int size, bool is_broadcast)
Queue an RDM Get / Set operation.
TransceiverOperationResult
The result of an operation.
Definition: transceiver.h:126
bool(* TransceiverEventCallback)(const TransceiverEvent *event)
The callback run when a transceiver event occurs.
Definition: transceiver.h:241
int16_t token
The Token associated with the operation.
Definition: transceiver.h:206
bool Transceiver_QueueDMX(int16_t token, const uint8_t *data, unsigned int size)
Queue a DMX frame for transmission.
bool Transceiver_SetRDMBroadcastTimeout(uint16_t delay)
Set the controller timeout for broadcast RDM commands.
bool Transceiver_SetRDMResponderJitter(uint16_t max_jitter)
Configure the jitter added to the responder delay.
Self test mode.
Definition: transceiver.h:106
TransceiverOperation op
The type of operation that triggered the event.
Definition: transceiver.h:211
bool Transceiver_QueueSelfTest(int16_t token)
Schedule a loopback self test.
void Transceiver_Reset()
Reset the transceiver state.
uint16_t Transceiver_GetRDMResponseTimeout()
Return the controller's RDM response timeout.
uint16_t Transceiver_GetRDMResponderDelay()
Return the RDM responder delay.
TransceiverOperationResult result
The result of the operation.
Definition: transceiver.h:216
void Transceiver_Initialize(const TransceiverHardwareSettings *settings, TransceiverEventCallback tx_callback, TransceiverEventCallback rx_callback)
Initialize the transceiver.
PORTS_CHANNEL port
The port to use for control signals.
Definition: transceiver.h:256
const uint8_t * data
The received data. May be null.
Definition: transceiver.h:221
INT_SOURCE usart_tx_source
The source of USART TX.
Definition: transceiver.h:253
No response was received within the RDM wait time.
Definition: transceiver.h:131
TMR_MODULE_ID timer_module_id
The timer to use.
Definition: transceiver.h:263
The operation completed successfully.
Definition: transceiver.h:127
PORTS_BIT_POS rx_enable_bit
The RX Enable bit.
Definition: transceiver.h:259
INT_SOURCE input_capture_source
The source to use for IC.
Definition: transceiver.h:262
uint16_t mark_time
The mark time in 10ths of a uS.
Definition: transceiver.h:180
A frame was received.
Definition: transceiver.h:135
An RDM Discovery Unique Branch.
Definition: transceiver.h:115
uint16_t Transceiver_GetRDMResponderJitter()
Return the RDM responder jitter.
uint16_t Transceiver_GetRDMDUBResponseLimit()
Return the Controller DUB response timeout.
bool Transceiver_SetMarkTime(uint16_t mark_time_us)
Set the mark-after-break (MAB) time.
INT_VECTOR usart_vector
The vector to use for the USART.
Definition: transceiver.h:252
USART_MODULE_ID usart
The USART module to use.
Definition: transceiver.h:251
bool Transceiver_SetMode(TransceiverMode mode, int16_t token)
Change the operating mode of the transceiver.
An RDM device and/or receiver of DMX512.
Definition: transceiver.h:105
uint16_t mark_end
The end of the mark.
Definition: transceiver.h:170
bool Transceiver_QueueRDMResponse(bool include_break, const IOVec *iov, unsigned int iov_count)
Queue an RDM Response.
Self test complete.
Definition: transceiver.h:120
A broadcast Get / Set Request.
Definition: transceiver.h:116
bool Transceiver_SetRDMDUBResponseLimit(uint16_t limit)
Set the maximum time allowed for a DUB response.
A frame was received.
Definition: transceiver.h:134
Information about a transceiver event.
Definition: transceiver.h:196
uint16_t Transceiver_GetRDMBroadcastTimeout()
Return the current controller timeout for broadcast RDM commands.
The first 'undefined' mode.
Definition: transceiver.h:107
bool Transceiver_SetRDMResponderDelay(uint16_t delay)
Configure the delay after the end of the controller's packet before the responder will transmit the r...
bool Transceiver_QueueASC(int16_t token, uint8_t start_code, const uint8_t *data, unsigned int size)
Queue an alternate start code (ASC) frame for transmission.
IC_TIMERS input_capture_timer
The timer to use for IC.
Definition: transceiver.h:266
const int16_t TRANSCEIVER_NO_NOTIFICATION
Suppress event notifications.
IC_MODULE_ID input_capture_module
The IC module to use.
Definition: transceiver.h:260
TransceiverMode Transceiver_GetMode()
The operating mode of the transceiver.
void Transceiver_Tasks()
Perform the periodic transceiver tasks.
INT_SOURCE usart_error_source
The source of USART errors.
Definition: transceiver.h:255
bool Transceiver_SetRDMResponseTimeout(uint16_t delay)
Set the controller's RDM response timeout.
uint16_t end
The end of the discovery response.
Definition: transceiver.h:158
Data was received.
Definition: transceiver.h:130
No response (DMX512) or ASC.
Definition: transceiver.h:114
The timing measurements for an operation.
Definition: transceiver.h:149
TransceiverMode
The operating modes of the transceiver.
Definition: transceiver.h:103
PORTS_BIT_POS tx_enable_bit
The TX Enable bit.
Definition: transceiver.h:258