@@ -141,71 +141,47 @@ void PlatformManagerImpl::_Shutdown()
141
141
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION
142
142
// This function needs to be global so it can be used from the platform implementation without depending on the platfrom itself.
143
143
// This is a workaround to avoid a circular dependency.
144
- void HandleWFXSystemEvent (wfx_event_base_t eventBase, sl_wfx_generic_message_t * eventData)
144
+ void HandleWFXSystemEvent (sl_wfx_generic_message_t * eventData)
145
145
{
146
146
using namespace chip ;
147
147
using namespace chip ::DeviceLayer;
148
148
149
149
ChipDeviceEvent event;
150
150
memset (&event, 0 , sizeof (event));
151
- event.Type = DeviceEventType::kWFXSystemEvent ;
152
- event.Platform .WFXSystemEvent .eventBase = eventBase;
151
+ event.Type = DeviceEventType::kWFXSystemEvent ;
153
152
154
- if (eventBase == WIFI_EVENT )
153
+ switch (eventData-> header . id )
155
154
{
156
- switch (eventData->header .id )
157
- {
158
- case SL_WFX_STARTUP_IND_ID:
159
- memcpy (&event.Platform .WFXSystemEvent .data .startupEvent , eventData,
160
- sizeof (event.Platform .WFXSystemEvent .data .startupEvent ));
161
- break ;
162
- case SL_WFX_CONNECT_IND_ID:
163
- memcpy (&event.Platform .WFXSystemEvent .data .connectEvent , eventData,
164
- sizeof (event.Platform .WFXSystemEvent .data .connectEvent ));
165
- break ;
166
- case SL_WFX_DISCONNECT_IND_ID:
167
- memcpy (&event.Platform .WFXSystemEvent .data .disconnectEvent , eventData,
168
- sizeof (event.Platform .WFXSystemEvent .data .disconnectEvent ));
169
- break ;
170
- // case SL_WFX_RECEIVED_IND_ID:
171
- // memcpy(&event.Platform.WFXSystemEvent.data.receivedEvent, eventData,
172
- // sizeof(event.Platform.WFXSystemEvent.data.receivedEvent));
173
- // break;
174
- // case SL_WFX_GENERIC_IND_ID:
175
- // memcpy(&event.Platform.WFXSystemEvent.data.genericEvent, eventData,
176
- // sizeof(event.Platform.WFXSystemEvent.data.genericEvent));
177
- // break;
178
- // case SL_WFX_EXCEPTION_IND_ID:
179
- // memcpy(&event.Platform.WFXSystemEvent.data.exceptionEvent, eventData,
180
- // sizeof(event.Platform.WFXSystemEvent.data.exceptionEvent));
181
- // break;
182
- // case SL_WFX_ERROR_IND_ID:
183
- // memcpy(&event.Platform.WFXSystemEvent.data.errorEvent, eventData,
184
- // sizeof(event.Platform.WFXSystemEvent.data.errorEvent));
185
- // break;
186
- default :
187
- break ;
188
- }
189
- }
190
- else if (eventBase == IP_EVENT)
191
- {
192
- switch (eventData->header .id )
193
- {
194
- case IP_EVENT_STA_GOT_IP:
195
- memcpy (&event.Platform .WFXSystemEvent .data .genericMsgEvent , eventData,
196
- sizeof (event.Platform .WFXSystemEvent .data .genericMsgEvent ));
197
- break ;
198
- case IP_EVENT_GOT_IP6:
199
- memcpy (&event.Platform .WFXSystemEvent .data .genericMsgEvent , eventData,
200
- sizeof (event.Platform .WFXSystemEvent .data .genericMsgEvent ));
201
- break ;
202
- case IP_EVENT_STA_LOST_IP:
203
- memcpy (&event.Platform .WFXSystemEvent .data .genericMsgEvent , eventData,
204
- sizeof (event.Platform .WFXSystemEvent .data .genericMsgEvent ));
205
- break ;
206
- default :
207
- break ;
208
- }
155
+ // TODO: Work around until we unify the data structures behind a Matter level common structure
156
+ #if WF200_WIFI
157
+ case SL_WFX_STARTUP_IND_ID:
158
+ #endif
159
+ case to_underlying (WifiEvent::kStartUp ):
160
+ memcpy (&event.Platform .WFXSystemEvent .data .startupEvent , eventData,
161
+ sizeof (event.Platform .WFXSystemEvent .data .startupEvent ));
162
+ // TODO: This is a workaround until we unify the Matter Data structures
163
+ event.Platform .WFXSystemEvent .data .startupEvent .header .id = to_underlying (WifiEvent::kStartUp );
164
+ break ;
165
+
166
+ case to_underlying (WifiEvent::kConnect ):
167
+ memcpy (&event.Platform .WFXSystemEvent .data .connectEvent , eventData,
168
+ sizeof (event.Platform .WFXSystemEvent .data .connectEvent ));
169
+ break ;
170
+
171
+ case to_underlying (WifiEvent::kDisconnect ):
172
+ memcpy (&event.Platform .WFXSystemEvent .data .disconnectEvent , eventData,
173
+ sizeof (event.Platform .WFXSystemEvent .data .disconnectEvent ));
174
+ break ;
175
+
176
+ case to_underlying (WifiEvent::kGotIPv4 ):
177
+ case to_underlying (WifiEvent::kLostIP ):
178
+ case to_underlying (WifiEvent::kGotIPv6 ):
179
+ memcpy (&event.Platform .WFXSystemEvent .data .genericMsgEvent , eventData,
180
+ sizeof (event.Platform .WFXSystemEvent .data .genericMsgEvent ));
181
+ break ;
182
+
183
+ default :
184
+ break ;
209
185
}
210
186
211
187
// TODO: We should add error processing here
0 commit comments