BACnetStack_SendDeviceCommunicationControl
bool BACnetStack_SendDeviceCommunicationControl( uint8_t * sentInvokeId, const uint8_t enableDisable, const bool useTimeDuration, const uint16_t timeDuration, const char * password, const uint8_t passwordLength, 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 uint8_t passwordEncoding);Sends a confirmed DeviceCommunicationControl request, asking a remote device to enable or disable its BACnet communication (optionally for a limited duration).
See also: Client response hooks
BACnet reference: ANSI/ASHRAE 135-2024 clause 16.1 (DeviceCommunicationControl Service).
Parameters
Section titled “Parameters”| Parameter | Direction | Description |
|---|---|---|
sentInvokeId |
out | The invoke-id of the sent request, valid only if this function returns true. |
enableDisable |
in | The requested BACnetEnableDisable state: 0 = ENABLE, 1 = DISABLE, 2 = DISABLE_INITIATION. See CASBACnetStack::BACnetEnableDisable. |
useTimeDuration, timeDuration |
in | If useTimeDuration is true, the duration in minutes before communication automatically re-enables. |
password, passwordLength |
in | The optional password to authorize the request (may be empty if the target requires none). passwordLength 0 sends no password. Otherwise the password must be 1 to 20 characters (135-2024 cl. 16.1.1.1.3), counted in characters of passwordEncoding, not in octets: a 20-character UCS-2 password is 40 octets. A password of more than 20 characters or of none, a passwordEncoding above 5, a UTF-8 (encoding 0) password that is not well-formed UTF-8, or password NULL with a non-zero passwordLength returns false and sends nothing. The password’s octets must also fit the build’s character-string limit (STACK_OPTION_MAX_CHARACTER_STRING_SIZE, 64 in an embedded build), so a 20-character password in a wide encoding can be refused there. |
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. |
passwordEncoding |
in | The character set password is encoded in (135-2024 cl. 20.2.9): 0 = ANSI X3.4/UTF-8, 1 = IBM/Microsoft DBCS, 2 = JIS X 0208, 3 = ISO 10646 UCS-4, 4 = ISO 10646 UCS-2, 5 = ISO 8859-1. A non-UTF-8 encoding changes byte-level matching on the peer. |
Returns
Section titled “Returns”True if the request was sent, otherwise false.
Topic: Client requests. Declared in CASBACnetStackDLL.h.