RDM  HEAD (unstable)
Implementation of ANSI E1.31 (Streaming ACN)
View other versions:
uid.h File Reference

A type and helper functions for the Unique ID (UID) used in the RDM family of protocols. More...

Go to the source code of this file.

Data Structures

struct  RdmUid
 

Macros

#define RDM_UID_EQUAL(uidptr1, uidptr2)   ((uidptr1)->manu == (uidptr2)->manu && (uidptr1)->id == (uidptr2)->id)
 Determine if two UIDs are equal. More...
 
#define RDM_INIT_STATIC_UID(uidptr, manu_val, id_val)
 
#define RDMNET_INIT_DYNAMIC_UID_REQUEST(uidptr, manu_val)
 
#define RDMNET_INIT_DEVICE_MANU_BROADCAST(uidptr, manu_val)
 Initialize an RDMnet Device Manufacturer Broadcast UID with a Manufacturer ID. More...
 
#define RDM_UID_IS_BROADCAST(uidptr)   ((uidptr)->manu == kRdmBroadcastUid.manu && (uidptr)->id == kRdmBroadcastUid.id)
 Determine whether a UID is the E1.20 value BROADCAST_ALL_DEVICES_ID. More...
 
#define RDMNET_UID_IS_CONTROLLER_BROADCAST(uidptr)    ((uidptr)->manu == kRdmnetControllerBroadcastUid.manu && (uidptr)->id == kRdmnetControllerBroadcastUid.id)
 Determine whether a UID is the E1.33 value RPT_ALL_CONTROLLERS. More...
 
#define RDMNET_UID_IS_DEVICE_BROADCAST(uidptr)    ((uidptr)->manu == kRdmnetDeviceBroadcastUid.manu && (uidptr)->id == kRdmnetDeviceBroadcastUid.id)
 Determine whether a UID is the E1.33 value RPT_ALL_DEVICES. More...
 
#define RDMNET_UID_IS_DEVICE_MANU_BROADCAST(uidptr)    ((uidptr)->manu == kRdmnetDeviceBroadcastUid.manu && (((uidptr)->id & 0xffffu) == 0xffffu))
 Determine whether a UID is one of the E1.33 values defined by RPT_ALL_MID_DEVICES. More...
 
#define RDMNET_DEVICE_BROADCAST_MANU_MATCHES(uidptr, manu_val)   (RDMNET_DEVICE_BROADCAST_MANU_ID(uidptr) == manu_val)
 Determine whether an RDMnet Device Manufacturer Broadcast UID matches a specific ESTA Manufacturer ID. More...
 
#define RDMNET_DEVICE_BROADCAST_MANU_ID(uidptr)   ((uint16_t)((uidptr)->id >> 16))
 Get the ESTA Manufacturer ID from an RDMnet Device Manufacturer Broadcast UID. More...
 
#define RDM_UID_IS_NULL(uidptr)   ((uidptr)->manu == 0 && (uidptr)->id == 0)
 Determine if a UID is null. More...
 
#define RDMNET_UID_IS_DYNAMIC_UID_REQUEST(uidptr)   ((((uidptr)->manu & 0x8000u) != 0) && (uidptr)->id == 0u)
 Determine whether a UID is a Dynamic UID Request as defined in ANSI E1.33. More...
 
#define RDMNET_UID_IS_DYNAMIC(uidptr)
 Determine whether a UID is a Dynamic UID as defined in ANSI E1.33. More...
 
#define RDMNET_UID_IS_STATIC(uidptr)   (!RDM_UID_IS_NULL(uidptr) && ((uidptr)->manu & 0x8000u) == 0)
 Determine whether a UID is a Static UID as defined in ANSI E1.33. More...
 
#define RDM_GET_MANUFACTURER_ID(uidptr)   ((uidptr)->manu & 0x7fffu)
 Get the ESTA Manufacturer ID from a UID. More...
 
#define RDM_GET_DEVICE_ID(uidptr)   ((uidptr)->id)
 Get the Device ID from a UID. More...
 
#define RDM_UID_STRING_BYTES   14
 

Typedefs

typedef struct RdmUid RdmUid
 

Functions

int rdm_uid_compare (const RdmUid *a, const RdmUid *b)
 Compare two UIDs. More...
 
bool rdm_uid_to_string (const RdmUid *uid, char *buf)
 Create a string representation of a UID. More...
 
bool rdm_string_to_uid (const char *str, RdmUid *uid)
 Create a UID from a string representation. More...
 

Variables

const RdmUid kRdmBroadcastUid
 
const RdmUid kRdmnetControllerBroadcastUid
 
const RdmUid kRdmnetDeviceBroadcastUid
 

Detailed Description

A type and helper functions for the Unique ID (UID) used in the RDM family of protocols.