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).
Parameters
Section titled “Parameters”| 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. |
Returns
Section titled “Returns”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.