|
39 | 39 | // #define ENABLE_TRACE |
40 | 40 | #include <trace.h> |
41 | 41 |
|
| 42 | +#include <inttypes.h> |
| 43 | + |
42 | 44 | #define TAG "atomvm_mqtt" |
43 | 45 |
|
44 | 46 | // static const char *const cert_atom = ATOM_STR("\x4", "cert"); |
@@ -435,7 +437,11 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ |
435 | 437 | TRACE(TAG ": mqtt_event_handler\n"); |
436 | 438 | esp_mqtt_event_handle_t event = event_data; |
437 | 439 |
|
| 440 | +#if ESP_IDF_VERSION_MAJOR >= 5 |
| 441 | + Context *ctx = (Context *) handler_args; |
| 442 | +#else |
438 | 443 | Context *ctx = (Context *) event->user_context; |
| 444 | +#endif |
439 | 445 | GlobalContext *global = ctx->global; |
440 | 446 |
|
441 | 447 | struct platform_data *plfdat = (struct platform_data *) ctx->platform_data; |
@@ -529,8 +535,8 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ |
529 | 535 | TRACE(TAG ": TOPIC=%.*s\n", event->topic_len, event->topic); |
530 | 536 | TRACE(TAG ": DATA=%.*s\n", event->data_len, event->data); |
531 | 537 |
|
532 | | - int topic_size = term_binary_data_size_in_terms(event->topic_len) + BINARY_HEADER_SIZE; |
533 | | - int data_size = term_binary_data_size_in_terms(event->data_len) + BINARY_HEADER_SIZE; |
| 538 | + int topic_size = term_binary_heap_size(event->topic_len); |
| 539 | + int data_size = term_binary_heap_size(event->data_len); |
534 | 540 |
|
535 | 541 | size_t requested_size = TUPLE_SIZE(4) + topic_size + data_size; |
536 | 542 | Heap heap; |
@@ -585,12 +591,12 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ |
585 | 591 | } |
586 | 592 |
|
587 | 593 | case MQTT_EVENT_BEFORE_CONNECT: { |
588 | | - ESP_LOGI(TAG, "MQTT_EVENT_BEFORE_CONNECT event_id: %d", event_id); |
| 594 | + ESP_LOGI(TAG, "MQTT_EVENT_BEFORE_CONNECT event_id: %" PRIu32, event_id); |
589 | 595 | break; |
590 | 596 | } |
591 | 597 |
|
592 | 598 | default: |
593 | | - ESP_LOGW(TAG, "Other event. event_id: %d", event_id); |
| 599 | + ESP_LOGW(TAG, "Other event. event_id: %" PRIu32, event_id); |
594 | 600 | break; |
595 | 601 | } |
596 | 602 |
|
@@ -778,9 +784,14 @@ Context *atomvm_mqtt_client_create_port(GlobalContext *global, term opts) |
778 | 784 | // Note that char * values passed into this struct are copied into the MQTT state |
779 | 785 | const char *client_id = get_default_client_id(); |
780 | 786 | esp_mqtt_client_config_t mqtt_cfg = { |
| 787 | +#if ESP_IDF_VERSION_MAJOR >= 5 |
| 788 | + .broker.address.uri = url_str, |
| 789 | + .credentials.client_id = client_id |
| 790 | +#else |
781 | 791 | .uri = url_str, |
782 | 792 | .client_id = client_id, |
783 | 793 | .user_context = (void *) ctx |
| 794 | +#endif |
784 | 795 | }; |
785 | 796 | esp_mqtt_client_handle_t client = esp_mqtt_client_init(&mqtt_cfg); |
786 | 797 |
|
|
0 commit comments