aboutsummaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorFilip Wandzio <contact@philw.dev>2025-09-05 03:30:24 +0200
committerFilip Wandzio <contact@philw.dev>2025-09-05 03:30:24 +0200
commit01713bbe20d2cf5aafbe5eb32721d3e4fc5823d8 (patch)
tree33748d0019e3939bd0daf50940407e51d4325a8f /firmware
parent1ba21da6cbc63c0c549fb92731e25bedc482eb51 (diff)
downloade1-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')
-rw-r--r--firmware/.clang-format6
-rw-r--r--firmware/.gitignore20
-rw-r--r--firmware/README1
-rw-r--r--firmware/src/mqtt.c93
-rw-r--r--firmware/src/wifi.c35
5 files changed, 67 insertions, 88 deletions
diff --git a/firmware/.clang-format b/firmware/.clang-format
deleted file mode 100644
index b838e4d..0000000
--- a/firmware/.clang-format
+++ /dev/null
@@ -1,6 +0,0 @@
1BasedOnStyle: LLVM
2IndentWidth: 8
3UseTab: ForIndentation
4BreakBeforeBraces: Linux
5AllowShortIfStatementsOnASingleLine: false
6ColumnLimit: 80
diff --git a/firmware/.gitignore b/firmware/.gitignore
deleted file mode 100644
index 7a5e174..0000000
--- a/firmware/.gitignore
+++ /dev/null
@@ -1,20 +0,0 @@
1.env
2.pio/
3.vscode/
4*.elf
5*.bin
6*.hex
7*.map
8*.pyc
9__pycache__/
10*.DS_Store
11*~
12*.swp
13*.swo
14*.swn
15*.o
16*.d
17*.a
18*.so
19*.log
20.test/
diff --git a/firmware/README b/firmware/README
new file mode 100644
index 0000000..90c75fe
--- /dev/null
+++ b/firmware/README
@@ -0,0 +1 @@
ESP 32 Free-Rtos based firmware
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 @@
27static esp_mqtt_client_handle_t client; 27static esp_mqtt_client_handle_t client;
28 28
29static void mqtt_event_handler(void *handler_args, esp_event_base_t base, 29static 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
64static void publisher_task(void *pvParameters) { 65static 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
74void mqtt_app_start(void) { 76void 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 */
27void wifi_init_sta(void) { 27void 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}