Skip to content

Commit 057de44

Browse files
author
thingsapart
committed
Move mcu/display driver code into esp32_lcd_controllers and use that lib
1 parent 4a5dd77 commit 057de44

78 files changed

Lines changed: 1067 additions & 22362 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,6 @@
55
path = firmware/cnc_interface/lvgl_ui
66
url = git@github.com:thingsapart/lvgl_ui.git
77
branch = jules-rewrites
8+
[submodule "firmware/cnc_interface/lib/esp32_lcd_controllers"]
9+
path = firmware/cnc_interface/lib/esp32_lcd_controllers
10+
url = https://github.com/thingsapart/esp32_lcd_controllers
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#CONFIG_ESP_WIFI_REMOTE_ENABLED is not set
2+
#CONFIG_ESP_HOSTED_ENABLED is not set
3+
#CONFIG_ESP_HOSTED_ENABLE_BT_NIMBLE is not set
Submodule esp32_lcd_controllers added at c1f1406
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
07b6ca85dc0c1edbcd76f650005c74067001db138db6bfa106bf05567adca4af
1+
f4fa6dab2496af2673a68881132bb7ce0f05bf62e30e5bd0d45b607066378a28

firmware/cnc_interface/managed_components/espressif__esp_modem/.cz.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ commitizen:
33
bump_message: 'bump(modem): $current_version -> $new_version'
44
pre_bump_hooks: python ../../ci/changelog.py esp_modem
55
tag_format: modem-v$version
6-
version: 2.0.0
6+
version: 2.0.1
77
version_files:
88
- idf_component.yml

firmware/cnc_interface/managed_components/espressif__esp_modem/CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Changelog
22

3+
## [2.0.1](https://github.com/espressif/esp-protocols/commits/modem-v2.0.1)
4+
5+
### Bug Fixes
6+
7+
- Fix inconsistent error checks in C-API wrappers ([de02d8a3](https://github.com/espressif/esp-protocols/commit/de02d8a3))
8+
- null terminate output buffers when modem sends empty response & check output buffers are not null ([6124b7ee](https://github.com/espressif/esp-protocols/commit/6124b7ee))
9+
- null terminate output buffer if no response in esp_modem_at functions ([17d82dea](https://github.com/espressif/esp-protocols/commit/17d82dea))
10+
- Fix catch based target tests with v6.0 ([7f4e3690](https://github.com/espressif/esp-protocols/commit/7f4e3690))
11+
- Fix deinit function in ap2ppp example ([853e8e28](https://github.com/espressif/esp-protocols/commit/853e8e28))
12+
313
## [2.0.0](https://github.com/espressif/esp-protocols/commits/modem-v2.0.0)
414

515
### Breaking changes

firmware/cnc_interface/managed_components/espressif__esp_modem/examples/ap_to_pppos/main/network_dce.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ extern "C" bool modem_stop_network()
198198

199199
extern "C" void modem_deinit_network()
200200
{
201-
free(dce);
201+
delete dce;
202202
dce = nullptr;
203203
}
204204

firmware/cnc_interface/managed_components/espressif__esp_modem/idf_component.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ documentation: https://docs.espressif.com/projects/esp-protocols/esp_modem/docs/
66
issues: https://github.com/espressif/esp-protocols/issues
77
repository: git://github.com/espressif/esp-protocols.git
88
repository_info:
9-
commit_sha: 245b5a2ffbc359b6f2fa724205d0998bea3c4451
9+
commit_sha: ca6e2835fe53bbe0996d8f5fcbcd539a86f4bb47
1010
path: components/esp_modem
1111
url: https://github.com/espressif/esp-protocols/tree/master/components/esp_modem
12-
version: 2.0.0
12+
version: 2.0.1

firmware/cnc_interface/managed_components/espressif__esp_modem/src/esp_modem_c_api.cpp

Lines changed: 65 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -156,7 +156,7 @@ extern "C" esp_err_t esp_modem_set_mode(esp_modem_dce_t *dce_wrap, esp_modem_dce
156156

157157
extern "C" esp_err_t esp_modem_read_pin(esp_modem_dce_t *dce_wrap, bool *pin)
158158
{
159-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
159+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || pin == nullptr) {
160160
return ESP_ERR_INVALID_ARG;
161161
}
162162

@@ -183,7 +183,7 @@ extern "C" esp_err_t esp_modem_sms_txt_mode(esp_modem_dce_t *dce_wrap, bool txt)
183183

184184
extern "C" esp_err_t esp_modem_send_sms(esp_modem_dce_t *dce_wrap, const char *number, const char *message)
185185
{
186-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
186+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || number == nullptr || message == nullptr) {
187187
return ESP_ERR_INVALID_ARG;
188188
}
189189
std::string number_str(number);
@@ -202,7 +202,7 @@ extern "C" esp_err_t esp_modem_sms_character_set(esp_modem_dce_t *dce_wrap)
202202

203203
extern "C" esp_err_t esp_modem_set_pin(esp_modem_dce_t *dce_wrap, const char *pin)
204204
{
205-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
205+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || pin == nullptr) {
206206
return ESP_ERR_INVALID_ARG;
207207
}
208208
std::string pin_str(pin);
@@ -211,47 +211,57 @@ extern "C" esp_err_t esp_modem_set_pin(esp_modem_dce_t *dce_wrap, const char *pi
211211

212212
extern "C" esp_err_t esp_modem_at(esp_modem_dce_t *dce_wrap, const char *at, char *p_out, int timeout)
213213
{
214-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
214+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || at == nullptr) {
215215
return ESP_ERR_INVALID_ARG;
216216
}
217217
std::string out;
218218
std::string at_str(at);
219219
auto ret = command_response_to_esp_err(dce_wrap->dce->at(at_str, out, timeout));
220-
if ((p_out != NULL) && (!out.empty())) {
220+
if ((p_out != NULL)) {
221221
strlcpy(p_out, out.c_str(), CONFIG_ESP_MODEM_C_API_STR_MAX);
222222
}
223223
return ret;
224224
}
225225

226226
extern "C" esp_err_t esp_modem_get_signal_quality(esp_modem_dce_t *dce_wrap, int *rssi, int *ber)
227227
{
228-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
228+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || (rssi == nullptr && ber == nullptr)) {
229229
return ESP_ERR_INVALID_ARG;
230230
}
231-
return command_response_to_esp_err(dce_wrap->dce->get_signal_quality(*rssi, *ber));
231+
int rssi_val, ber_val;
232+
auto ret = command_response_to_esp_err(dce_wrap->dce->get_signal_quality(rssi_val, ber_val));
233+
if (ret == ESP_OK) {
234+
if (rssi != nullptr) {
235+
*rssi = rssi_val;
236+
}
237+
if (ber != nullptr) {
238+
*ber = ber_val;
239+
}
240+
}
241+
return ret;
232242
}
233243

234244
extern "C" esp_err_t esp_modem_get_imsi(esp_modem_dce_t *dce_wrap, char *p_imsi)
235245
{
236-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
246+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || p_imsi == nullptr) {
237247
return ESP_ERR_INVALID_ARG;
238248
}
239249
std::string imsi;
240250
auto ret = command_response_to_esp_err(dce_wrap->dce->get_imsi(imsi));
241-
if (ret == ESP_OK && !imsi.empty()) {
251+
if (ret == ESP_OK) {
242252
strlcpy(p_imsi, imsi.c_str(), CONFIG_ESP_MODEM_C_API_STR_MAX);
243253
}
244254
return ret;
245255
}
246256

247257
extern "C" esp_err_t esp_modem_at_raw(esp_modem_dce_t *dce_wrap, const char *cmd, char *p_out, const char *pass, const char *fail, int timeout)
248258
{
249-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
259+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || cmd == nullptr || pass == nullptr || fail == nullptr) {
250260
return ESP_ERR_INVALID_ARG;
251261
}
252262
std::string out;
253263
auto ret = command_response_to_esp_err(dce_wrap->dce->at_raw(cmd, out, pass, fail, timeout));
254-
if ((p_out != NULL) && (!out.empty())) {
264+
if ((p_out != NULL)) {
255265
strlcpy(p_out, out.c_str(), CONFIG_ESP_MODEM_C_API_STR_MAX);
256266
}
257267
return ret;
@@ -276,56 +286,67 @@ extern "C" esp_err_t esp_modem_store_profile(esp_modem_dce_t *dce_wrap)
276286

277287
extern "C" esp_err_t esp_modem_get_imei(esp_modem_dce_t *dce_wrap, char *p_imei)
278288
{
279-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
289+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || p_imei == nullptr) {
280290
return ESP_ERR_INVALID_ARG;
281291
}
282292
std::string imei;
283293
auto ret = command_response_to_esp_err(dce_wrap->dce->get_imei(imei));
284-
if (ret == ESP_OK && !imei.empty()) {
294+
if (ret == ESP_OK) {
285295
strlcpy(p_imei, imei.c_str(), CONFIG_ESP_MODEM_C_API_STR_MAX);
286296
}
287297
return ret;
288298
}
289299

290300
extern "C" esp_err_t esp_modem_get_operator_name(esp_modem_dce_t *dce_wrap, char *p_name, int *p_act)
291301
{
292-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || p_name == nullptr || p_act == nullptr) {
302+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || (p_name == nullptr && p_act == nullptr)) {
293303
return ESP_ERR_INVALID_ARG;
294304
}
295305
std::string name;
296306
int act;
297307
auto ret = command_response_to_esp_err(dce_wrap->dce->get_operator_name(name, act));
298-
if (ret == ESP_OK && !name.empty()) {
299-
strlcpy(p_name, name.c_str(), CONFIG_ESP_MODEM_C_API_STR_MAX);
300-
*p_act = act;
308+
if (ret == ESP_OK) {
309+
if (p_name != nullptr) {
310+
strlcpy(p_name, name.c_str(), CONFIG_ESP_MODEM_C_API_STR_MAX);
311+
}
312+
if (p_act != nullptr) {
313+
*p_act = act;
314+
}
301315
}
302316
return ret;
303317
}
304318

305319
extern "C" esp_err_t esp_modem_get_module_name(esp_modem_dce_t *dce_wrap, char *p_name)
306320
{
307-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
321+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || p_name == nullptr) {
308322
return ESP_ERR_INVALID_ARG;
309323
}
310324
std::string name;
311325
auto ret = command_response_to_esp_err(dce_wrap->dce->get_module_name(name));
312-
if (ret == ESP_OK && !name.empty()) {
326+
if (ret == ESP_OK) {
313327
strlcpy(p_name, name.c_str(), CONFIG_ESP_MODEM_C_API_STR_MAX);
314328
}
315329
return ret;
316330
}
317331

318332
extern "C" esp_err_t esp_modem_get_battery_status(esp_modem_dce_t *dce_wrap, int *p_volt, int *p_bcs, int *p_bcl)
319333
{
320-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || p_bcs == nullptr || p_bcl == nullptr || p_volt == nullptr) {
334+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr ||
335+
(p_volt == nullptr && p_bcs == nullptr && p_bcl == nullptr)) {
321336
return ESP_ERR_INVALID_ARG;
322337
}
323-
int bcs, bcl, volt;
338+
int volt, bcs, bcl;
324339
auto ret = command_response_to_esp_err(dce_wrap->dce->get_battery_status(volt, bcs, bcl));
325340
if (ret == ESP_OK) {
326-
*p_volt = volt;
327-
*p_bcs = bcs;
328-
*p_bcl = bcl;
341+
if (p_volt != nullptr) {
342+
*p_volt = volt;
343+
}
344+
if (p_bcs != nullptr) {
345+
*p_bcs = bcs;
346+
}
347+
if (p_bcl != nullptr) {
348+
*p_bcl = bcl;
349+
}
329350
}
330351
return ret;
331352
}
@@ -340,7 +361,7 @@ extern "C" esp_err_t esp_modem_power_down(esp_modem_dce_t *dce_wrap)
340361

341362
extern "C" esp_err_t esp_modem_set_operator(esp_modem_dce_t *dce_wrap, int mode, int format, const char *oper)
342363
{
343-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
364+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || oper == nullptr) {
344365
return ESP_ERR_INVALID_ARG;
345366
}
346367
std::string operator_str(oper);
@@ -357,7 +378,7 @@ extern "C" esp_err_t esp_modem_set_network_attachment_state(esp_modem_dce_t *dce
357378

358379
extern "C" esp_err_t esp_modem_get_network_attachment_state(esp_modem_dce_t *dce_wrap, int *p_state)
359380
{
360-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
381+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || p_state == nullptr) {
361382
return ESP_ERR_INVALID_ARG;
362383
}
363384
int state;
@@ -378,7 +399,7 @@ extern "C" esp_err_t esp_modem_set_radio_state(esp_modem_dce_t *dce_wrap, int st
378399

379400
extern "C" esp_err_t esp_modem_get_radio_state(esp_modem_dce_t *dce_wrap, int *p_state)
380401
{
381-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
402+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || p_state == nullptr) {
382403
return ESP_ERR_INVALID_ARG;
383404
}
384405
int state;
@@ -407,7 +428,7 @@ extern "C" esp_err_t esp_modem_set_preferred_mode(esp_modem_dce_t *dce_wrap, int
407428

408429
extern "C" esp_err_t esp_modem_set_network_bands(esp_modem_dce_t *dce_wrap, const char *mode, const int *bands, int size)
409430
{
410-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
431+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || mode == nullptr || bands == nullptr) {
411432
return ESP_ERR_INVALID_ARG;
412433
}
413434
std::string mode_str(mode);
@@ -416,7 +437,7 @@ extern "C" esp_err_t esp_modem_set_network_bands(esp_modem_dce_t *dce_wrap, cons
416437

417438
extern "C" esp_err_t esp_modem_get_network_system_mode(esp_modem_dce_t *dce_wrap, int *p_mode)
418439
{
419-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
440+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || p_mode == nullptr) {
420441
return ESP_ERR_INVALID_ARG;
421442
}
422443
int mode;
@@ -437,7 +458,7 @@ extern "C" esp_err_t esp_modem_set_gnss_power_mode(esp_modem_dce_t *dce_wrap, in
437458

438459
extern "C" esp_err_t esp_modem_get_gnss_power_mode(esp_modem_dce_t *dce_wrap, int *p_mode)
439460
{
440-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
461+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || p_mode == nullptr) {
441462
return ESP_ERR_INVALID_ARG;
442463
}
443464
int mode;
@@ -450,7 +471,7 @@ extern "C" esp_err_t esp_modem_get_gnss_power_mode(esp_modem_dce_t *dce_wrap, in
450471

451472
extern "C" esp_err_t esp_modem_config_psm(esp_modem_dce_t *dce_wrap, int mode, const char *tau, const char *active_time)
452473
{
453-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || mode > 3) {
474+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || mode > 3 || tau == nullptr || active_time == nullptr) {
454475
return ESP_ERR_INVALID_ARG;
455476
}
456477

@@ -496,7 +517,7 @@ extern "C" esp_err_t esp_modem_config_mobile_termination_error(esp_modem_dce_t *
496517

497518
extern "C" esp_err_t esp_modem_config_edrx(esp_modem_dce_t *dce_wrap, int mode, int access_technology, const char *edrx_value)
498519
{
499-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || mode > 3 || access_technology > 5) {
520+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || mode > 3 || access_technology > 5 || edrx_value == nullptr) {
500521
return ESP_ERR_INVALID_ARG;
501522
}
502523

@@ -509,7 +530,7 @@ extern "C" esp_err_t esp_modem_config_edrx(esp_modem_dce_t *dce_wrap, int mode,
509530

510531
extern "C" esp_err_t esp_modem_sqn_gm02s_connect(esp_modem_dce_t *dce_wrap, const esp_modem_PdpContext_t *pdp_context)
511532
{
512-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
533+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || pdp_context == nullptr) {
513534
return ESP_ERR_INVALID_ARG;
514535
}
515536

@@ -521,12 +542,15 @@ extern "C" esp_err_t esp_modem_sqn_gm02s_connect(esp_modem_dce_t *dce_wrap, cons
521542

522543
extern "C" esp_err_t esp_modem_reset(esp_modem_dce_t *dce_wrap)
523544
{
545+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
546+
return ESP_ERR_INVALID_ARG;
547+
}
524548
return command_response_to_esp_err(dce_wrap->dce->reset());
525549
}
526550

527551
extern "C" esp_err_t esp_modem_set_pdp_context(esp_modem_dce_t *dce_wrap, esp_modem_PdpContext_t *c_api_pdp)
528552
{
529-
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
553+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || c_api_pdp == nullptr) {
530554
return ESP_ERR_INVALID_ARG;
531555
}
532556
esp_modem::PdpContext pdp{c_api_pdp->apn};
@@ -555,11 +579,17 @@ extern "C" esp_err_t esp_modem_command(esp_modem_dce_t *dce_wrap, const char *co
555579

556580
extern "C" esp_err_t esp_modem_set_baud(esp_modem_dce_t *dce_wrap, int baud)
557581
{
582+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
583+
return ESP_ERR_INVALID_ARG;
584+
}
558585
return command_response_to_esp_err(dce_wrap->dce->set_baud(baud));
559586
}
560587

561588
extern "C" esp_err_t esp_modem_set_apn(esp_modem_dce_t *dce_wrap, const char *apn)
562589
{
590+
if (dce_wrap == nullptr || dce_wrap->dce == nullptr || apn == nullptr) {
591+
return ESP_ERR_INVALID_ARG;
592+
}
563593
auto new_pdp = std::unique_ptr<PdpContext>(new PdpContext(apn));
564594
dce_wrap->dce->get_module()->configure_pdp_context(std::move(new_pdp));
565595
return ESP_OK;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7c0fa01a1cd0e72a87ec1928c3b661c0a3a9034a6d3a69dcf4850db8c6f272db
1+
1ebe3bd675bb9d1c58f52bc0b609b32f74e572b01c328f9e61282040c775495c

0 commit comments

Comments
 (0)