From c782578f9f847a69641c52396bfb456c61cb3be6 Mon Sep 17 00:00:00 2001 From: minack Date: Mon, 27 Jul 2009 23:24:12 +0000 Subject: [PATCH] Added some macros to manipulate values contained within an object id value. Removed MAX_BACNET_OBJECT_ID, as it had already been defined in bacdef.h. --- bacnet-stack/include/bacdef.h | 3 +++ bacnet-stack/include/bacenum.h | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/bacnet-stack/include/bacdef.h b/bacnet-stack/include/bacdef.h index 929a1830..e41b8956 100644 --- a/bacnet-stack/include/bacdef.h +++ b/bacnet-stack/include/bacdef.h @@ -90,4 +90,7 @@ typedef struct BACnet_Object_Id { #define MAX_NPDU (1+1+2+1+MAX_MAC_LEN+2+1+MAX_MAC_LEN+1+1+2) #define MAX_PDU (MAX_APDU + MAX_NPDU) +#define BACNET_ID_VALUE(bacnet_object_instance, bacnet_object_type) ((((bacnet_object_type) & BACNET_MAX_OBJECT) << BACNET_INSTANCE_BITS) | ((bacnet_object_instance) & BACNET_MAX_INSTANCE)) +#define BACNET_INSTANCE(bacnet_object_id_num) ((bacnet_object_id_num)&BACNET_MAX_INSTANCE) +#define BACNET_TYPE(bacnet_object_id_num) (((bacnet_object_id_num) >> BACNET_INSTANCE_BITS ) & BACNET_MAX_OBJECT) #endif diff --git a/bacnet-stack/include/bacenum.h b/bacnet-stack/include/bacenum.h index 165a55fa..54122591 100644 --- a/bacnet-stack/include/bacenum.h +++ b/bacnet-stack/include/bacenum.h @@ -385,7 +385,6 @@ typedef enum { /* do the MAX as define rather than enumeration for devices and compilers that want to use smaller datatype for enum */ #define MAX_BACNET_PROPERTY_ID 4194303 -#define MAX_BACNET_OBJECT_ID (0x3FFFFFU) typedef enum { ACTION_DIRECT = 0, ACTION_REVERSE = 1