Skip to content

Commit edc3c2d

Browse files
mantriyogeshdavid-cermak
authored andcommitted
feat(wifi_remote): Move to esp-protocols
1 parent 943b683 commit edc3c2d

16 files changed

+577
-214
lines changed

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ repos:
6161
- repo: local
6262
hooks:
6363
- id: commit message scopes
64-
name: "commit message must be scoped with: mdns, modem, websocket, asio, mqtt_cxx, console, common, eppp"
65-
entry: '\A(?!(feat|fix|ci|bump|test|docs)\((mdns|modem|common|console|websocket|asio|mqtt_cxx|examples|eppp)\)\:)'
64+
name: "commit message must be scoped with: mdns, modem, websocket, asio, mqtt_cxx, console, common, eppp, wifi_remote"
65+
entry: '\A(?!(feat|fix|ci|bump|test|docs)\((mdns|modem|common|console|websocket|asio|mqtt_cxx|examples|eppp|wifi_remote)\)\:)'
6666
language: pygrep
6767
args: [--multiline]
6868
stages: [commit-msg]
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
21
if(NOT CONFIG_ESP_WIFI_ENABLED)
32
set(src_wifi_is_remote esp_wifi_remote.c)
43
endif()
54

65
idf_component_register(INCLUDE_DIRS include
76
SRCS wifi_remote_rpc.c wifi_remote_net.c wifi_remote_init.c ${src_wifi_is_remote}
8-
${INTERNAL_SRCS}
97
REQUIRES esp_event esp_netif
10-
PRIV_INCLUDE_DIRS ${INTERNAL_INCLUDE_DIRS}
11-
PRIV_REQUIRES esp_wifi esp_hosted_preview)
8+
PRIV_REQUIRES esp_wifi esp_hosted)
File renamed without changes.
File renamed without changes.
Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include "esp_wifi.h"
8+
#include "esp_log.h"
9+
#include "esp_wifi_remote.h"
10+
11+
#define WEAK __attribute__((weak))
12+
13+
WEAK ESP_EVENT_DEFINE_BASE(WIFI_EVENT);
14+
15+
WEAK wifi_osi_funcs_t g_wifi_osi_funcs;
16+
WEAK const wpa_crypto_funcs_t g_wifi_default_wpa_crypto_funcs;
17+
WEAK uint64_t g_wifi_feature_caps =
18+
#if CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE
19+
CONFIG_FEATURE_WPA3_SAE_BIT |
20+
#endif
21+
#if CONFIG_SPIRAM
22+
CONFIG_FEATURE_CACHE_TX_BUF_BIT |
23+
#endif
24+
#if CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT
25+
CONFIG_FEATURE_FTM_INITIATOR_BIT |
26+
#endif
27+
#if CONFIG_ESP_WIFI_FTM_RESPONDER_SUPPORT
28+
CONFIG_FEATURE_FTM_RESPONDER_BIT |
29+
#endif
30+
0;
31+
32+
WEAK esp_err_t esp_wifi_connect(void)
33+
{
34+
return remote_esp_wifi_connect();
35+
}
36+
37+
WEAK esp_err_t esp_wifi_disconnect(void)
38+
{
39+
return remote_esp_wifi_disconnect();
40+
}
41+
42+
WEAK esp_err_t esp_wifi_init(const wifi_init_config_t *config)
43+
{
44+
return remote_esp_wifi_init(config);
45+
}
46+
47+
WEAK esp_err_t esp_wifi_deinit(void)
48+
{
49+
return remote_esp_wifi_deinit();
50+
}
51+
52+
WEAK esp_err_t esp_wifi_set_mode(wifi_mode_t mode)
53+
{
54+
return remote_esp_wifi_set_mode(mode);
55+
}
56+
57+
WEAK esp_err_t esp_wifi_get_mode(wifi_mode_t *mode)
58+
{
59+
return remote_esp_wifi_get_mode(mode);
60+
}
61+
62+
WEAK esp_err_t esp_wifi_set_config(wifi_interface_t interface, wifi_config_t *conf)
63+
{
64+
return remote_esp_wifi_set_config(interface, conf);
65+
}
66+
67+
WEAK esp_err_t esp_wifi_get_config(wifi_interface_t interface, wifi_config_t *conf)
68+
{
69+
return remote_esp_wifi_get_config(interface, conf);
70+
}
71+
72+
WEAK esp_err_t esp_wifi_start(void)
73+
{
74+
return remote_esp_wifi_start();
75+
}
76+
77+
WEAK esp_err_t esp_wifi_stop(void)
78+
{
79+
return remote_esp_wifi_stop();
80+
}
81+
82+
WEAK esp_err_t esp_wifi_get_mac(wifi_interface_t ifx, uint8_t mac[6])
83+
{
84+
return remote_esp_wifi_get_mac(ifx, mac);
85+
}
86+
87+
WEAK esp_err_t esp_wifi_set_mac(wifi_interface_t ifx, const uint8_t mac[6])
88+
{
89+
return remote_esp_wifi_set_mac(ifx, mac);
90+
}
91+
92+
WEAK esp_err_t esp_wifi_scan_start(const wifi_scan_config_t *config, bool block)
93+
{
94+
return remote_esp_wifi_scan_start(config, block);
95+
}
96+
97+
WEAK esp_err_t esp_wifi_scan_stop(void)
98+
{
99+
return remote_esp_wifi_scan_stop();
100+
}
101+
102+
WEAK esp_err_t esp_wifi_scan_get_ap_num(uint16_t *number)
103+
{
104+
return remote_esp_wifi_scan_get_ap_num(number);
105+
}
106+
107+
WEAK esp_err_t esp_wifi_scan_get_ap_records(uint16_t *number, wifi_ap_record_t *ap_records)
108+
{
109+
return remote_esp_wifi_scan_get_ap_records(number, ap_records);
110+
}
111+
112+
WEAK esp_err_t esp_wifi_clear_ap_list(void)
113+
{
114+
return remote_esp_wifi_clear_ap_list();
115+
}
116+
117+
WEAK esp_err_t esp_wifi_restore(void)
118+
{
119+
return remote_esp_wifi_restore();
120+
}
121+
122+
WEAK esp_err_t esp_wifi_clear_fast_connect(void)
123+
{
124+
return remote_esp_wifi_clear_fast_connect();
125+
}
126+
127+
WEAK esp_err_t esp_wifi_deauth_sta(uint16_t aid)
128+
{
129+
return remote_esp_wifi_deauth_sta(aid);
130+
}
131+
132+
WEAK esp_err_t esp_wifi_sta_get_ap_info(wifi_ap_record_t *ap_info)
133+
{
134+
return remote_esp_wifi_sta_get_ap_info(ap_info);
135+
}
136+
137+
WEAK esp_err_t esp_wifi_set_ps(wifi_ps_type_t type)
138+
{
139+
return remote_esp_wifi_set_ps(type);
140+
}
141+
142+
WEAK esp_err_t esp_wifi_get_ps(wifi_ps_type_t *type)
143+
{
144+
return remote_esp_wifi_get_ps(type);
145+
}
146+
147+
WEAK esp_err_t esp_wifi_set_storage(wifi_storage_t storage)
148+
{
149+
return remote_esp_wifi_set_storage(storage);
150+
}
151+
152+
WEAK esp_err_t esp_wifi_set_bandwidth(wifi_interface_t ifx, wifi_bandwidth_t bw)
153+
{
154+
return remote_esp_wifi_set_bandwidth(ifx, bw);
155+
}
156+
157+
WEAK esp_err_t esp_wifi_get_bandwidth(wifi_interface_t ifx, wifi_bandwidth_t *bw)
158+
{
159+
return remote_esp_wifi_get_bandwidth(ifx, bw);
160+
}
161+
162+
WEAK esp_err_t esp_wifi_set_channel(uint8_t primary, wifi_second_chan_t second)
163+
{
164+
return remote_esp_wifi_set_channel(primary, second);
165+
}
166+
167+
WEAK esp_err_t esp_wifi_get_channel(uint8_t *primary, wifi_second_chan_t *second)
168+
{
169+
return remote_esp_wifi_get_channel(primary, second);
170+
}
171+
172+
WEAK esp_err_t esp_wifi_set_country_code(const char *country, bool ieee80211d_enabled)
173+
{
174+
return remote_esp_wifi_set_country_code(country, ieee80211d_enabled);
175+
}
176+
177+
WEAK esp_err_t esp_wifi_get_country_code(char *country)
178+
{
179+
return remote_esp_wifi_get_country_code(country);
180+
}
181+
182+
WEAK esp_err_t esp_wifi_set_country(const wifi_country_t *country)
183+
{
184+
return remote_esp_wifi_set_country(country);
185+
}
186+
187+
WEAK esp_err_t esp_wifi_get_country(wifi_country_t *country)
188+
{
189+
return remote_esp_wifi_get_country(country);
190+
}
191+
192+
WEAK esp_err_t esp_wifi_ap_get_sta_list(wifi_sta_list_t *sta)
193+
{
194+
return remote_esp_wifi_ap_get_sta_list(sta);
195+
}
196+
197+
WEAK esp_err_t esp_wifi_ap_get_sta_aid(const uint8_t mac[6], uint16_t *aid)
198+
{
199+
return remote_esp_wifi_ap_get_sta_aid(mac, aid);
200+
}
201+
202+
WEAK esp_err_t esp_wifi_sta_get_rssi(int *rssi)
203+
{
204+
return remote_esp_wifi_sta_get_rssi(rssi);
205+
}
206+
207+
WEAK esp_err_t esp_wifi_set_protocol(wifi_interface_t ifx, uint8_t protocol_bitmap)
208+
{
209+
return remote_esp_wifi_set_protocol(ifx, protocol_bitmap);
210+
}
211+
212+
WEAK esp_err_t esp_wifi_get_protocol(wifi_interface_t ifx, uint8_t *protocol_bitmap)
213+
{
214+
return remote_esp_wifi_get_protocol(ifx, protocol_bitmap);
215+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
version: "1.0.0"

esp_wifi_remote/include/esp_wifi_native.h renamed to components/esp_wifi_remote/include/esp_wifi_native.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
typedef struct wifi_sta_list_t {
1414
wifi_sta_info_t sta[ESP_WIFI_MAX_CONN_NUM]; /**< station list */
1515
int num; /**< number of stations in the list (other entries are invalid) */
16-
} wifi_sta_list_t;
16+
} wifi_sta_list_t;
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
#pragma once
7+
#include "esp_wifi.h"
8+
9+
typedef esp_err_t (*esp_remote_channel_rx_fn_t)(void *h, void *buffer, void *buff_to_free, size_t len);
10+
typedef esp_err_t (*esp_remote_channel_tx_fn_t)(void *h, void *buffer, size_t len);
11+
12+
typedef struct esp_remote_channel *esp_remote_channel_t;
13+
typedef struct esp_remote_channel_config *esp_remote_channel_config_t;
14+
15+
// Public API
16+
esp_err_t remote_esp_wifi_connect(void);
17+
esp_err_t remote_esp_wifi_disconnect(void);
18+
esp_err_t remote_esp_wifi_init(const wifi_init_config_t *config);
19+
esp_err_t remote_esp_wifi_deinit(void);
20+
esp_err_t remote_esp_wifi_set_mode(wifi_mode_t mode);
21+
esp_err_t remote_esp_wifi_get_mode(wifi_mode_t *mode);
22+
esp_err_t remote_esp_wifi_set_config(wifi_interface_t ifx, wifi_config_t *conf);
23+
esp_err_t remote_esp_wifi_get_config(wifi_interface_t interface, wifi_config_t *conf);
24+
esp_err_t remote_esp_wifi_start(void);
25+
esp_err_t remote_esp_wifi_stop(void);
26+
esp_err_t remote_esp_wifi_get_mac(wifi_interface_t ifx, uint8_t mac[6]);
27+
esp_err_t remote_esp_wifi_set_mac(wifi_interface_t ifx, const uint8_t mac[6]);
28+
esp_err_t remote_esp_wifi_scan_start(const wifi_scan_config_t *config, bool block);
29+
esp_err_t remote_esp_wifi_scan_stop(void);
30+
esp_err_t remote_esp_wifi_scan_get_ap_num(uint16_t *number);
31+
esp_err_t remote_esp_wifi_scan_get_ap_records(uint16_t *number, wifi_ap_record_t *ap_records);
32+
esp_err_t remote_esp_wifi_clear_ap_list(void);
33+
esp_err_t remote_esp_wifi_restore(void);
34+
esp_err_t remote_esp_wifi_clear_fast_connect(void);
35+
esp_err_t remote_esp_wifi_deauth_sta(uint16_t aid);
36+
esp_err_t remote_esp_wifi_sta_get_ap_info(wifi_ap_record_t *ap_info);
37+
esp_err_t remote_esp_wifi_set_ps(wifi_ps_type_t type);
38+
esp_err_t remote_esp_wifi_get_ps(wifi_ps_type_t *type);
39+
esp_err_t remote_esp_wifi_set_storage(wifi_storage_t storage);
40+
esp_err_t remote_esp_wifi_set_bandwidth(wifi_interface_t ifx, wifi_bandwidth_t bw);
41+
esp_err_t remote_esp_wifi_get_bandwidth(wifi_interface_t ifx, wifi_bandwidth_t *bw);
42+
esp_err_t remote_esp_wifi_set_channel(uint8_t primary, wifi_second_chan_t second);
43+
esp_err_t remote_esp_wifi_get_channel(uint8_t *primary, wifi_second_chan_t *second);
44+
esp_err_t remote_esp_wifi_set_country_code(const char *country, bool ieee80211d_enabled);
45+
esp_err_t remote_esp_wifi_get_country_code(char *country);
46+
esp_err_t remote_esp_wifi_set_country(const wifi_country_t *country);
47+
esp_err_t remote_esp_wifi_get_country(wifi_country_t *country);
48+
esp_err_t remote_esp_wifi_ap_get_sta_list(wifi_sta_list_t *sta);
49+
esp_err_t remote_esp_wifi_ap_get_sta_aid(const uint8_t mac[6], uint16_t *aid);
50+
esp_err_t remote_esp_wifi_sta_get_rssi(int *rssi);
51+
esp_err_t remote_esp_wifi_set_protocol(wifi_interface_t ifx, uint8_t protocol_bitmap);
52+
esp_err_t remote_esp_wifi_get_protocol(wifi_interface_t ifx, uint8_t *protocol_bitmap);
53+
54+
55+
// TODO: Move this to private include
56+
// Private API
57+
esp_err_t remote_esp_wifi_init_slave(void);
58+
59+
// handling channels
60+
esp_err_t esp_wifi_remote_channel_rx(void *h, void *buffer, void *buff_to_free, size_t len);
61+
esp_err_t esp_wifi_remote_channel_set(wifi_interface_t ifx, void *h, esp_remote_channel_tx_fn_t tx_cb);
62+
esp_err_t esp_wifi_remote_rpc_channel_rx(void *h, void *buffer, size_t len);
63+
esp_err_t esp_wifi_remote_rpc_channel_set(void *h, esp_remote_channel_tx_fn_t tx_cb);
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include "esp_err.h"
8+
#include "esp_log.h"
9+
#include "esp_hosted_api.h"
10+
#include "esp_wifi_remote.h"
11+
const char *TAG = "esp_remote_wifi_init";
12+
13+
esp_err_t remote_esp_wifi_init_slave(void)
14+
{
15+
ESP_LOGI(TAG, "** %s **", __func__);
16+
#if 0
17+
if (esp_hosted_setup() != ESP_OK) {
18+
return ESP_FAIL;
19+
}
20+
#endif
21+
esp_remote_channel_tx_fn_t tx_cb;
22+
esp_remote_channel_t ch;
23+
24+
// Add an RPC channel with default config (i.e. secure=true)
25+
struct esp_remote_channel_config config = ESP_HOSTED_CHANNEL_CONFIG_DEFAULT();
26+
config.if_type = ESP_SERIAL_IF;
27+
//TODO: add rpc channel from here
28+
//ch = esp_hosted_add_channel(&config, &tx_cb, esp_wifi_remote_rpc_channel_rx);
29+
// esp_wifi_remote_rpc_channel_set(ch, tx_cb);
30+
31+
// Add two other channels for the two WiFi interfaces (STA, softAP) in plain text
32+
config.secure = false;
33+
config.if_type = ESP_STA_IF;
34+
ch = esp_hosted_add_channel(&config, &tx_cb, esp_wifi_remote_channel_rx);
35+
esp_wifi_remote_channel_set(WIFI_IF_STA, ch, tx_cb);
36+
37+
38+
config.secure = false;
39+
config.if_type = ESP_AP_IF;
40+
ch = esp_hosted_add_channel(&config, &tx_cb, esp_wifi_remote_channel_rx);
41+
esp_wifi_remote_channel_set(WIFI_IF_AP, ch, tx_cb);
42+
43+
return ESP_OK;
44+
}

0 commit comments

Comments
 (0)