OLE Developer Guide  Latest Git
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
transceiver.h File Reference

Detailed Description

The DMX512 / RDM Transceiver.

Include dependency graph for transceiver.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  TransceiverTiming
 The timing measurements for an operation. More...
 
struct  TransceiverEvent
 Information about a transceiver event. More...
 
struct  TransceiverHardwareSettings
 The hardware settings to use for the Transceiver. More...
 

Typedefs

typedef bool(* TransceiverEventCallback )(const TransceiverEvent *event)
 The callback run when a transceiver event occurs. More...
 

Enumerations

enum  TransceiverMode { T_MODE_CONTROLLER, T_MODE_RESPONDER, T_MODE_SELF_TEST, T_MODE_LAST }
 The operating modes of the transceiver. More...
 
enum  TransceiverOperation {
  T_OP_TX_ONLY, T_OP_RDM_DUB, T_OP_RDM_BROADCAST, T_OP_RDM_WITH_RESPONSE,
  T_OP_RX, T_OP_MODE_CHANGE, T_OP_SELF_TEST
}
 Identifies the various types of transceiver operation. More...
 
enum  TransceiverOperationResult {
  T_RESULT_OK, T_RESULT_TX_ERROR, T_RESULT_RX_DATA, T_RESULT_RX_TIMEOUT,
  T_RESULT_RX_INVALID, T_RESULT_RX_START_FRAME, T_RESULT_RX_CONTINUE_FRAME, T_RESULT_RX_FRAME_TIMEOUT,
  T_RESULT_CANCELLED, T_RESULT_SELF_TEST_FAILED
}
 The result of an operation. More...
 

Functions

void Transceiver_Initialize (const TransceiverHardwareSettings *settings, TransceiverEventCallback tx_callback, TransceiverEventCallback rx_callback)
 Initialize the transceiver. More...
 
bool Transceiver_SetMode (TransceiverMode mode, int16_t token)
 Change the operating mode of the transceiver. More...
 
TransceiverMode Transceiver_GetMode ()
 The operating mode of the transceiver. More...
 
void Transceiver_Tasks ()
 Perform the periodic transceiver tasks. More...
 
bool Transceiver_QueueDMX (int16_t token, const uint8_t *data, unsigned int size)
 Queue a DMX frame for transmission. More...
 
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. More...
 
bool Transceiver_QueueRDMDUB (int16_t token, const uint8_t *data, unsigned int size)
 Queue an RDM DUB operation. More...
 
bool Transceiver_QueueRDMRequest (int16_t token, const uint8_t *data, unsigned int size, bool is_broadcast)
 Queue an RDM Get / Set operation. More...
 
bool Transceiver_QueueRDMResponse (bool include_break, const IOVec *iov, unsigned int iov_count)
 Queue an RDM Response. More...
 
bool Transceiver_QueueSelfTest (int16_t token)
 Schedule a loopback self test.
 
void Transceiver_Reset ()
 Reset the transceiver state. More...
 
bool Transceiver_SetBreakTime (uint16_t break_time_us)
 Set the break (space) time. More...
 
uint16_t Transceiver_GetBreakTime ()
 Return the current configured break time. More...
 
bool Transceiver_SetMarkTime (uint16_t mark_time_us)
 Set the mark-after-break (MAB) time. More...
 
uint16_t Transceiver_GetMarkTime ()
 Return the current configured mark-after-break (MAB) time. More...
 
bool Transceiver_SetRDMBroadcastTimeout (uint16_t delay)
 Set the controller timeout for broadcast RDM commands. More...
 
uint16_t Transceiver_GetRDMBroadcastTimeout ()
 Return the current controller timeout for broadcast RDM commands. More...
 
bool Transceiver_SetRDMResponseTimeout (uint16_t delay)
 Set the controller's RDM response timeout. More...
 
uint16_t Transceiver_GetRDMResponseTimeout ()
 Return the controller's RDM response timeout. More...
 
bool Transceiver_SetRDMDUBResponseLimit (uint16_t limit)
 Set the maximum time allowed for a DUB response. More...
 
uint16_t Transceiver_GetRDMDUBResponseLimit ()
 Return the Controller DUB response timeout. More...
 
bool Transceiver_SetRDMResponderDelay (uint16_t delay)
 Configure the delay after the end of the controller's packet before the responder will transmit the reply. More...
 
uint16_t Transceiver_GetRDMResponderDelay ()
 Return the RDM responder delay. More...
 
bool Transceiver_SetRDMResponderJitter (uint16_t max_jitter)
 Configure the jitter added to the responder delay. More...
 
uint16_t Transceiver_GetRDMResponderJitter ()
 Return the RDM responder jitter. More...
 

Variables

const int16_t TRANSCEIVER_NO_NOTIFICATION
 Suppress event notifications. More...