diff options
| author | Filip Wandzio <contact@philw.dev> | 2025-09-05 03:30:24 +0200 |
|---|---|---|
| committer | Filip Wandzio <contact@philw.dev> | 2025-09-05 03:30:24 +0200 |
| commit | 01713bbe20d2cf5aafbe5eb32721d3e4fc5823d8 (patch) | |
| tree | 33748d0019e3939bd0daf50940407e51d4325a8f /firmware/src | |
| parent | 1ba21da6cbc63c0c549fb92731e25bedc482eb51 (diff) | |
| download | e1-01713bbe20d2cf5aafbe5eb32721d3e4fc5823d8.tar.gz e1-01713bbe20d2cf5aafbe5eb32721d3e4fc5823d8.zip | |
Standarize the project directory for monorepo-like developer experience
Move the clang formatter to the root of the three so all nested projects could use it
Provide README for all other projects
Refactor the code in rtt agregator
Signed-off-by: Filip Wandzio <contact@philw.dev>
Diffstat (limited to 'firmware/src')
| -rw-r--r-- | firmware/src/mqtt.c | 93 | ||||
| -rw-r--r-- | firmware/src/wifi.c | 35 |
2 files changed, 66 insertions, 62 deletions
diff --git a/firmware/src/mqtt.c b/firmware/src/mqtt.c index 716feec..90451bc 100644 --- a/firmware/src/mqtt.c +++ b/firmware/src/mqtt.c | |||
| @@ -27,59 +27,62 @@ | |||
| 27 | static esp_mqtt_client_handle_t client; | 27 | static esp_mqtt_client_handle_t client; |
| 28 | 28 | ||
| 29 | static void mqtt_event_handler(void *handler_args, esp_event_base_t base, | 29 | static void mqtt_event_handler(void *handler_args, esp_event_base_t base, |
| 30 | int32_t event_id, void *event_data) { | 30 | int32_t event_id, void *event_data) |
| 31 | esp_mqtt_event_handle_t event = event_data; | 31 | { |
| 32 | esp_mqtt_event_handle_t event = event_data; | ||
| 32 | 33 | ||
| 33 | switch (event->event_id) { | 34 | switch (event->event_id) { |
| 34 | case MQTT_EVENT_CONNECTED: | 35 | case MQTT_EVENT_CONNECTED: |
| 35 | printf("MQTT connected!\n"); | 36 | printf("MQTT connected!\n"); |
| 36 | esp_mqtt_client_subscribe(event->client, SUB_TOPIC, 1); | 37 | esp_mqtt_client_subscribe(event->client, SUB_TOPIC, 1); |
| 37 | break; | 38 | break; |
| 38 | 39 | ||
| 39 | case MQTT_EVENT_DATA: { | 40 | case MQTT_EVENT_DATA: { |
| 40 | char topic[event->topic_len + 1]; | 41 | char topic[event->topic_len + 1]; |
| 41 | char data[event->data_len + 1]; | 42 | char data[event->data_len + 1]; |
| 42 | memcpy(topic, event->topic, event->topic_len); | 43 | memcpy(topic, event->topic, event->topic_len); |
| 43 | topic[event->topic_len] = '\0'; | 44 | topic[event->topic_len] = '\0'; |
| 44 | memcpy(data, event->data, event->data_len); | 45 | memcpy(data, event->data, event->data_len); |
| 45 | data[event->data_len] = '\0'; | 46 | data[event->data_len] = '\0'; |
| 46 | 47 | ||
| 47 | printf("MQTT Msg received\nTopic: %s\nData: %s\n", topic, data); | 48 | printf("MQTT Msg received\nTopic: %s\nData: %s\n", topic, data); |
| 48 | 49 | ||
| 49 | char *endptr; | 50 | char *endptr; |
| 50 | long long sent = strtoll(data, &endptr, 10); | 51 | long long sent = strtoll(data, &endptr, 10); |
| 51 | if (endptr != data) { | 52 | if (endptr != data) { |
| 52 | long long now = esp_timer_get_time() / 1000ULL; | 53 | long long now = esp_timer_get_time() / 1000ULL; |
| 53 | long long rtt = now - sent; | 54 | long long rtt = now - sent; |
| 54 | printf("RTT: %lld ms\n", rtt); | 55 | printf("RTT: %lld ms\n", rtt); |
| 55 | } | 56 | } |
| 56 | break; | 57 | break; |
| 57 | } | 58 | } |
| 58 | 59 | ||
| 59 | default: | 60 | default: |
| 60 | break; | 61 | break; |
| 61 | } | 62 | } |
| 62 | } | 63 | } |
| 63 | 64 | ||
| 64 | static void publisher_task(void *pvParameters) { | 65 | static void publisher_task(void *pvParameters) |
| 65 | while (1) { | 66 | { |
| 66 | char buf[BUFFER_SIZE]; | 67 | while (1) { |
| 67 | snprintf(buf, BUFFER_SIZE, "%lld", | 68 | char buf[BUFFER_SIZE]; |
| 68 | (long long)(esp_timer_get_time() / 1000ULL)); | 69 | snprintf(buf, BUFFER_SIZE, "%lld", |
| 69 | esp_mqtt_client_publish(client, PUB_TOPIC, buf, 0, 1, 0); | 70 | (long long)(esp_timer_get_time() / 1000ULL)); |
| 70 | vTaskDelay(pdMS_TO_TICKS(PUBLISH_INTERVAL_MS)); | 71 | esp_mqtt_client_publish(client, PUB_TOPIC, buf, 0, 1, 0); |
| 71 | } | 72 | vTaskDelay(pdMS_TO_TICKS(PUBLISH_INTERVAL_MS)); |
| 73 | } | ||
| 72 | } | 74 | } |
| 73 | 75 | ||
| 74 | void mqtt_app_start(void) { | 76 | void mqtt_app_start(void) |
| 75 | esp_mqtt_client_config_t mqtt_cfg = { | 77 | { |
| 76 | .broker.address.uri = MQTT_URI, | 78 | esp_mqtt_client_config_t mqtt_cfg = { |
| 77 | }; | 79 | .broker.address.uri = MQTT_URI, |
| 78 | client = esp_mqtt_client_init(&mqtt_cfg); | 80 | }; |
| 79 | esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, | 81 | client = esp_mqtt_client_init(&mqtt_cfg); |
| 80 | NULL); | 82 | esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, |
| 81 | esp_mqtt_client_start(client); | 83 | mqtt_event_handler, NULL); |
| 84 | esp_mqtt_client_start(client); | ||
| 82 | 85 | ||
| 83 | xTaskCreate(publisher_task, "publisher_task", PUBLISHER_TASK_STACK_SIZE, NULL, | 86 | xTaskCreate(publisher_task, "publisher_task", PUBLISHER_TASK_STACK_SIZE, |
| 84 | PUBLISHER_TASK_PRIORITY, NULL); | 87 | NULL, PUBLISHER_TASK_PRIORITY, NULL); |
| 85 | } | 88 | } |
diff --git a/firmware/src/wifi.c b/firmware/src/wifi.c index 8d6b29d..ea76f24 100644 --- a/firmware/src/wifi.c +++ b/firmware/src/wifi.c | |||
| @@ -24,26 +24,27 @@ | |||
| 24 | * | 24 | * |
| 25 | * The SSID and password are defined in the configuration headers. | 25 | * The SSID and password are defined in the configuration headers. |
| 26 | */ | 26 | */ |
| 27 | void wifi_init_sta(void) { | 27 | void wifi_init_sta(void) |
| 28 | esp_netif_create_default_wifi_sta(); | 28 | { |
| 29 | esp_netif_create_default_wifi_sta(); | ||
| 29 | 30 | ||
| 30 | wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); | 31 | wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); |
| 31 | if (esp_wifi_init(&cfg) != ESP_OK) { | 32 | if (esp_wifi_init(&cfg) != ESP_OK) { |
| 32 | return; | 33 | return; |
| 33 | } | 34 | } |
| 34 | 35 | ||
| 35 | esp_wifi_set_mode(WIFI_MODE_STA); | 36 | esp_wifi_set_mode(WIFI_MODE_STA); |
| 36 | esp_wifi_start(); | 37 | esp_wifi_start(); |
| 37 | 38 | ||
| 38 | wifi_scan_start(); | 39 | wifi_scan_start(); |
| 39 | vTaskDelay(pdMS_TO_TICKS(WIFI_SCAN_DELAY_MS)); | 40 | vTaskDelay(pdMS_TO_TICKS(WIFI_SCAN_DELAY_MS)); |
| 40 | 41 | ||
| 41 | wifi_config_t wifi_config = {0}; | 42 | wifi_config_t wifi_config = {0}; |
| 42 | strncpy((char *)wifi_config.sta.ssid, WIFI_SSID, | 43 | strncpy((char *)wifi_config.sta.ssid, WIFI_SSID, |
| 43 | sizeof(wifi_config.sta.ssid) - 1); | 44 | sizeof(wifi_config.sta.ssid) - 1); |
| 44 | strncpy((char *)wifi_config.sta.password, WIFI_PASS, | 45 | strncpy((char *)wifi_config.sta.password, WIFI_PASS, |
| 45 | sizeof(wifi_config.sta.password) - 1); | 46 | sizeof(wifi_config.sta.password) - 1); |
| 46 | 47 | ||
| 47 | esp_wifi_set_config(WIFI_IF_STA, &wifi_config); | 48 | esp_wifi_set_config(WIFI_IF_STA, &wifi_config); |
| 48 | esp_wifi_connect(); | 49 | esp_wifi_connect(); |
| 49 | } | 50 | } |
