66
77#include <pb_encode.h>
88#include <pb_decode.h>
9+ #if defined(CONFIG_WIFI_ESP_HOSTED_LEGACY )
910#include <esp_hosted_legacy.pb.h>
11+ #else
12+ #include <esp_hosted_latest.pb.h>
13+ #endif
1014
1115#include <esp_hosted_wifi.h>
1216#include <esp_hosted_hal.h>
@@ -204,7 +208,7 @@ static void esp_hosted_event_task(const struct device *dev, void *p2, void *p3)
204208 continue ;
205209 }
206210
207- #if CONFIG_WIFI_ESP_HOSTED_DEBUG
211+ #if defined( CONFIG_WIFI_ESP_HOSTED_DEBUG )
208212 esp_hosted_frame_dump (& frame );
209213#endif
210214
@@ -220,6 +224,14 @@ static void esp_hosted_event_task(const struct device *dev, void *p2, void *p3)
220224 case CtrlMsgId_Event_Heartbeat :
221225 data -> last_hb_ms = k_uptime_get ();
222226 continue ;
227+ #if !defined(CONFIG_WIFI_ESP_HOSTED_LEGACY )
228+ case CtrlMsgId_Event_StationConnectedToAP : {
229+ data -> state [ESP_HOSTED_STA_IF ] = WIFI_STATE_COMPLETED ;
230+ net_if_dormant_off (data -> iface [ESP_HOSTED_STA_IF ]);
231+ wifi_mgmt_raise_connect_result_event (data -> iface [ESP_HOSTED_STA_IF ], 0 );
232+ continue ;
233+ }
234+ #endif /* CONFIG_WIFI_ESP_HOSTED_LEGACY */
223235 case CtrlMsgId_Event_StationDisconnectFromAP :
224236 data -> state [ESP_HOSTED_STA_IF ] = WIFI_STATE_DISCONNECTED ;
225237 net_if_dormant_on (data -> iface [ESP_HOSTED_STA_IF ]);
@@ -238,16 +250,6 @@ static void esp_hosted_event_task(const struct device *dev, void *p2, void *p3)
238250 & sta_info );
239251 continue ;
240252 }
241- case CtrlMsgId_Resp_ConnectAP : {
242- int ret = esp_hosted_ctrl_response (& ctrl_msg );
243-
244- if (!ret ) {
245- data -> state [ESP_HOSTED_STA_IF ] = WIFI_STATE_COMPLETED ;
246- net_if_dormant_off (data -> iface [ESP_HOSTED_STA_IF ]);
247- }
248- wifi_mgmt_raise_connect_result_event (data -> iface [ESP_HOSTED_STA_IF ], ret );
249- continue ;
250- }
251253 default : /* Unhandled events/responses will be queued. */
252254 break ;
253255 }
@@ -298,9 +300,18 @@ static int esp_hosted_connect(const struct device *dev, struct wifi_connect_req_
298300 strncpy (ctrl_msg .req_connect_ap .ssid , params -> ssid , ESP_HOSTED_MAX_SSID_LEN );
299301 esp_hosted_mac_to_str (params -> bssid , ctrl_msg .req_connect_ap .bssid .bytes );
300302
301- if (esp_hosted_ctrl (dev , CtrlMsgId_Req_ConnectAP , & ctrl_msg , 0 )) {
303+ if (esp_hosted_ctrl (dev , CtrlMsgId_Req_ConnectAP , & ctrl_msg , ESP_HOSTED_SYNC_TIMEOUT )) {
302304 return - EAGAIN ;
303305 }
306+
307+ #if defined(CONFIG_WIFI_ESP_HOSTED_LEGACY )
308+ esp_hosted_data_t * data = dev -> data ;
309+
310+ /* Legacy connect response is synchronous */
311+ data -> state [ESP_HOSTED_STA_IF ] = WIFI_STATE_COMPLETED ;
312+ net_if_dormant_off (data -> iface [ESP_HOSTED_STA_IF ]);
313+ wifi_mgmt_raise_connect_result_event (data -> iface [ESP_HOSTED_STA_IF ], 0 );
314+ #endif /* CONFIG_WIFI_ESP_HOSTED_LEGACY */
304315 return 0 ;
305316}
306317
@@ -602,6 +613,21 @@ static int esp_hosted_dev_init(const struct device *dev)
602613 return - EIO ;
603614 }
604615
616+ /* Read firmware version */
617+ #if defined(CONFIG_WIFI_ESP_HOSTED_LEGACY )
618+ LOG_INF ("firmware version: v0.0.5 (legacy)" );
619+ #else
620+ ctrl_msg = (CtrlMsg )CtrlMsg_init_zero ;
621+ if (esp_hosted_ctrl (dev , CtrlMsgId_Req_GetFwVersion , & ctrl_msg , ESP_HOSTED_SYNC_TIMEOUT )) {
622+ return - EIO ;
623+ }
624+
625+ CtrlMsg_Resp_GetFwVersion * fw = & ctrl_msg .resp_get_fw_version ;
626+
627+ LOG_INF ("firmware version: v%u.%u.%u.%u.%u" , fw -> major1 , fw -> major2 , fw -> minor ,
628+ fw -> rev_patch1 , fw -> rev_patch2 );
629+ #endif /* CONFIG_WIFI_ESP_HOSTED_LEGACY */
630+
605631 /* Set MAC addresses. */
606632 for (size_t i = 0 ; i < 2 ; i ++ ) {
607633 ctrl_msg .req_get_mac_address .mode = i + 1 ;
0 commit comments