Notification Structures

This page aggregates all notification-related structures shared by the C and C++ APIs.

Note

Notification::i3cHotJoin(), Notification::i3cIbi(), Notification::gpio() and Notification::uartRx() are C++ convenience methods only (available under #ifdef __cplusplus). They are not part of the C API. In C, use CosmicSDK_notificationAsI3cHotJoin, CosmicSDK_notificationAsI3cIbi, CosmicSDK_notificationAsGpio and CosmicSDK_notificationAsUartRx from CosmicSDK_API_c.h.

group Notification-related structures

Enums

enum NotificationType

Enum to represent the different notification types.

Values:

enumerator NOTIF_I3C_HJ

I3C Hot-Join Notification

enumerator NOTIF_I3C_IBI

I3C In-Band Interrupt Notification

enumerator NOTIF_GPIO

GPIO Interrupt Notification

enumerator NOTIF_UART

UART Rx Notification

enumerator NOTIF_I3C_CONNECTOR_EVENT

I3C Connector Event Notification

enumerator NOTIF_UNKNOWN

Unknown Notification

enum I3cConnectorPort

I3C port that generated the connector event.

Values:

enumerator I3C_CONNECTOR_PORT_LV

Low-voltage I3C port.

enumerator I3C_CONNECTOR_PORT_HV

High-voltage I3C port.

enum I3cConnectorEvent

Physical event detected on an I3C connector.

Values:

enumerator I3C_CONNECTOR_PLUGGED

Connector inserted.

enumerator I3C_CONNECTOR_UNPLUGGED

Connector removed.

enum I3cConnectorType

Type of connector identified on an I3C port.

Values:

enumerator I3C_CONNECTOR_TYPE_UNIDENTIFIED

Connector identification not supported.

enumerator I3C_CONNECTOR_TYPE_HARNESS

Binho I3C harness cable.

enumerator I3C_CONNECTOR_TYPE_QWIIC_ADAPTER

Qwiic adapter.

enumerator I3C_CONNECTOR_TYPE_SENSEPEEK

SensePeek probes.

enumerator I3C_CONNECTOR_TYPE_NONE

No connector present.

enumerator I3C_CONNECTOR_TYPE_ERROR

Connector identification failed.

struct I3cHotJoinNotification
#include <CosmicNotifications.h>

Parsed I3C Hot-Join notification information.

Public Members

uint8_t pid[6]

Provisional ID (48-bit) reported by the device during Hot-Join.

uint8_t bcr

Bus Characteristics Register value of the joining device.

uint8_t dcr

Device Characteristics Register value of the joining device.

uint8_t dynamicAddress

Dynamic address assigned by the controller after Hot-Join.

struct I3cIbiNotification
#include <CosmicNotifications.h>

Parsed I3C In-Band Interrupt (IBI) notification information.

Public Members

uint8_t address

Dynamic address of the device that generated the IBI.

const uint8_t *payload

Pointer to the optional IBI payload data (if present).

size_t payloadLength

Length in bytes of the IBI payload.

struct UartRxNotification
#include <CosmicNotifications.h>

Parsed UART RX notification. This struct holds the data received through the UART.

Public Members

const uint8_t *data

Pointer to the received UART data buffer.

size_t dataLength

Number of bytes received in the buffer.

struct GpioInterruptNotification
#include <CosmicNotifications.h>

Parsed GPIO Interrupt notification information.

Public Members

uint8_t pinNumber

GPIO pin number that triggered the interrupt.

GpioTriggerType triggeredEdge

Which edge fired (rising/falling).

GpioLogicLevel logicLevel

Pin level at interrupt time (HIGH/LOW).

struct I3cConnectorEventNotification
#include <CosmicNotifications.h>

Parsed I3C connector event notification information.

Public Members

I3cConnectorPort port

Which I3C port generated the event.

I3cConnectorEvent event

Plug or unplug event.

I3cConnectorType connectorType

Type of connector identified.

struct Notification
#include <CosmicNotifications.h>

Generic notification wrapper used by both C and C++ APIs.

This structure is delivered by callback-based APIs:

The type field identifies the notification category. The payload bytes are exposed through payload and payloadLength.

Parsing:

Public Functions

inline Notification(NotificationType t, const uint8_t *p, size_t len) noexcept

Constructs a Notification with the given type and payload.

Note

C++ only. Not available in the C API.

Parameters:
  • t – The notification type.

  • p – Pointer to the notification payload data.

  • len – Length of the payload data in bytes.

const I3cHotJoinNotification *i3cHotJoin() const noexcept

Parses this notification as I3C Hot-Join data.

This method validates type and payload length before decoding.

Note

C++ only. Not available in the C API.

Returns:

Pointer to parsed I3cHotJoinNotification when this is a valid NOTIF_I3C_HJ notification; otherwise nullptr.

const I3cIbiNotification *i3cIbi() const noexcept

Parses this notification as I3C In-Band Interrupt (IBI) data.

This method validates type and payload length before decoding.

Note

C++ only. Not available in the C API.

Returns:

Pointer to parsed I3cIbiNotification when this is a valid NOTIF_I3C_IBI notification; otherwise nullptr.

const GpioInterruptNotification *gpio() const noexcept

Parses this notification as GPIO interrupt data.

This method validates type and payload length before decoding.

Note

C++ only. Not available in the C API.

Returns:

Pointer to parsed GpioInterruptNotification when this is a valid NOTIF_GPIO notification; otherwise nullptr.

const UartRxNotification *uartRx() const noexcept

Parses this notification as UART RX data.

This method validates type and payload length before decoding.

Note

C++ only. Not available in the C API.

Returns:

Pointer to parsed UartRxNotification when this is a valid NOTIF_UART notification; otherwise nullptr.

const I3cConnectorEventNotification *i3cConnectorEvent() const noexcept

Parses this notification as I3C connector event data.

This method validates type and payload length before decoding.

Note

C++ only. Not available in the C API.

Returns:

Pointer to parsed I3cConnectorEventNotification when this is a valid NOTIF_I3C_CONNECTOR_EVENT notification; otherwise nullptr.

Public Members

NotificationType type

Notification type. See NotificationType for valid values.

const uint8_t *payload

Pointer to raw notification payload bytes.

The payload format depends on type.

size_t payloadLength

Payload size in bytes.