Skip to content
Version 6.1.0
Contact Us

BACnetStack_SendAcknowledgeAlarmDateTime

bool BACnetStack_SendAcknowledgeAlarmDateTime(
uint8_t * sentInvokeId,
const uint32_t acknowledgingProcessIdentifier,
const uint16_t eventObjectType,
const uint32_t eventObjectInstance,
const uint16_t eventStateAcknowledged,
const uint8_t eventTimeStampYearMinus1900,
const uint8_t eventTimeStampMonth,
const uint8_t eventTimeStampDay,
const uint8_t eventTimeStampWeekday,
const uint8_t eventTimeStampHour,
const uint8_t eventTimeStampMinute,
const uint8_t eventTimeStampSecond,
const uint8_t eventTimeStampHundredths,
const char * acknowledgmentSource,
const uint32_t acknowledgmentSourceLength,
const uint8_t acknowledgmentSourceEncoding,
const uint8_t timeOfAcknowledgmentForm,
const uint16_t timeOfAcknowledgmentSequenceNumber,
const uint8_t timeOfAcknowledgmentYearMinus1900,
const uint8_t timeOfAcknowledgmentMonth,
const uint8_t timeOfAcknowledgmentDay,
const uint8_t timeOfAcknowledgmentWeekday,
const uint8_t timeOfAcknowledgmentHour,
const uint8_t timeOfAcknowledgmentMinute,
const uint8_t timeOfAcknowledgmentSecond,
const uint8_t timeOfAcknowledgmentHundredths,
const uint8_t * connectionString,
const uint8_t connectionStringLength,
const uint32_t networkPortInstance,
const uint16_t destinationNetwork,
const uint8_t * destinationAddress,
const uint8_t destinationAddressLength);

Sends an AcknowledgeAlarm request (cl. 13.5) whose event-side timestamp [3] is the datetime [2] BACnetTimeStamp CHOICE arm.

See BACnetStack_SendAcknowledgeAlarmUnsigned() and BACnetStack_SendAcknowledgeAlarmTime() for the other two CHOICE arms (cl. 21.6: BACnetTimeStamp ::= CHOICE { time [0], sequence-number [1] Unsigned, datetime [2] }).

The timeOfAcknowledgment can carry any BACnetTimeStamp form via timeOfAcknowledgmentForm (0=time, 1=sequenceNumber, 2=dateTime); for a plain dateTime acknowledgment pass form=2 and sequenceNumber=0. This part is identical across all three SendAcknowledgeAlarm* exports.

See also: Client response hooks

BACnet reference: ANSI/ASHRAE 135-2024 clause 13.5 (AcknowledgeAlarm Service).

Parameter Direction Description
sentInvokeId out The invoke-id of the sent request, valid only if this function returns true.
acknowledgingProcessIdentifier in The process identifier of the acknowledging process.
eventObjectType, eventObjectInstance in The object whose event is being acknowledged. The type and instance are one BACnet Object Identifier carried as two parameters (see the API conventions).
eventStateAcknowledged in The event state being acknowledged, a BACnetEventState (cl. 21): 0 = normal, 1 = fault, 2 = offnormal, 3 = high-limit, 4 = low-limit, 5 = life-safety-alarm.
eventTimeStampYearMinus1900, eventTimeStampMonth, eventTimeStampDay, eventTimeStampWeekday, eventTimeStampHour, eventTimeStampMinute, eventTimeStampSecond, eventTimeStampHundredths in The timestamp of the event being acknowledged (datetime form, whose value is a BACnetDateTime, cl. 21). Date fields are the BACnet WIRE form (cl. 20.2.12): year is the calendar year MINUS 1900, so 2026 is 126 - these are uint8_t, and passing a 4-digit year truncates silently at the call site into a valid-looking wrong date; month has January = 1 (13 = odd months, 14 = even months); day is 1..31 (32 = last day of month, 33 = odd days, 34 = even days); weekday is Monday = 1 .. Sunday = 7. 255 = unspecified in any of them.
acknowledgmentSource, acknowledgmentSourceLength, acknowledgmentSourceEncoding in Identifies who/what is acknowledging.
timeOfAcknowledgmentForm in Which BACnetTimeStamp form timeOfAcknowledgment carries (0=time, 1=sequenceNumber, 2=dateTime).
timeOfAcknowledgmentSequenceNumber in The sequence number, when timeOfAcknowledgmentForm selects that form.
timeOfAcknowledgmentYearMinus1900, timeOfAcknowledgmentMonth, timeOfAcknowledgmentDay, timeOfAcknowledgmentWeekday, timeOfAcknowledgmentHour, timeOfAcknowledgmentMinute, timeOfAcknowledgmentSecond, timeOfAcknowledgmentHundredths in The date/time, when timeOfAcknowledgmentForm selects the dateTime (or time) form. Date fields are the BACnet WIRE form (cl. 20.2.12): year is the calendar year MINUS 1900, so 2026 is 126 - these are uint8_t, and passing a 4-digit year truncates silently at the call site into a valid-looking wrong date; month has January = 1 (13 = odd months, 14 = even months); day is 1..31 (32 = last day of month, 33 = odd days, 34 = even days); weekday is Monday = 1 .. Sunday = 7. 255 = unspecified in any of them.
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.

True on success; false on failure (e.g. no send callback, missing connection string, or an out-of-range timeOfAcknowledgmentForm).

Topic: Client requests. Declared in CASBACnetStackDLL.h.