Fixed BACnetAccessRule application integration into Access Rights object. Improved unit testing and code coverage. (#790)

This commit is contained in:
Steve Karg
2024-09-30 14:04:30 -05:00
committed by GitHub
parent 7b18add6d3
commit c18768ba61
72 changed files with 335 additions and 229 deletions
+42 -68
View File
@@ -69,35 +69,6 @@ int bacapp_encode_access_rule(uint8_t *apdu, const BACNET_ACCESS_RULE *rule)
return apdu_len; return apdu_len;
} }
/**
* @brief Encode the BACnetAccessRule as Context Tagged
* @param apdu Pointer to the buffer for encoding, or NULL for length
* @param tag_number Tag number
* @param rule Pointer to the data to be encoded
* @return number of bytes encoded
*/
int bacapp_encode_context_access_rule(
uint8_t *apdu, uint8_t tag_number, const BACNET_ACCESS_RULE *rule)
{
int len;
int apdu_len = 0;
len = encode_opening_tag(apdu, tag_number);
apdu_len += len;
if (apdu) {
apdu += len;
}
len = bacapp_encode_access_rule(apdu, rule);
apdu_len += len;
if (apdu) {
apdu += len;
}
len = encode_closing_tag(apdu, tag_number);
apdu_len += len;
return apdu_len;
}
/** /**
* @brief Decode the BACnetAccessRule * @brief Decode the BACnetAccessRule
* @param apdu Pointer to the buffer for decoding. * @param apdu Pointer to the buffer for decoding.
@@ -207,52 +178,55 @@ int bacapp_decode_access_rule(const uint8_t *apdu, BACNET_ACCESS_RULE *data)
} }
/** /**
* @brief Decode the BACnetAccessRule as Context Tagged * @brief Parse a string into a BACnetAccessRule value
* @param apdu Pointer to the buffer for decoding. * @param value [out] The BACnetAccessRule value
* @param apdu_size The size of the buffer for decoding. * @param argv [in] The string to parse
* @param tag_number Tag number * @return True on success, else False
* @param data Pointer to the data to be stored
* @return number of bytes decoded or BACNET_STATUS_ERROR on error
*/ */
int bacnet_access_rule_context_decode( bool bacnet_access_rule_from_ascii(BACNET_ACCESS_RULE *value, const char *argv)
const uint8_t *apdu,
size_t apdu_size,
uint8_t tag_number,
BACNET_ACCESS_RULE *data)
{ {
int len = 0; bool status = false;
int apdu_len = 0;
if (!bacnet_is_opening_tag_number( (void)value;
&apdu[apdu_len], apdu_size - apdu_len, tag_number, &len)) { (void)argv;
return BACNET_STATUS_ERROR;
}
apdu_len += len;
len =
bacnet_access_rule_decode(&apdu[apdu_len], apdu_size - apdu_len, data);
if (len <= 0) {
return BACNET_STATUS_ERROR;
}
apdu_len += len;
if (!bacnet_is_closing_tag_number(
&apdu[apdu_len], apdu_size - apdu_len, tag_number, &len)) {
return BACNET_STATUS_ERROR;
}
apdu_len += len;
return apdu_len; return status;
} }
/** /**
* @brief Decode the BACnetAccessRule as Context Tagged * @brief Compare two BACnetAccessRule values
* @param apdu Pointer to the buffer for decoding. * @param value1 [in] The first BACnetAccessRule value
* @param tag_number Tag number * @param value2 [in] The second BACnetAccessRule value
* @param data Pointer to the data to be stored * @return True if the values are the same, else False
* @return number of bytes decoded or BACNET_STATUS_ERROR on error
* @deprecated Use bacnet_access_rule_context_decode() instead
*/ */
int bacapp_decode_context_access_rule( bool bacnet_access_rule_same(
const uint8_t *apdu, uint8_t tag_number, BACNET_ACCESS_RULE *data) const BACNET_ACCESS_RULE *value1, const BACNET_ACCESS_RULE *value2)
{ {
return bacnet_access_rule_context_decode(apdu, MAX_APDU, tag_number, data); bool status;
if (value1->time_range_specifier != value2->time_range_specifier) {
return false;
}
if (value1->time_range_specifier == TIME_RANGE_SPECIFIER_SPECIFIED) {
status = bacnet_device_object_property_reference_same(
&value1->time_range, &value2->time_range);
if (!status) {
return false;
}
}
if (value1->location_specifier != value2->location_specifier) {
return false;
}
if (value1->location_specifier == LOCATION_SPECIFIER_SPECIFIED) {
status = bacnet_device_object_reference_same(
&value1->location, &value2->location);
if (!status) {
return false;
}
}
if (value1->enable != value2->enable) {
return false;
}
return true;
} }
+6 -14
View File
@@ -13,7 +13,6 @@
/* BACnet Stack defines - first */ /* BACnet Stack defines - first */
#include "bacnet/bacdef.h" #include "bacnet/bacdef.h"
/* BACnet Stack API */ /* BACnet Stack API */
#include "bacnet/bacapp.h"
#include "bacnet/bacdevobjpropref.h" #include "bacnet/bacdevobjpropref.h"
typedef enum { typedef enum {
@@ -28,7 +27,7 @@ typedef enum {
LOCATION_SPECIFIER_MAX = 2 LOCATION_SPECIFIER_MAX = 2
} BACNET_ACCESS_RULE_LOCATION_SPECIFIER; } BACNET_ACCESS_RULE_LOCATION_SPECIFIER;
typedef struct { typedef struct BACnetAccessRule {
BACNET_ACCESS_RULE_TIME_RANGE_SPECIFIER time_range_specifier; BACNET_ACCESS_RULE_TIME_RANGE_SPECIFIER time_range_specifier;
BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE time_range; BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE time_range;
BACNET_ACCESS_RULE_LOCATION_SPECIFIER location_specifier; BACNET_ACCESS_RULE_LOCATION_SPECIFIER location_specifier;
@@ -42,26 +41,19 @@ extern "C" {
BACNET_STACK_EXPORT BACNET_STACK_EXPORT
int bacapp_encode_access_rule(uint8_t *apdu, const BACNET_ACCESS_RULE *rule); int bacapp_encode_access_rule(uint8_t *apdu, const BACNET_ACCESS_RULE *rule);
BACNET_STACK_EXPORT
int bacapp_encode_context_access_rule(
uint8_t *apdu, uint8_t tag_number, const BACNET_ACCESS_RULE *rule);
BACNET_STACK_DEPRECATED("Use bacnet_access_rule_decode() instead") BACNET_STACK_DEPRECATED("Use bacnet_access_rule_decode() instead")
BACNET_STACK_EXPORT BACNET_STACK_EXPORT
int bacapp_decode_access_rule(const uint8_t *apdu, BACNET_ACCESS_RULE *rule); int bacapp_decode_access_rule(const uint8_t *apdu, BACNET_ACCESS_RULE *rule);
BACNET_STACK_DEPRECATED("Use bacnet_access_rule_context_decode() instead")
BACNET_STACK_EXPORT
int bacapp_decode_context_access_rule(
const uint8_t *apdu, uint8_t tag_number, BACNET_ACCESS_RULE *rule);
BACNET_STACK_EXPORT BACNET_STACK_EXPORT
int bacnet_access_rule_decode( int bacnet_access_rule_decode(
const uint8_t *apdu, size_t apdu_size, BACNET_ACCESS_RULE *data); const uint8_t *apdu, size_t apdu_size, BACNET_ACCESS_RULE *data);
BACNET_STACK_EXPORT BACNET_STACK_EXPORT
int bacnet_access_rule_context_decode( bool bacnet_access_rule_from_ascii(BACNET_ACCESS_RULE *value, const char *argv);
const uint8_t *apdu, BACNET_STACK_EXPORT
size_t apdu_size, bool bacnet_access_rule_same(
uint8_t tag_number, const BACNET_ACCESS_RULE *value1, const BACNET_ACCESS_RULE *value2);
BACNET_ACCESS_RULE *data);
#ifdef __cplusplus #ifdef __cplusplus
} }
+83
View File
@@ -17,6 +17,7 @@
#include <wchar.h> #include <wchar.h>
#include <wctype.h> #include <wctype.h>
#endif #endif
#include "bacnet/access_rule.h"
#include "bacnet/bacenum.h" #include "bacnet/bacenum.h"
#include "bacnet/bacdcode.h" #include "bacnet/bacdcode.h"
#include "bacnet/bacint.h" #include "bacnet/bacint.h"
@@ -502,6 +503,13 @@ int bacapp_encode_application_data(
apdu_len = apdu_len =
bacnet_shed_level_encode(apdu, &value->type.Shed_Level); bacnet_shed_level_encode(apdu, &value->type.Shed_Level);
break; break;
#endif
#if defined(BACAPP_ACCESS_RULE)
case BACNET_APPLICATION_TAG_ACCESS_RULE:
/* BACnetAccessRule */
apdu_len =
bacapp_encode_access_rule(apdu, &value->type.Access_Rule);
break;
#endif #endif
default: default:
break; break;
@@ -919,6 +927,7 @@ int bacapp_encode_context_data_value(
case BACNET_APPLICATION_TAG_ACTION_COMMAND: case BACNET_APPLICATION_TAG_ACTION_COMMAND:
case BACNET_APPLICATION_TAG_SCALE: case BACNET_APPLICATION_TAG_SCALE:
case BACNET_APPLICATION_TAG_SHED_LEVEL: case BACNET_APPLICATION_TAG_SHED_LEVEL:
case BACNET_APPLICATION_TAG_ACCESS_RULE:
/* complex data is enclosed in open/close tags */ /* complex data is enclosed in open/close tags */
len = encode_opening_tag(apdu, context_tag_number); len = encode_opening_tag(apdu, context_tag_number);
apdu_len += len; apdu_len += len;
@@ -1291,6 +1300,10 @@ int bacapp_known_property_tag(
case PROP_BBMD_FOREIGN_DEVICE_TABLE: case PROP_BBMD_FOREIGN_DEVICE_TABLE:
/* BACnetFDTEntry */ /* BACnetFDTEntry */
return BACNET_APPLICATION_TAG_FDT_ENTRY; return BACNET_APPLICATION_TAG_FDT_ENTRY;
case PROP_POSITIVE_ACCESS_RULES:
case PROP_NEGATIVE_ACCESS_RULES:
/* BACnetAccessRule */
return BACNET_APPLICATION_TAG_ACCESS_RULE;
default: default:
return -1; return -1;
@@ -1587,6 +1600,13 @@ int bacapp_decode_application_tag_value(
apdu_len = bacnet_shed_level_decode( apdu_len = bacnet_shed_level_decode(
apdu, apdu_size, &value->type.Shed_Level); apdu, apdu_size, &value->type.Shed_Level);
break; break;
#endif
#if defined(BACAPP_ACCESS_RULE)
case BACNET_APPLICATION_TAG_ACCESS_RULE:
/* BACnetAccessRule */
apdu_len = bacnet_access_rule_decode(
apdu, apdu_size, &value->type.Access_Rule);
break;
#endif #endif
default: default:
break; break;
@@ -2500,6 +2520,51 @@ static int bacapp_snprintf_object_property_reference(
} }
#endif #endif
#if defined(BACAPP_ACCESS_RULE)
/**
* @brief Print a value to a string for EPICS
* @param str - destination string, or NULL for length only
* @param str_len - length of the destination string, or 0 for length only
* @param value - value to be printed
* @return number of characters written to the string
*/
static int bacapp_snprintf_access_rule(
char *str, size_t str_len, const BACNET_ACCESS_RULE *value)
{
int slen;
int ret_val = 0;
slen = bacapp_snprintf(str, str_len, "{");
ret_val += bacapp_snprintf_shift(slen, &str, &str_len);
/* specified (0), always (1) */
if (value->time_range_specifier == TIME_RANGE_SPECIFIER_SPECIFIED) {
slen = bacapp_snprintf(str, str_len, "specified, ");
ret_val += bacapp_snprintf_shift(slen, &str, &str_len);
slen = bacapp_snprintf_device_object_property_reference(
str, str_len, &value->time_range);
ret_val += bacapp_snprintf_shift(slen, &str, &str_len);
} else {
slen = bacapp_snprintf(str, str_len, "always, ");
ret_val += bacapp_snprintf_shift(slen, &str, &str_len);
}
/* specified (0), all (1) */
if (value->location_specifier == LOCATION_SPECIFIER_SPECIFIED) {
slen = bacapp_snprintf(str, str_len, "specified, ");
ret_val += bacapp_snprintf_shift(slen, &str, &str_len);
slen = bacapp_snprintf_device_object_reference(
str, str_len, &value->location);
ret_val += bacapp_snprintf_shift(slen, &str, &str_len);
} else {
slen = bacapp_snprintf(str, str_len, "all");
ret_val += bacapp_snprintf_shift(slen, &str, &str_len);
}
slen = bacapp_snprintf(str, str_len, "}");
ret_val += bacapp_snprintf_shift(slen, &str, &str_len);
return ret_val;
}
#endif
#if defined(BACAPP_WEEKLY_SCHEDULE) #if defined(BACAPP_WEEKLY_SCHEDULE)
/** /**
* @brief Print a weekly schedule value to a string for EPICS * @brief Print a weekly schedule value to a string for EPICS
@@ -3279,6 +3344,12 @@ int bacapp_snprintf_value(
ret_val = bacapp_snprintf_shed_level( ret_val = bacapp_snprintf_shed_level(
str, str_len, &value->type.Shed_Level); str, str_len, &value->type.Shed_Level);
break; break;
#endif
#if defined(BACAPP_ACCESS_RULE)
case BACNET_APPLICATION_TAG_ACCESS_RULE:
ret_val = bacapp_snprintf_access_rule(
str, str_len, &value->type.Access_Rule);
break;
#endif #endif
case BACNET_APPLICATION_TAG_EMPTYLIST: case BACNET_APPLICATION_TAG_EMPTYLIST:
ret_val = bacapp_snprintf(str, str_len, "{}"); ret_val = bacapp_snprintf(str, str_len, "{}");
@@ -3892,6 +3963,12 @@ bool bacapp_parse_application_data(
status = status =
bacnet_shed_level_from_ascii(&value->type.Shed_Level, argv); bacnet_shed_level_from_ascii(&value->type.Shed_Level, argv);
break; break;
#endif
#if defined(BACAPP_ACCESS_RULE)
case BACNET_APPLICATION_TAG_ACCESS_RULE:
/* BACnetAccessRule - not implemented */
bacnet_access_rule_from_ascii(&value->type.Access_Rule, argv);
break;
#endif #endif
default: default:
break; break;
@@ -4444,6 +4521,12 @@ bool bacapp_same_value(
status = bacnet_shed_level_same( status = bacnet_shed_level_same(
&value->type.Shed_Level, &test_value->type.Shed_Level); &value->type.Shed_Level, &test_value->type.Shed_Level);
break; break;
#endif
#if defined(BACAPP_ACCESS_RULE)
case BACNET_APPLICATION_TAG_ACCESS_RULE:
status = bacnet_access_rule_same(
&value->type.Access_Rule, &test_value->type.Access_Rule);
break;
#endif #endif
case BACNET_APPLICATION_TAG_EMPTYLIST: case BACNET_APPLICATION_TAG_EMPTYLIST:
status = true; status = true;
+4
View File
@@ -15,6 +15,7 @@
/* BACnet Stack defines - first */ /* BACnet Stack defines - first */
#include "bacnet/bacdef.h" #include "bacnet/bacdef.h"
/* BACnet Stack API */ /* BACnet Stack API */
#include "bacnet/access_rule.h"
#include "bacnet/bacaction.h" #include "bacnet/bacaction.h"
#include "bacnet/bacdest.h" #include "bacnet/bacdest.h"
#include "bacnet/bacint.h" #include "bacnet/bacint.h"
@@ -159,6 +160,9 @@ typedef struct BACnet_Application_Data_Value {
#endif #endif
#if defined(BACAPP_SHED_LEVEL) #if defined(BACAPP_SHED_LEVEL)
BACNET_SHED_LEVEL Shed_Level; BACNET_SHED_LEVEL Shed_Level;
#endif
#if defined(BACAPP_ACCESS_RULE)
BACNET_ACCESS_RULE Access_Rule;
#endif #endif
} type; } type;
/* simple linked list if needed */ /* simple linked list if needed */
+3 -1
View File
@@ -1608,7 +1608,9 @@ typedef enum {
/* BACnetScale */ /* BACnetScale */
BACNET_APPLICATION_TAG_SCALE, BACNET_APPLICATION_TAG_SCALE,
/* BACnetShedLevel */ /* BACnetShedLevel */
BACNET_APPLICATION_TAG_SHED_LEVEL BACNET_APPLICATION_TAG_SHED_LEVEL,
/* BACnetAccessRule */
BACNET_APPLICATION_TAG_ACCESS_RULE
} BACNET_APPLICATION_TAG; } BACNET_APPLICATION_TAG;
/* note: these are not the real values, */ /* note: these are not the real values, */
+110 -95
View File
@@ -13,6 +13,7 @@
/* BACnet Stack API */ /* BACnet Stack API */
#include "bacnet/bacdcode.h" #include "bacnet/bacdcode.h"
#include "bacnet/bacapp.h" #include "bacnet/bacapp.h"
#include "bacnet/property.h"
#include "bacnet/wp.h" #include "bacnet/wp.h"
#include "bacnet/basic/services.h" #include "bacnet/basic/services.h"
/* me! */ /* me! */
@@ -23,16 +24,19 @@ static bool Access_Rights_Initialized = false;
static ACCESS_RIGHTS_DESCR ar_descr[MAX_ACCESS_RIGHTSS]; static ACCESS_RIGHTS_DESCR ar_descr[MAX_ACCESS_RIGHTSS];
/* These three arrays are used by the ReadPropertyMultiple handler */ /* These three arrays are used by the ReadPropertyMultiple handler */
static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, static const int Properties_Required[] = {
PROP_OBJECT_NAME, /* unordered list of required properties */
PROP_OBJECT_TYPE, PROP_OBJECT_IDENTIFIER,
PROP_GLOBAL_IDENTIFIER, PROP_OBJECT_NAME,
PROP_STATUS_FLAGS, PROP_OBJECT_TYPE,
PROP_RELIABILITY, PROP_GLOBAL_IDENTIFIER,
PROP_ENABLE, PROP_STATUS_FLAGS,
PROP_NEGATIVE_ACCESS_RULES, PROP_RELIABILITY,
PROP_POSITIVE_ACCESS_RULES, PROP_ENABLE,
-1 }; PROP_NEGATIVE_ACCESS_RULES,
PROP_POSITIVE_ACCESS_RULES,
-1
};
static const int Properties_Optional[] = { -1 }; static const int Properties_Optional[] = { -1 };
@@ -133,22 +137,80 @@ bool Access_Rights_Object_Name(
return status; return status;
} }
/**
* @brief Encode a BACnetARRAY property element
* @param object_instance [in] BACnet network port object instance number
* @param index [in] array index requested:
* 0 to N for individual array members
* @param apdu [out] Buffer in which the APDU contents are built, or NULL to
* return the length of buffer if it had been built
* @return The length of the apdu encoded or
* BACNET_STATUS_ERROR for ERROR_CODE_INVALID_ARRAY_INDEX
*/
static int Negative_Access_Rules_Encode(
uint32_t object_instance, BACNET_ARRAY_INDEX index, uint8_t *apdu)
{
int apdu_len = BACNET_STATUS_ERROR;
BACNET_ACCESS_RULE *rule;
uint32_t count;
if (object_instance < MAX_ACCESS_RIGHTSS) {
count = ar_descr[object_instance].negative_access_rules_count;
if (index < count) {
rule = &ar_descr[object_instance].negative_access_rules[index];
apdu_len = bacapp_encode_access_rule(&apdu[0], rule);
}
}
return apdu_len;
}
/**
* @brief Encode a BACnetARRAY property element
* @param object_instance [in] BACnet network port object instance number
* @param index [in] array index requested:
* 0 to N for individual array members
* @param apdu [out] Buffer in which the APDU contents are built, or NULL to
* return the length of buffer if it had been built
* @return The length of the apdu encoded or
* BACNET_STATUS_ERROR for ERROR_CODE_INVALID_ARRAY_INDEX
*/
static int Positive_Access_Rules_Encode(
uint32_t object_instance, BACNET_ARRAY_INDEX index, uint8_t *apdu)
{
int apdu_len = BACNET_STATUS_ERROR;
BACNET_ACCESS_RULE *rule;
uint32_t count;
if (object_instance < MAX_ACCESS_RIGHTSS) {
count = ar_descr[object_instance].positive_access_rules_count;
if (index < count) {
rule = &ar_descr[object_instance].positive_access_rules[index];
apdu_len = bacapp_encode_access_rule(&apdu[0], rule);
}
}
return apdu_len;
}
/* return apdu len, or BACNET_STATUS_ERROR on error */ /* return apdu len, or BACNET_STATUS_ERROR on error */
int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
{ {
int len = 0;
int apdu_len = 0; /* return value */ int apdu_len = 0; /* return value */
int apdu_size = 0;
BACNET_BIT_STRING bit_string; BACNET_BIT_STRING bit_string;
BACNET_CHARACTER_STRING char_string; BACNET_CHARACTER_STRING char_string;
unsigned object_index = 0; unsigned object_index = 0;
unsigned i = 0; BACNET_UNSIGNED_INTEGER count;
uint8_t *apdu = NULL; uint8_t *apdu = NULL;
bool is_array = false;
if ((rpdata == NULL) || (rpdata->application_data == NULL) || if ((rpdata == NULL) || (rpdata->application_data == NULL) ||
(rpdata->application_data_len == 0)) { (rpdata->application_data_len == 0)) {
return 0; return 0;
} }
apdu = rpdata->application_data; apdu = rpdata->application_data;
apdu_size = rpdata->application_data_len;
object_index = Access_Rights_Instance_To_Index(rpdata->object_instance); object_index = Access_Rights_Instance_To_Index(rpdata->object_instance);
switch (rpdata->object_property) { switch (rpdata->object_property) {
case PROP_OBJECT_IDENTIFIER: case PROP_OBJECT_IDENTIFIER:
@@ -185,73 +247,29 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
&apdu[0], ar_descr[object_index].enable); &apdu[0], ar_descr[object_index].enable);
break; break;
case PROP_NEGATIVE_ACCESS_RULES: case PROP_NEGATIVE_ACCESS_RULES:
if (rpdata->array_index == 0) { count = ar_descr[object_index].negative_access_rules_count;
apdu_len = encode_application_unsigned( apdu_len = bacnet_array_encode(
&apdu[0], rpdata->object_instance, rpdata->array_index,
ar_descr[object_index].negative_access_rules_count); Negative_Access_Rules_Encode, count, apdu, apdu_size);
} else if (rpdata->array_index == BACNET_ARRAY_ALL) { if (apdu_len == BACNET_STATUS_ABORT) {
for (i = 0; rpdata->error_code =
i < ar_descr[object_index].negative_access_rules_count; ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED;
i++) { } else if (apdu_len == BACNET_STATUS_ERROR) {
len = bacapp_encode_access_rule( rpdata->error_class = ERROR_CLASS_PROPERTY;
&apdu[0], rpdata->error_code = ERROR_CODE_INVALID_ARRAY_INDEX;
&ar_descr[object_index].negative_access_rules[i]);
if (apdu_len + len < MAX_APDU) {
apdu_len += len;
} else {
rpdata->error_code =
ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED;
apdu_len = BACNET_STATUS_ABORT;
break;
}
}
} else {
if (rpdata->array_index <=
ar_descr[object_index].negative_access_rules_count) {
apdu_len = bacapp_encode_access_rule(
&apdu[0],
&ar_descr[object_index]
.negative_access_rules[rpdata->array_index - 1]);
} else {
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_INVALID_ARRAY_INDEX;
apdu_len = BACNET_STATUS_ERROR;
}
} }
break; break;
case PROP_POSITIVE_ACCESS_RULES: case PROP_POSITIVE_ACCESS_RULES:
if (rpdata->array_index == 0) { count = ar_descr[object_index].positive_access_rules_count;
apdu_len = encode_application_unsigned( apdu_len = bacnet_array_encode(
&apdu[0], rpdata->object_instance, rpdata->array_index,
ar_descr[object_index].positive_access_rules_count); Positive_Access_Rules_Encode, count, apdu, apdu_size);
} else if (rpdata->array_index == BACNET_ARRAY_ALL) { if (apdu_len == BACNET_STATUS_ABORT) {
for (i = 0; rpdata->error_code =
i < ar_descr[object_index].positive_access_rules_count; ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED;
i++) { } else if (apdu_len == BACNET_STATUS_ERROR) {
len = bacapp_encode_access_rule( rpdata->error_class = ERROR_CLASS_PROPERTY;
&apdu[0], rpdata->error_code = ERROR_CODE_INVALID_ARRAY_INDEX;
&ar_descr[object_index].positive_access_rules[i]);
if (apdu_len + len < MAX_APDU) {
apdu_len += len;
} else {
rpdata->error_code =
ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED;
apdu_len = BACNET_STATUS_ABORT;
break;
}
}
} else {
if (rpdata->array_index <=
ar_descr[object_index].positive_access_rules_count) {
apdu_len = bacapp_encode_access_rule(
&apdu[0],
&ar_descr[object_index]
.positive_access_rules[rpdata->array_index - 1]);
} else {
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_INVALID_ARRAY_INDEX;
apdu_len = BACNET_STATUS_ERROR;
}
} }
break; break;
default: default:
@@ -261,9 +279,9 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
break; break;
} }
/* only array properties can have array options */ /* only array properties can have array options */
if ((apdu_len >= 0) && is_array = property_list_bacnet_array_member(
(rpdata->object_property != PROP_NEGATIVE_ACCESS_RULES) && rpdata->object_type, rpdata->object_property);
(rpdata->object_property != PROP_POSITIVE_ACCESS_RULES) && if ((apdu_len >= 0) && (!is_array) &&
(rpdata->array_index != BACNET_ARRAY_ALL)) { (rpdata->array_index != BACNET_ARRAY_ALL)) {
rpdata->error_class = ERROR_CLASS_PROPERTY; rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY; rpdata->error_code = ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY;
@@ -277,6 +295,7 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
{ {
bool status = false; /* return value */ bool status = false; /* return value */
bool is_array = false;
int len = 0; int len = 0;
BACNET_APPLICATION_DATA_VALUE value; BACNET_APPLICATION_DATA_VALUE value;
unsigned object_index = 0; unsigned object_index = 0;
@@ -292,9 +311,9 @@ bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
return false; return false;
} }
/* only array properties can have array options */ /* only array properties can have array options */
if ((wp_data->object_property != PROP_NEGATIVE_ACCESS_RULES) && is_array = property_list_bacnet_array_member(
(wp_data->object_property != PROP_POSITIVE_ACCESS_RULES) && wp_data->object_type, wp_data->object_property);
(wp_data->array_index != BACNET_ARRAY_ALL)) { if (is_array && (wp_data->array_index != BACNET_ARRAY_ALL)) {
wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY; wp_data->error_code = ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY;
return false; return false;
@@ -309,20 +328,16 @@ bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
value.type.Unsigned_Int; value.type.Unsigned_Int;
} }
break; break;
case PROP_OBJECT_IDENTIFIER:
case PROP_OBJECT_NAME:
case PROP_OBJECT_TYPE:
case PROP_STATUS_FLAGS:
case PROP_RELIABILITY:
case PROP_ENABLE:
case PROP_NEGATIVE_ACCESS_RULES:
case PROP_POSITIVE_ACCESS_RULES:
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
break;
default: default:
wp_data->error_class = ERROR_CLASS_PROPERTY; if (property_lists_member(
wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY; Properties_Required, Properties_Optional,
Properties_Proprietary, wp_data->object_property)) {
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
} else {
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
}
break; break;
} }
+4 -1
View File
@@ -203,6 +203,7 @@
defined(BACAPP_ACTION_COMMAND) || \ defined(BACAPP_ACTION_COMMAND) || \
defined(BACAPP_SCALE) || \ defined(BACAPP_SCALE) || \
defined(BACAPP_SHED_LEVEL) || \ defined(BACAPP_SHED_LEVEL) || \
defined(BACAPP_ACCESS_RULE) || \
defined(BACAPP_TYPES_EXTRA)) defined(BACAPP_TYPES_EXTRA))
#define BACAPP_ALL #define BACAPP_ALL
#endif #endif
@@ -249,6 +250,7 @@
#define BACAPP_ACTION_COMMAND #define BACAPP_ACTION_COMMAND
#define BACAPP_SCALE #define BACAPP_SCALE
#define BACAPP_SHED_LEVEL #define BACAPP_SHED_LEVEL
#define BACAPP_ACCESS_RULE
#endif #endif
/* clang-format off */ /* clang-format off */
@@ -270,7 +272,8 @@
defined(BACAPP_FDT_ENTRY) || \ defined(BACAPP_FDT_ENTRY) || \
defined(BACAPP_ACTION_COMMAND) || \ defined(BACAPP_ACTION_COMMAND) || \
defined(BACAPP_SCALE) || \ defined(BACAPP_SCALE) || \
defined(BACAPP_SHED_LEVEL) defined(BACAPP_SHED_LEVEL) || \
defined(BACAPP_ACCESS_RULE)
#define BACAPP_COMPLEX_TYPES #define BACAPP_COMPLEX_TYPES
#endif #endif
/* clang-format on */ /* clang-format on */
-28
View File
@@ -22,7 +22,6 @@ static void test_access_rule_positive(BACNET_ACCESS_RULE *data)
{ {
BACNET_ACCESS_RULE test_data = { 0 }; BACNET_ACCESS_RULE test_data = { 0 };
uint8_t apdu[MAX_APDU]; uint8_t apdu[MAX_APDU];
uint8_t tag_number = 1;
int len; int len;
int test_len; int test_len;
int null_len; int null_len;
@@ -51,33 +50,6 @@ static void test_access_rule_positive(BACNET_ACCESS_RULE *data)
test_len = bacnet_access_rule_decode(apdu, len, &test_data); test_len = bacnet_access_rule_decode(apdu, len, &test_data);
zassert_true(test_len <= 0, NULL); zassert_true(test_len <= 0, NULL);
} }
/* context tagged */
null_len = bacapp_encode_context_access_rule(NULL, tag_number, data);
len = bacapp_encode_context_access_rule(apdu, tag_number, data);
zassert_equal(null_len, len, NULL);
test_len =
bacnet_access_rule_context_decode(apdu, len, tag_number, &test_data);
zassert_equal(test_len, len, NULL);
zassert_equal(
data->time_range_specifier, test_data.time_range_specifier, NULL);
zassert_equal(data->location_specifier, test_data.location_specifier, NULL);
zassert_equal(data->enable, test_data.enable, NULL);
if (data->time_range_specifier == TIME_RANGE_SPECIFIER_SPECIFIED) {
status = bacnet_device_object_property_reference_same(
&data->time_range, &test_data.time_range);
zassert_true(status, NULL);
}
if (data->location_specifier == LOCATION_SPECIFIER_SPECIFIED) {
status = bacnet_device_object_reference_same(
&data->location, &test_data.location);
zassert_true(status, NULL);
}
while (--len) {
test_len = bacnet_access_rule_context_decode(
apdu, len, tag_number, &test_data);
zassert_true(test_len <= 0, NULL);
}
} }
/** /**
+1
View File
@@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacdest.c ${SRC_DIR}/bacnet/bacdest.c
+3 -1
View File
@@ -73,7 +73,9 @@ static const BACNET_APPLICATION_TAG tag_list[] = {
/* BACnetScale */ /* BACnetScale */
BACNET_APPLICATION_TAG_SCALE, BACNET_APPLICATION_TAG_SCALE,
/* BACnetShedLevel */ /* BACnetShedLevel */
BACNET_APPLICATION_TAG_SHED_LEVEL BACNET_APPLICATION_TAG_SHED_LEVEL,
/* BACnetAccessRule */
BACNET_APPLICATION_TAG_ACCESS_RULE
}; };
/** /**
+1
View File
@@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/bacdest.c ${SRC_DIR}/bacnet/bacdest.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -39,6 +39,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/bacdevobjpropref.c ${SRC_DIR}/bacnet/bacdevobjpropref.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/bactimevalue.c ${SRC_DIR}/bacnet/bactimevalue.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/binding/address.c ${SRC_DIR}/bacnet/basic/binding/address.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/acc.c ${SRC_DIR}/bacnet/basic/object/acc.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/access_credential.c ${SRC_DIR}/bacnet/basic/object/access_credential.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/assigned_access_rights.c ${SRC_DIR}/bacnet/assigned_access_rights.c
${SRC_DIR}/bacnet/authentication_factor.c ${SRC_DIR}/bacnet/authentication_factor.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/access_door.c ${SRC_DIR}/bacnet/basic/object/access_door.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/access_point.c ${SRC_DIR}/bacnet/basic/object/access_point.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -22,11 +22,13 @@ set(ZTST_DIR "${TST_DIR}/ztest/src")
add_compile_definitions( add_compile_definitions(
BIG_ENDIAN=0 BIG_ENDIAN=0
BACNET_PROPERTY_ARRAY_LISTS=1
CONFIG_ZTEST=1 CONFIG_ZTEST=1
) )
include_directories( include_directories(
${SRC_DIR} ${SRC_DIR}
${TST_DIR}/bacnet/basic/object/test
${TST_DIR}/ztest/include ${TST_DIR}/ztest/include
) )
@@ -51,6 +53,8 @@ add_executable(${PROJECT_NAME}
${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/indtext.c
${SRC_DIR}/bacnet/hostnport.c ${SRC_DIR}/bacnet/hostnport.c
${SRC_DIR}/bacnet/lighting.c ${SRC_DIR}/bacnet/lighting.c
${SRC_DIR}/bacnet/property.c
${SRC_DIR}/bacnet/proplist.c
${SRC_DIR}/bacnet/timestamp.c ${SRC_DIR}/bacnet/timestamp.c
${SRC_DIR}/bacnet/wp.c ${SRC_DIR}/bacnet/wp.c
${SRC_DIR}/bacnet/weeklyschedule.c ${SRC_DIR}/bacnet/weeklyschedule.c
@@ -60,6 +64,7 @@ add_executable(${PROJECT_NAME}
${SRC_DIR}/bacnet/special_event.c ${SRC_DIR}/bacnet/special_event.c
# Test and test library files # Test and test library files
./src/main.c ./src/main.c
${TST_DIR}/bacnet/basic/object/test/property_test.c
${ZTST_DIR}/ztest_mock.c ${ZTST_DIR}/ztest_mock.c
${ZTST_DIR}/ztest.c ${ZTST_DIR}/ztest.c
) )
@@ -10,6 +10,7 @@
#include <zephyr/ztest.h> #include <zephyr/ztest.h>
#include <bacnet/basic/object/access_rights.h> #include <bacnet/basic/object/access_rights.h>
#include <property_test.h>
/** /**
* @addtogroup bacnet_tests * @addtogroup bacnet_tests
@@ -25,28 +26,22 @@ ZTEST(access_rights_tests, testAccessRights)
static void testAccessRights(void) static void testAccessRights(void)
#endif #endif
{ {
uint8_t apdu[MAX_APDU] = { 0 }; bool status = false;
int len = 0, test_len = 0; unsigned count = 0;
uint32_t decoded_instance = 0; uint32_t object_instance = 0;
BACNET_OBJECT_TYPE decoded_type = 0; const int skip_fail_property_list[] = { -1 };
BACNET_READ_PROPERTY_DATA rpdata;
Access_Rights_Init(); Access_Rights_Init();
rpdata.application_data = &apdu[0]; count = Access_Rights_Count();
rpdata.application_data_len = sizeof(apdu); zassert_true(count > 0, NULL);
rpdata.object_type = OBJECT_ACCESS_RIGHTS; object_instance = Access_Rights_Index_To_Instance(0);
rpdata.object_instance = 1; status = Access_Rights_Valid_Instance(object_instance);
rpdata.object_property = PROP_OBJECT_IDENTIFIER; zassert_true(status, NULL);
rpdata.array_index = BACNET_ARRAY_ALL; /* perform a general test for RP/WP */
len = Access_Rights_Read_Property(&rpdata); bacnet_object_properties_read_write_test(
zassert_not_equal(len, 0, NULL); OBJECT_ACCESS_RIGHTS, object_instance, Access_Rights_Property_Lists,
test_len = bacnet_object_id_application_decode( Access_Rights_Read_Property, Access_Rights_Write_Property,
apdu, len, &decoded_type, &decoded_instance); skip_fail_property_list);
zassert_not_equal(test_len, BACNET_STATUS_ERROR, NULL);
zassert_equal(decoded_type, rpdata.object_type, NULL);
zassert_equal(decoded_instance, rpdata.object_instance, NULL);
return;
} }
/** /**
* @} * @}
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/access_user.c ${SRC_DIR}/bacnet/basic/object/access_user.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/access_credential.c ${SRC_DIR}/bacnet/basic/object/access_credential.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/authentication_factor.c ${SRC_DIR}/bacnet/authentication_factor.c
${SRC_DIR}/bacnet/assigned_access_rights.c ${SRC_DIR}/bacnet/assigned_access_rights.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
@@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/ai.c ${SRC_DIR}/bacnet/basic/object/ai.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacdcode.c ${SRC_DIR}/bacnet/bacdcode.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/ao.c ${SRC_DIR}/bacnet/basic/object/ao.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/av.c ${SRC_DIR}/bacnet/basic/object/av.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/bacfile.c ${SRC_DIR}/bacnet/basic/object/bacfile.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/arf.c ${SRC_DIR}/bacnet/arf.c
${SRC_DIR}/bacnet/awf.c ${SRC_DIR}/bacnet/awf.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
@@ -37,6 +37,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/bi.c ${SRC_DIR}/bacnet/basic/object/bi.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/bitstring_value.c ${SRC_DIR}/bacnet/basic/object/bitstring_value.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/blo.c ${SRC_DIR}/bacnet/basic/object/blo.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/bo.c ${SRC_DIR}/bacnet/basic/object/bo.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -37,6 +37,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/bv.c ${SRC_DIR}/bacnet/basic/object/bv.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/calendar.c ${SRC_DIR}/bacnet/basic/object/calendar.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/channel.c ${SRC_DIR}/bacnet/basic/object/channel.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/color_object.c ${SRC_DIR}/bacnet/basic/object/color_object.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/color_temperature.c ${SRC_DIR}/bacnet/basic/object/color_temperature.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/command.c ${SRC_DIR}/bacnet/basic/object/command.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/credential_data_input.c ${SRC_DIR}/bacnet/basic/object/credential_data_input.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/authentication_factor.c ${SRC_DIR}/bacnet/authentication_factor.c
${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/authentication_factor_format.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/csv.c ${SRC_DIR}/bacnet/basic/object/csv.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME}
${SRC_DIR}/bacnet/basic/object/device.c ${SRC_DIR}/bacnet/basic/object/device.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/abort.c ${SRC_DIR}/bacnet/abort.c
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -42,7 +42,6 @@ static void test_Device_Data_Sharing(void)
rpdata.application_data_len = sizeof(apdu); rpdata.application_data_len = sizeof(apdu);
rpdata.object_type = OBJECT_DEVICE; rpdata.object_type = OBJECT_DEVICE;
rpdata.object_instance = Device_Index_To_Instance(0); rpdata.object_instance = Device_Index_To_Instance(0);
;
Device_Property_Lists(&pRequired, &pOptional, &pProprietary); Device_Property_Lists(&pRequired, &pOptional, &pProprietary);
while ((*pRequired) != -1) { while ((*pRequired) != -1) {
rpdata.object_property = *pRequired; rpdata.object_property = *pRequired;
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/iv.c ${SRC_DIR}/bacnet/basic/object/iv.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -38,6 +38,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/lc.c ${SRC_DIR}/bacnet/basic/object/lc.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/lo.c ${SRC_DIR}/bacnet/basic/object/lo.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -33,6 +33,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/lsp.c ${SRC_DIR}/bacnet/basic/object/lsp.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/lsz.c ${SRC_DIR}/bacnet/basic/object/lsz.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/ms-input.c ${SRC_DIR}/bacnet/basic/object/ms-input.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/mso.c ${SRC_DIR}/bacnet/basic/object/mso.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/msv.c ${SRC_DIR}/bacnet/basic/object/msv.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/nc.c ${SRC_DIR}/bacnet/basic/object/nc.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/netport.c ${SRC_DIR}/bacnet/basic/object/netport.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/osv.c ${SRC_DIR}/bacnet/basic/object/osv.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/piv.c ${SRC_DIR}/bacnet/basic/object/piv.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/schedule.c ${SRC_DIR}/bacnet/basic/object/schedule.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/structured_view.c ${SRC_DIR}/bacnet/basic/object/structured_view.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/time_value.c ${SRC_DIR}/bacnet/basic/object/time_value.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/basic/object/trendlog.c ${SRC_DIR}/bacnet/basic/object/trendlog.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/cov.c ${SRC_DIR}/bacnet/cov.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/create_object.c ${SRC_DIR}/bacnet/create_object.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/delete_object.c ${SRC_DIR}/bacnet/delete_object.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -49,6 +49,7 @@ add_executable(${PROJECT_NAME}
${SRC_DIR}/bacnet/basic/sys/days.c ${SRC_DIR}/bacnet/basic/sys/days.c
${SRC_DIR}/bacnet/timestamp.c ${SRC_DIR}/bacnet/timestamp.c
# Dependencies of bacapp.c # Dependencies of bacapp.c
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bactext.c ${SRC_DIR}/bacnet/bactext.c
${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/indtext.c
+1
View File
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/get_alarm_sum.c ${SRC_DIR}/bacnet/get_alarm_sum.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/getevent.c ${SRC_DIR}/bacnet/getevent.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/hostnport.c ${SRC_DIR}/bacnet/hostnport.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/list_element.c ${SRC_DIR}/bacnet/list_element.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/lso.c ${SRC_DIR}/bacnet/lso.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/ptransfer.c ${SRC_DIR}/bacnet/ptransfer.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/rpm.c ${SRC_DIR}/bacnet/rpm.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/special_event.c ${SRC_DIR}/bacnet/special_event.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/timesync.c ${SRC_DIR}/bacnet/timesync.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
@@ -37,6 +37,7 @@ add_executable(${PROJECT_NAME}
${SRC_DIR}/bacnet/bactimevalue.c ${SRC_DIR}/bacnet/bactimevalue.c
${SRC_DIR}/bacnet/dailyschedule.c ${SRC_DIR}/bacnet/dailyschedule.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/wp.c ${SRC_DIR}/bacnet/wp.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c
+1
View File
@@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME}
# File(s) under test # File(s) under test
${SRC_DIR}/bacnet/wpm.c ${SRC_DIR}/bacnet/wpm.c
# Support files and stubs (pathname alphabetical) # Support files and stubs (pathname alphabetical)
${SRC_DIR}/bacnet/access_rule.c
${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaction.c
${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacaddr.c
${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacapp.c