fixed problems reported by certification testing : vendor identifier acces rights (now read only), and bvlc_maintenance timer was increasing too fast.
--- a/bacnet/runtime/device.c Thu Aug 09 09:07:09 2018 +0200
+++ b/bacnet/runtime/device.c Mon Aug 13 11:10:23 2018 +0200
@@ -398,7 +398,7 @@
PROP_OBJECT_TYPE, /* R R ( 79) */
PROP_SYSTEM_STATUS, /* R R (112) */
PROP_VENDOR_NAME, /* R R (121) */
- PROP_VENDOR_IDENTIFIER, /* W R (120) */
+ PROP_VENDOR_IDENTIFIER, /* R R (120) */
PROP_MODEL_NAME, /* W R ( 70) */
PROP_FIRMWARE_REVISION, /* R R ( 44) */
PROP_APPLICATION_SOFTWARE_VERSION, /* R R ( 12) */
@@ -1366,16 +1366,16 @@
apdu_timeout_set((uint16_t) value.type.Unsigned_Int);
}
break;
- case PROP_VENDOR_IDENTIFIER:
- status =
- WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT,
- &wp_data->error_class, &wp_data->error_code);
- if (status) {
- /* FIXME: bounds check? */
- Device_Set_Vendor_Identifier((uint16_t) value.
- type.Unsigned_Int);
- }
- break;
+// case PROP_VENDOR_IDENTIFIER:
+// status =
+// WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT,
+// &wp_data->error_class, &wp_data->error_code);
+// if (status) {
+// /* FIXME: bounds check? */
+// Device_Set_Vendor_Identifier((uint16_t) value.
+// type.Unsigned_Int);
+// }
+// break;
// case PROP_SYSTEM_STATUS:
// status =
// WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED,
@@ -1453,6 +1453,7 @@
case PROP_OBJECT_TYPE:
case PROP_SYSTEM_STATUS:
case PROP_VENDOR_NAME:
+ case PROP_VENDOR_IDENTIFIER:
case PROP_FIRMWARE_REVISION:
case PROP_APPLICATION_SOFTWARE_VERSION:
case PROP_LOCAL_TIME:
--- a/bacnet/runtime/server.c Thu Aug 09 09:07:09 2018 +0200
+++ b/bacnet/runtime/server.c Mon Aug 13 11:10:23 2018 +0200
@@ -49,7 +49,7 @@
#include "net.h"
#include "txbuf.h"
#include "version.h"
-#include "timesync.h"
+
/* A utility function used by most (all?) implementations of BACnet Objects */
@@ -517,7 +517,7 @@
if (elapsed_seconds) {
last_seconds = current_seconds;
dcc_timer_seconds(elapsed_seconds);
- bvlc_maintenance_timer(elapsed_seconds);
+ //bvlc_maintenance_timer(elapsed_seconds); // already called by dlenv_maintenance_timer() => do _not_ call here!
dlenv_maintenance_timer(elapsed_seconds);
elapsed_milliseconds = elapsed_seconds * 1000;
tsm_timer_milliseconds(elapsed_milliseconds);