Calendar Common#

API and Callbacks for the Calendar Common Component.

This component provides common utility functions that are used by the client and server of the Calendar Cluster.

Modules#

sl_zigbee_af_calendar_day_schedule_entry_struct_t

sl_zigbee_af_calendar_day_struct_t

sl_zigbee_af_calendar_special_day_struct_t

sl_zigbee_af_calendar_week_struct_t

sl_zigbee_af_calendar_season_struct_t

sl_zigbee_af_calendar_struct_t

API#

uint8_t
sl_zigbee_af_calendar_common_get_calendar_by_id(uint32_t calendarId, uint32_t providerId)

Get the calendar by calendar ID.

uint32_t
sl_zigbee_af_calendar_common_end_time_utc(const sl_zigbee_af_calendar_struct_t *calendar)

Get the calendar end time (UTC).

bool
sl_zigbee_af_calendar_common_set_cal_info(uint8_t index, uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, uint32_t startTimeUtc, uint8_t calendarType, uint8_t *calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, uint8_t numberOfDayProfiles)

Set the calendar info.

bool
sl_zigbee_af_calendar_common_add_cal_info(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, uint32_t startTimeUtc, uint8_t calendarType, uint8_t *calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, uint8_t numberOfDayProfiles)

Add a new entry corresponding to the PublishCalendar command. Tries to handle the new entry in the following method: 1) Try to apply new data to a matching existing entry. 2) Fields such as providerId, issuerEventId, and startTime, will be used. 3) Overwrite the oldest entry (one with smallest event ID) with new information.

bool
sl_zigbee_af_calendar_server_set_seasons_info(uint8_t index, uint8_t seasonId, sl_zigbee_af_date_t startDate, uint8_t weekIndex)

Set calendar server season info.

bool
sl_zigbee_af_calendar_server_add_seasons_info(uint32_t issuerCalendarId, uint8_t *seasonsEntries, uint8_t seasonsEntriesLength, uint8_t *unknownWeekIdSeasonsMask)

Add calendar server season info.

bool
sl_zigbee_af_calendar_common_set_day_prof_info(uint8_t index, uint8_t dayId, uint8_t entryId, uint16_t minutesFromMidnight, uint8_t data)

Set day profile info.

bool
sl_zigbee_af_calendar_common_add_day_prof_info(uint32_t issuerCalendarId, uint8_t dayId, uint8_t *dayScheduleEntries, uint16_t dayScheduleEntriesLength)

Add day profile info.

bool
sl_zigbee_af_calendar_server_set_week_prof_info(uint8_t index, uint8_t weekId, uint8_t dayIdRefMon, uint8_t dayIdRefTue, uint8_t dayIdRefWed, uint8_t dayIdRefThu, uint8_t dayIdRefFri, uint8_t dayIdRefSat, uint8_t dayIdRefSun)

Set calendar server week profile info.

bool
sl_zigbee_af_calendar_server_add_week_prof_info(uint32_t issuerCalendarId, uint8_t weekId, uint8_t dayIdRefMon, uint8_t dayIdRefTue, uint8_t dayIdRefWed, uint8_t dayIdRefThu, uint8_t dayIdRefFri, uint8_t dayIdRefSat, uint8_t dayIdRefSun)

Add calendar server week profile.

bool
sl_zigbee_af_calendar_common_add_special_days_info(uint32_t issuerCalendarId, uint8_t totalNumberOfSpecialDays, uint8_t *specialDaysEntries, uint16_t specialDaysEntriesLength, uint8_t *unknownSpecialDaysMask)

Updating special days information of the specified calendar. Assumes that the value of totalNumberOfSpecialDays will match up with the information passed in between specialDaysEntries and specialDaysEntriesLength.

Enumerations#

enum
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_FLAGS_SENT = 0x01
}

Macros#

#define
fieldLength (field)
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_INVALID_SCHEDULE_ENTRY 0xFFFF
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_INVALID_ID 0xFF
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_MAX_CALENDAR_NAME_LENGTH 12
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_INVALID_INDEX 0xFF
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_MONDAY_INDEX (0)
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_SUNDAY_INDEX (6)
#define
SL_ZIGBEE_AF_DAYS_IN_THE_WEEK (7)
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_INVALID_CALENDAR_ID 0xFFFFFFFF
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_WILDCARD_CALENDAR_ID 0x00000000
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_WILDCARD_PROVIDER_ID 0xFFFFFFFF
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_WILDCARD_ISSUER_ID 0xFFFFFFFF
#define
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_WILDCARD_CALENDAR_TYPE 0xFF

API Documentation#

sl_zigbee_af_calendar_common_get_calendar_by_id#

uint8_t sl_zigbee_af_calendar_common_get_calendar_by_id (uint32_t calendarId, uint32_t providerId)

Get the calendar by calendar ID.

Parameters
TypeDirectionArgument NameDescription
uint32_tN/AcalendarId

Ver.: always

uint32_tN/AproviderId

Ver.: always

Returns

  • uint8_t Calender index


sl_zigbee_af_calendar_common_end_time_utc#

uint32_t sl_zigbee_af_calendar_common_end_time_utc (const sl_zigbee_af_calendar_struct_t * calendar)

Get the calendar end time (UTC).

Parameters
TypeDirectionArgument NameDescription
const sl_zigbee_af_calendar_struct_t *N/Acalendar

pointer to the calendar struct Ver.: always

Returns

  • uint32_t end UTC time in seconds


sl_zigbee_af_calendar_common_set_cal_info#

bool sl_zigbee_af_calendar_common_set_cal_info (uint8_t index, uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, uint32_t startTimeUtc, uint8_t calendarType, uint8_t * calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, uint8_t numberOfDayProfiles)

Set the calendar info.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aindex

Ver.: always

uint32_tN/AproviderId

Ver.: always

uint32_tN/AissuerEventId

Ver.: always

uint32_tN/AissuerCalendarId

Ver.: always

uint32_tN/AstartTimeUtc

Ver.: always

uint8_tN/AcalendarType

Ver.: always

uint8_t *N/AcalendarName

Ver.: always

uint8_tN/AnumberOfSeasons

Ver.: always

uint8_tN/AnumberOfWeekProfiles

Ver.: always

uint8_tN/AnumberOfDayProfiles

Ver.: always

Returns

  • bool true if success


sl_zigbee_af_calendar_common_add_cal_info#

bool sl_zigbee_af_calendar_common_add_cal_info (uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, uint32_t startTimeUtc, uint8_t calendarType, uint8_t * calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, uint8_t numberOfDayProfiles)

Add a new entry corresponding to the PublishCalendar command. Tries to handle the new entry in the following method: 1) Try to apply new data to a matching existing entry. 2) Fields such as providerId, issuerEventId, and startTime, will be used. 3) Overwrite the oldest entry (one with smallest event ID) with new information.

Parameters
TypeDirectionArgument NameDescription
uint32_tN/AproviderId

Ver.: always

uint32_tN/AissuerEventId

Ver.: always

uint32_tN/AissuerCalendarId

Ver.: always

uint32_tN/AstartTimeUtc

Ver.: always

uint8_tN/AcalendarType

Ver.: always

uint8_t *N/AcalendarName

Ver.: always

uint8_tN/AnumberOfSeasons

Ver.: always

uint8_tN/AnumberOfWeekProfiles

Ver.: always

uint8_tN/AnumberOfDayProfiles

Ver.: always

Returns

  • bool true if success


sl_zigbee_af_calendar_server_set_seasons_info#

bool sl_zigbee_af_calendar_server_set_seasons_info (uint8_t index, uint8_t seasonId, sl_zigbee_af_date_t startDate, uint8_t weekIndex)

Set calendar server season info.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aindex

Ver.: always

uint8_tN/AseasonId

Ver.: always

sl_zigbee_af_date_tN/AstartDate

Ver.: always

uint8_tN/AweekIndex

Ver.: always

Returns

  • bool true if success


sl_zigbee_af_calendar_server_add_seasons_info#

bool sl_zigbee_af_calendar_server_add_seasons_info (uint32_t issuerCalendarId, uint8_t * seasonsEntries, uint8_t seasonsEntriesLength, uint8_t * unknownWeekIdSeasonsMask)

Add calendar server season info.

Parameters
TypeDirectionArgument NameDescription
uint32_tN/AissuerCalendarId

Ver.: always

uint8_t *N/AseasonsEntries

Ver.: always

uint8_tN/AseasonsEntriesLength

Ver.: always

uint8_t *N/AunknownWeekIdSeasonsMask

Ver.: always

Returns

  • bool true if success


sl_zigbee_af_calendar_common_set_day_prof_info#

bool sl_zigbee_af_calendar_common_set_day_prof_info (uint8_t index, uint8_t dayId, uint8_t entryId, uint16_t minutesFromMidnight, uint8_t data)

Set day profile info.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aindex

Ver.: always

uint8_tN/AdayId

Ver.: always

uint8_tN/AentryId

Ver.: always

uint16_tN/AminutesFromMidnight

Ver.: always

uint8_tN/Adata

Ver.: always

Returns

  • bool true if success


sl_zigbee_af_calendar_common_add_day_prof_info#

bool sl_zigbee_af_calendar_common_add_day_prof_info (uint32_t issuerCalendarId, uint8_t dayId, uint8_t * dayScheduleEntries, uint16_t dayScheduleEntriesLength)

Add day profile info.

Parameters
TypeDirectionArgument NameDescription
uint32_tN/AissuerCalendarId

Ver.: always

uint8_tN/AdayId

Ver.: always

uint8_t *N/AdayScheduleEntries

Ver.: always

uint16_tN/AdayScheduleEntriesLength

Ver.: always

Returns

  • bool true if success


sl_zigbee_af_calendar_server_set_week_prof_info#

bool sl_zigbee_af_calendar_server_set_week_prof_info (uint8_t index, uint8_t weekId, uint8_t dayIdRefMon, uint8_t dayIdRefTue, uint8_t dayIdRefWed, uint8_t dayIdRefThu, uint8_t dayIdRefFri, uint8_t dayIdRefSat, uint8_t dayIdRefSun)

Set calendar server week profile info.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aindex

Ver.: always

uint8_tN/AweekId

Ver.: always

uint8_tN/AdayIdRefMon

Ver.: always

uint8_tN/AdayIdRefTue

Ver.: always

uint8_tN/AdayIdRefWed

Ver.: always

uint8_tN/AdayIdRefThu

Ver.: always

uint8_tN/AdayIdRefFri

Ver.: always

uint8_tN/AdayIdRefSat

Ver.: always

uint8_tN/AdayIdRefSun

Ver.: always

Returns

  • bool true if success


sl_zigbee_af_calendar_server_add_week_prof_info#

bool sl_zigbee_af_calendar_server_add_week_prof_info (uint32_t issuerCalendarId, uint8_t weekId, uint8_t dayIdRefMon, uint8_t dayIdRefTue, uint8_t dayIdRefWed, uint8_t dayIdRefThu, uint8_t dayIdRefFri, uint8_t dayIdRefSat, uint8_t dayIdRefSun)

Add calendar server week profile.

Parameters
TypeDirectionArgument NameDescription
uint32_tN/AissuerCalendarId

Ver.: always

uint8_tN/AweekId

Ver.: always

uint8_tN/AdayIdRefMon

Ver.: always

uint8_tN/AdayIdRefTue

Ver.: always

uint8_tN/AdayIdRefWed

Ver.: always

uint8_tN/AdayIdRefThu

Ver.: always

uint8_tN/AdayIdRefFri

Ver.: always

uint8_tN/AdayIdRefSat

Ver.: always

uint8_tN/AdayIdRefSun

Ver.: always

Returns

  • bool true if success


sl_zigbee_af_calendar_common_add_special_days_info#

bool sl_zigbee_af_calendar_common_add_special_days_info (uint32_t issuerCalendarId, uint8_t totalNumberOfSpecialDays, uint8_t * specialDaysEntries, uint16_t specialDaysEntriesLength, uint8_t * unknownSpecialDaysMask)

Updating special days information of the specified calendar. Assumes that the value of totalNumberOfSpecialDays will match up with the information passed in between specialDaysEntries and specialDaysEntriesLength.

Parameters
TypeDirectionArgument NameDescription
uint32_tN/AissuerCalendarId

Ver.: always

uint8_tN/AtotalNumberOfSpecialDays

Ver.: always

uint8_t *N/AspecialDaysEntries

Ver.: always

uint16_tN/AspecialDaysEntriesLength

Ver.: always

uint8_t *N/AunknownSpecialDaysMask

Ver.: always

Returns

  • bool true if success


Enumeration Documentation#

sl_zigbee_af_plugin_calendar_common_flags_t#

sl_zigbee_af_plugin_calendar_common_flags_t
Enumerator
SL_ZIGBEE_AF_PLUGIN_CALENDAR_COMMON_FLAGS_SENT

Variable Documentation#

calendars#

sl_zigbee_af_calendar_struct_t calendars[]