// This file is generated by Simplicity Studio.  Please do not edit manually.
//
//

// Enclosing macro to prevent multiple inclusion
#ifndef __AF_GEN_EVENT__
#define __AF_GEN_EVENT__


// Code used to configure the cluster event mechanism
#define EMBER_AF_GENERATED_EVENT_CODE \
  EmberEventControl emberAfIdentifyClusterServerTickCallbackControl1; \
  EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl1; \
  EmberEventControl emberAfIdentifyClusterServerTickCallbackControl2; \
  EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl2; \
  EmberEventControl emberAfIdentifyClusterServerTickCallbackControl3; \
  EmberEventControl emberAfOtaBootloadClusterClientTickCallbackControl3; \
  extern EmberEventControl emberAfPluginFormAndJoinCleanupEventControl; \
  extern EmberEventControl emberAfPluginNetworkSteeringFinishSteeringEventControl; \
  extern EmberEventControl emberAfPluginOtaStorageSimpleEepromPageEraseEventControl; \
  extern EmberEventControl emberAfPluginReportingTickEventControl; \
  extern EmberEventControl emberAfPluginScanDispatchScanEventControl; \
  extern EmberEventControl emberAfPluginUpdateTcLinkKeyBeginTcLinkKeyUpdateEventControl; \
  extern EmberEventControl ikkDelayRebootEventControl; \
  extern EmberEventControl ikkGetBindInfoEventControl; \
  extern EmberEventControl ikkUartMsgDispatchEventControl; \
  extern EmberEventControl ikkUartRecvLoopCheckEventControl; \
  extern EmberEventControl ikkUartSentLoopCheckEventControl; \
  extern EmberEventControl kDelayClearFlagEventControl; \
  extern EmberEventControl kDelayClearSequenceEventControl; \
  extern EmberEventControl kDelaySetLedStatusEventControl; \
  extern EmberEventControl kFactoryTestEventControl; \
  extern EmberEventControl kNwkRejoinProcedureEventControl; \
  extern EmberEventControl kOnOffDelayReportAttrEventControl; \
  extern EmberEventControl kOptTunnelMtoRRDelayRspEventControl; \
  extern EmberEventControl kSystemModeDelayReportAttrEventControl; \
  extern EmberEventControl kTargetTemperDelayReportAttrEventControl; \
  extern EmberEventControl kTickEventControl; \
  extern EmberEventControl kUserJoinSucceedProcedureEventControl; \
  extern EmberEventControl kkSystemSetUpEventControl; \
  extern void emberAfPluginFormAndJoinCleanupEventHandler(void); \
  extern void emberAfPluginNetworkSteeringFinishSteeringEventHandler(void); \
  extern void emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler(void); \
  extern void emberAfPluginReportingTickEventHandler(void); \
  extern void emberAfPluginScanDispatchScanEventHandler(void); \
  extern void emberAfPluginUpdateTcLinkKeyBeginTcLinkKeyUpdateEventHandler(void); \
  extern void ikkDelayRebootEventHandler(void); \
  extern void ikkGetBindInfoEventHandler(void); \
  extern void ikkUartMsgDispatchEventHandler(void); \
  extern void ikkUartRecvLoopCheckEventHandler(void); \
  extern void ikkUartSentLoopCheckEventHandler(void); \
  extern void kDelayClearFlagEventHandler(void); \
  extern void kDelayClearSequenceEventHandler(void); \
  extern void kDelaySetLedStatusEventHandler(void); \
  extern void kFactoryTestEventHandler(void); \
  extern void kNwkRejoinProcedureEventHandler(void); \
  extern void kOnOffDelayReportAttrEventHandler(void); \
  extern void kOptTunnelMtoRRDelayRspEventHandler(void); \
  extern void kSystemModeDelayReportAttrEventHandler(void); \
  extern void kTargetTemperDelayReportAttrEventHandler(void); \
  extern void kTickEventHandler(void); \
  extern void kUserJoinSucceedProcedureEventHandler(void); \
  extern void kkSystemSetUpEventHandler(void); \
  static void clusterTickWrapper(EmberEventControl *control, EmberAfTickFunction callback, uint8_t endpoint) \
  { \
    emberAfPushEndpointNetworkIndex(endpoint); \
    emberEventControlSetInactive(*control); \
    (*callback)(endpoint); \
    emberAfPopNetworkIndex(); \
  } \
  void emberAfIdentifyClusterServerTickCallbackWrapperFunction1(void) { clusterTickWrapper(&emberAfIdentifyClusterServerTickCallbackControl1, emberAfIdentifyClusterServerTickCallback, 1); } \
  void emberAfOtaBootloadClusterClientTickCallbackWrapperFunction1(void) { clusterTickWrapper(&emberAfOtaBootloadClusterClientTickCallbackControl1, emberAfOtaBootloadClusterClientTickCallback, 1); } \
  void emberAfIdentifyClusterServerTickCallbackWrapperFunction2(void) { clusterTickWrapper(&emberAfIdentifyClusterServerTickCallbackControl2, emberAfIdentifyClusterServerTickCallback, 2); } \
  void emberAfOtaBootloadClusterClientTickCallbackWrapperFunction2(void) { clusterTickWrapper(&emberAfOtaBootloadClusterClientTickCallbackControl2, emberAfOtaBootloadClusterClientTickCallback, 2); } \
  void emberAfIdentifyClusterServerTickCallbackWrapperFunction3(void) { clusterTickWrapper(&emberAfIdentifyClusterServerTickCallbackControl3, emberAfIdentifyClusterServerTickCallback, 3); } \
  void emberAfOtaBootloadClusterClientTickCallbackWrapperFunction3(void) { clusterTickWrapper(&emberAfOtaBootloadClusterClientTickCallbackControl3, emberAfOtaBootloadClusterClientTickCallback, 3); } \


// EmberEventData structs used to populate the EmberEventData table
#define EMBER_AF_GENERATED_EVENTS   \
  { &emberAfIdentifyClusterServerTickCallbackControl1, emberAfIdentifyClusterServerTickCallbackWrapperFunction1 }, \
  { &emberAfOtaBootloadClusterClientTickCallbackControl1, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction1 }, \
  { &emberAfIdentifyClusterServerTickCallbackControl2, emberAfIdentifyClusterServerTickCallbackWrapperFunction2 }, \
  { &emberAfOtaBootloadClusterClientTickCallbackControl2, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction2 }, \
  { &emberAfIdentifyClusterServerTickCallbackControl3, emberAfIdentifyClusterServerTickCallbackWrapperFunction3 }, \
  { &emberAfOtaBootloadClusterClientTickCallbackControl3, emberAfOtaBootloadClusterClientTickCallbackWrapperFunction3 }, \
  { &emberAfPluginFormAndJoinCleanupEventControl, emberAfPluginFormAndJoinCleanupEventHandler }, \
  { &emberAfPluginNetworkSteeringFinishSteeringEventControl, emberAfPluginNetworkSteeringFinishSteeringEventHandler }, \
  { &emberAfPluginOtaStorageSimpleEepromPageEraseEventControl, emberAfPluginOtaStorageSimpleEepromPageEraseEventHandler }, \
  { &emberAfPluginReportingTickEventControl, emberAfPluginReportingTickEventHandler }, \
  { &emberAfPluginScanDispatchScanEventControl, emberAfPluginScanDispatchScanEventHandler }, \
  { &emberAfPluginUpdateTcLinkKeyBeginTcLinkKeyUpdateEventControl, emberAfPluginUpdateTcLinkKeyBeginTcLinkKeyUpdateEventHandler }, \
  { &ikkDelayRebootEventControl, ikkDelayRebootEventHandler }, \
  { &ikkGetBindInfoEventControl, ikkGetBindInfoEventHandler }, \
  { &ikkUartMsgDispatchEventControl, ikkUartMsgDispatchEventHandler }, \
  { &ikkUartRecvLoopCheckEventControl, ikkUartRecvLoopCheckEventHandler }, \
  { &ikkUartSentLoopCheckEventControl, ikkUartSentLoopCheckEventHandler }, \
  { &kDelayClearFlagEventControl, kDelayClearFlagEventHandler }, \
  { &kDelayClearSequenceEventControl, kDelayClearSequenceEventHandler }, \
  { &kDelaySetLedStatusEventControl, kDelaySetLedStatusEventHandler }, \
  { &kFactoryTestEventControl, kFactoryTestEventHandler }, \
  { &kNwkRejoinProcedureEventControl, kNwkRejoinProcedureEventHandler }, \
  { &kOnOffDelayReportAttrEventControl, kOnOffDelayReportAttrEventHandler }, \
  { &kOptTunnelMtoRRDelayRspEventControl, kOptTunnelMtoRRDelayRspEventHandler }, \
  { &kSystemModeDelayReportAttrEventControl, kSystemModeDelayReportAttrEventHandler }, \
  { &kTargetTemperDelayReportAttrEventControl, kTargetTemperDelayReportAttrEventHandler }, \
  { &kTickEventControl, kTickEventHandler }, \
  { &kUserJoinSucceedProcedureEventControl, kUserJoinSucceedProcedureEventHandler }, \
  { &kkSystemSetUpEventControl, kkSystemSetUpEventHandler }, \


#define EMBER_AF_GENERATED_EVENT_STRINGS   \
  "Identify Cluster Server EP 1",  \
  "Over the Air Bootloading Cluster Client EP 1",  \
  "Identify Cluster Server EP 2",  \
  "Over the Air Bootloading Cluster Client EP 2",  \
  "Identify Cluster Server EP 3",  \
  "Over the Air Bootloading Cluster Client EP 3",  \
  "Form and Join Library Plugin Cleanup",  \
  "Network Steering Plugin FinishSteering",  \
  "OTA Simple Storage EEPROM Driver Plugin PageErase",  \
  "Reporting Plugin Tick",  \
  "Scan Dispatch Plugin Scan",  \
  "Update TC Link Key Plugin BeginTcLinkKeyUpdate",  \
  "Ikk delay reboot event control",  \
  "Ikk get bind info event control",  \
  "Ikk uart msg dispatch event control",  \
  "Ikk uart recv loop check event control",  \
  "Ikk uart sent loop check event control",  \
  "K delay clear flag event control",  \
  "K delay clear sequence event control",  \
  "K delay set led status event control",  \
  "K factory test event control",  \
  "K nwk rejoin procedure event control",  \
  "K on off delay report attr event control",  \
  "K opt tunnel mto r r delay rsp event control",  \
  "K system mode delay report attr event control",  \
  "K target temper delay report attr event control",  \
  "K tick event control",  \
  "K user join succeed procedure event control",  \
  "Kk system set up event control",  \


// The length of the event context table used to track and retrieve cluster events
#define EMBER_AF_EVENT_CONTEXT_LENGTH 6

// EmberAfEventContext structs used to populate the EmberAfEventContext table
#define EMBER_AF_GENERATED_EVENT_CONTEXT { 0x1, 0x3, false, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfIdentifyClusterServerTickCallbackControl1}, \
{ 0x1, 0x19, true, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfOtaBootloadClusterClientTickCallbackControl1}, \
{ 0x2, 0x3, false, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfIdentifyClusterServerTickCallbackControl2}, \
{ 0x2, 0x19, true, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfOtaBootloadClusterClientTickCallbackControl2}, \
{ 0x3, 0x3, false, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfIdentifyClusterServerTickCallbackControl3}, \
{ 0x3, 0x19, true, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfOtaBootloadClusterClientTickCallbackControl3}


#endif // __AF_GEN_EVENT__
