Skip to content
Version 6.1.0
Contact Us

BACnetStack_AddScheduleObjectPropertyReference

bool BACnetStack_AddScheduleObjectPropertyReference(
const uint32_t deviceInstance,
const uint32_t scheduleObjectInstance,
const uint32_t refDeviceInstance,
const uint16_t refObjectType,
const uint32_t refObjectInstance,
const uint32_t refPropertyIdentifier,
const bool refUseArrayIndex,
const uint32_t refArrayIndex);

Appends one property reference to List_Of_Object_Property_References - a target the Schedule writes to when its Present_Value changes (135-2024 cl. 12.24.10).

Each entry is a BACnetDeviceObjectPropertyReference, and the property is a BACnetLIST of them (cl. 21).

ADDRESS BINDING: a reference to a property of ANOTHER device makes this device bind that device’s address (135-2024 cl. 16.10, dynamic binding). It sends a Who-Is for that device instance at once and then on every heartbeat - broadcast until the device answers with an I-Am, directed to its address after. The heartbeat is 3600 s by default; BACnetStackSetting_DABHeartbeatIntervalSeconds changes it, and 0 disables it. The binding is held while any reference to that device remains.

BACnet reference: ANSI/ASHRAE 135-2024 clause 12.24 (Schedule Object Type).

Parameter Direction Description
deviceInstance in The device instance that owns this Schedule object.
scheduleObjectInstance in The Schedule object to modify. BACnetStack_AddScheduleObject() must have been called for it first.
refDeviceInstance in The device instance holding the target object. Pass this device’s own instance, or 4194303, for a local target. SIDE EFFECT: any OTHER value adds that device to the stack’s Device Address Binding table, which starts ongoing background binding traffic for it.
refObjectType in The target object type. See CASBACnetStack::BACnetObjectType. With refObjectInstance, this is one BACnet Object Identifier carried as two parameters.
refObjectInstance in The target object instance. NOT validated - a local target that does not exist is stored and only fails when the Schedule fires.
refPropertyIdentifier in The target property identifier.
refUseArrayIndex in True if the reference targets one array element of the property.
refArrayIndex in The array index, used only when refUseArrayIndex is true.

True on success; false if no device has been added, the Schedule object’s stack data does not exist, Schedule support was not compiled, refObjectType or refObjectInstance is out of range, or refDeviceInstance names another device and the Device Address Binding table refuses it (the table is full, or the instance is above 4194303); then the reference is not added. Each call APPENDS with no duplicate check and no upper bound, and there is no export to remove an entry or read the list back - adding the same target twice makes the Schedule write it twice on every transition.

Topic: Schedules, calendars, trend logs and other object configuration. Declared in CASBACnetStackDLL.h.