Skip to content
Version 6.1.0
Contact Us

BACnetStack_SendReadPropertyWithLength

bool BACnetStack_SendReadPropertyWithLength(
uint8_t * sentInvokeId,
const uint8_t serviceType,
const uint8_t * connectionString,
const uint8_t connectionStringLength,
const uint32_t networkPortInstance,
const uint16_t destinationNetwork,
const uint8_t * destinationAddress,
const uint8_t destinationAddressLength,
const uint32_t propertyArraysCount,
const void * propertyArrays,
const uint32_t propertyArraysLength);

Sends a ReadProperty or ReadPropertyMultiple request, like BACnetStack_SendReadProperty(), with the request buffer’s length checked.

BACnetStack_SendReadProperty() has an identical signature; both functions exist side by side.

Same packed-element shape as BACnetStack_SendReadProperty() (see the diagram and worked example above - the byte layout is identical, with propertyArraysLength = 15 for that single-element example). The trailing propertyArraysLength parameter is the total byte length of propertyArrays (all elements concatenated) and IS enforced: a propertyArraysCount implying more bytes than propertyArraysLength actually provides is rejected and the call returns false without reading past the buffer.

See also: Client response hooks

BACnet reference: ANSI/ASHRAE 135-2024 clause 15.5 (ReadProperty Service); clause 15.7 (ReadPropertyMultiple Service).

Parameter Direction Description
sentInvokeId out The invoke-id of the sent request, valid only if this function returns true.
serviceType in 12 = ReadProperty, 14 = ReadPropertyMultiple; selects which service is sent.
connectionString, connectionStringLength in The datalink address to send TO (the destination) - not the local address to send from. For IPv4 this is 6 bytes: 4 octets of IPv4 address followed by 2 octets of port, big-endian (e.g. 0xC0,0xA8,0x01,0x05,0xBA,0xC0 = 192.168.1.5:47808; see BACnetStack_SendRegisterForeignDevice() for a worked example); on BACnet/IPv4 the stack refuses to send to a connection string of any other length, except that a broadcast from a device registered as a foreign device goes to its BBMD and does not use the connection string. MS/TP and BACnet/SC use a different connection-string shape; see their respective Set/Send exports.
networkPortInstance in The Network Port object instance to send the message on, or BACNET_NETWORK_PORT_DEFAULT (4194303) for the default/single port.
destinationNetwork, destinationAddress, destinationAddressLength in The destination to send the request to.
propertyArraysCount, propertyArrays in The packed property-reference array described above.
propertyArraysLength in The total byte length of propertyArrays (all elements concatenated). Enforced: rejects a propertyArraysCount that would read past this length.

True if the request was sent, otherwise false.

Topic: Client requests. Declared in CASBACnetStackDLL.h.