Skip to content

Commit 618382d

Browse files
committed
Ported some Sonarlint fixed from the Nacelle controller
1 parent afb8d45 commit 618382d

4 files changed

Lines changed: 75 additions & 53 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
.vscode/launch.json
55
.vscode/ipch
66
/docs/doxygen-out
7+
compile_commands.json

.vscode/extensions.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
// See http://go.microsoft.com/fwlink/?LinkId=827846
33
// for the documentation about the extensions.json format
44
"recommendations": [
5-
"platformio.platformio-ide"
5+
"platformio.platformio-ide",
6+
"sonarsource.sonarlint-vscode"
67
],
78
"unwantedRecommendations": [
89
"ms-vscode.cpptools-extension-pack"

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"sonarlint.pathToCompileCommands": "${workspaceFolder}\\compile_commands.json"
3+
}

src/main.cpp

Lines changed: 69 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,31 @@
1919
#include <temperature_sensor.h>
2020

2121
/* Config */
22-
static constexpr char *TAG = "LoMa";
22+
static constexpr const char *TAG = "LoMa";
2323

2424
// MARK: Function Prototypes
2525
// Main Tasks
26-
void vTaskUpdateFSM(void *pvParameters);
27-
void vTaskPollSensors(void *pvParameters);
28-
void vTaskAdjustLoad(void *pvParameters);
29-
void vTaskRecvData(void *pvParameters);
30-
31-
void vTaskSendData(void *pvParameters);
32-
void vTaskConfigure(void *pvParameters);
33-
void vTaskStatusLED(void *pvParameters);
34-
void vTaskLogData(void *pvParameters);
26+
void
27+
vTaskUpdateFSM([[maybe_unused]] void *pvParameters);
28+
void
29+
vTaskPollSensors([[maybe_unused]] void *pvParameters);
30+
void
31+
vTaskAdjustLoad([[maybe_unused]] void *pvParameters);
32+
void
33+
vTaskRecvData([[maybe_unused]] void *pvParameters);
34+
35+
[[noreturn]] void
36+
vTaskSendData([[maybe_unused]] void *pvParameters);
37+
[[noreturn]] void
38+
vTaskConfigure([[maybe_unused]] void *pvParameters);
39+
[[noreturn]] void
40+
vTaskStatusLED([[maybe_unused]] void *pvParameters);
41+
[[noreturn]] void
42+
vTaskLogData([[maybe_unused]] void *pvParameters);
3543

3644
// Optional Tasks
37-
void vTaskTelnet(void *pvParameters);
38-
void vTaskOTA(void *pvParameters);
45+
[[noreturn]] void vTaskTelnet([[maybe_unused]] void *pvParameters);
46+
[[noreturn]] void vTaskOTA([[maybe_unused]] void *pvParameters);
3947

4048
// Helper Functions
4149
bool configureLoad();
@@ -119,6 +127,21 @@ bool configureLoad() {
119127
return true;
120128
}
121129

130+
// todo: INA260 addresses: INA260: 0x40, 0x41, 0x44, 0x45
131+
132+
/**
133+
* @brief Helper - Checks canShow() and then shows them.
134+
* @return Whether the LEDs were updated
135+
*/
136+
inline bool showLEDsIfReady() {
137+
if (leds.canShow()) {
138+
leds.show();
139+
return true;
140+
} else {
141+
return false;
142+
}
143+
}
144+
122145
/**
123146
* MARK: Setup
124147
* put your setup code here, to run once:
@@ -146,22 +169,16 @@ void setup() {
146169
// No need to save power here
147170
leds.setPixelColor(0, 0xFF, 0xA5, 0x00); // orange
148171
}
149-
if (leds.canShow()) {
150-
leds.show();
151-
}
172+
(void)showLEDsIfReady();
152173

153174
// Configure WiFi
154175
static bool wifiInitialized = false;
155176
if (!wifiInitialized) {
156177
leds.setPixelColor(0, 0x00, 0x00, 0xFF); // blue
157-
if (leds.canShow()) {
158-
leds.show();
159-
}
178+
(void)showLEDsIfReady();
160179
uint8_t optimalChannel = adapterWLAN.identifyOptimalChannel();
161180
leds.setPixelColor(0, 0xFF, 0xA5, 0x00); // orange
162-
if (leds.canShow()) {
163-
leds.show();
164-
}
181+
(void)showLEDsIfReady();
165182
ESP_LOGI(TAG, "Optimal WiFi Channel: %d", optimalChannel);
166183
if (adapterWLAN.begin(optimalChannel)) {
167184
ESP_LOGI(TAG, "WiFi initialized");
@@ -171,9 +188,7 @@ void setup() {
171188
}
172189
}
173190
leds.setPixelColor(0, 0x00, 0xFF, 0x00); // green
174-
if (leds.canShow()) {
175-
leds.show();
176-
}
191+
(void)showLEDsIfReady();
177192

178193
// Configure ESP-NOW
179194
static bool espNowInitalized = false;
@@ -186,9 +201,7 @@ void setup() {
186201
}
187202
}
188203
leds.setPixelColor(0, 0xFF, 0xA5, 0x00); // orange
189-
if (leds.canShow()) {
190-
leds.show();
191-
}
204+
(void)showLEDsIfReady();
192205

193206
// Configure ESP-NOW Peers
194207
static bool peerRegistered = false;
@@ -201,9 +214,7 @@ void setup() {
201214
}
202215
}
203216
leds.setPixelColor(0, 0x00, 0xFF, 0x00); // green
204-
if (leds.canShow()) {
205-
leds.show();
206-
}
217+
(void)showLEDsIfReady();
207218

208219
// Sync Time // FIXME! - Load accesses fault
209220
static bool timeSynced = false;
@@ -216,27 +227,21 @@ void setup() {
216227
}
217228
}
218229
leds.setPixelColor(0, 0x00, 0xFF, 0x00); // green
219-
if (leds.canShow()) {
220-
leds.show();
221-
}
230+
(void)showLEDsIfReady();
222231

223232
// Print MAC Address // todo - verify
224233
ESP_LOGI(
225234
TAG, "MAC Address: %s",
226235
AdapterWLAN::formatMACAddress(adapterWLAN.getMACAddress()).c_str());
227236
leds.setPixelColor(0, 0xFF, 0xA5, 0x00); // orange
228-
if (leds.canShow()) {
229-
leds.show();
230-
}
237+
(void)showLEDsIfReady();
231238

232239
// TODO: Check ESP-NOW impl against last years
233240
// TODO: Configure response handler, load server
234241

235242
loadConfigured = configureLoad();
236243
leds.setPixelColor(0, 0x00, 0xFF, 0x00); // green
237-
if (leds.canShow()) {
238-
leds.show();
239-
}
244+
(void)showLEDsIfReady();
240245

241246
// Set up tasks
242247
static bool tasksSetup = false;
@@ -280,15 +285,17 @@ void setup() {
280285
/**
281286
* @brief Task to control run the FSM
282287
*/
283-
void vTaskUpdateFSM(void *pvParameters) {
288+
[[noreturn]] void
289+
vTaskUpdateFSM([[maybe_unused]] void *pvParameters) {
284290
while (true) {
285291
}
286292
}
287293

288294
/**
289295
* @brief Task to poll high priority sensors
290296
*/
291-
void vTaskPollSensors(void *pvParameters) {
297+
[[noreturn]] void
298+
vTaskPollSensors([[maybe_unused]] void *pvParameters) {
292299
while (true) {
293300
delay(RUN::TASK_INTERVALS::TI_POLL_SENSORS_mS);
294301
}
@@ -297,7 +304,8 @@ void vTaskPollSensors(void *pvParameters) {
297304
/**
298305
* @brief Task to control the pitch actuator
299306
*/
300-
void vTaskAdjustLoad(void *pvParameters) {
307+
[[noreturn]] void
308+
vTaskAdjustLoad([[maybe_unused]] void *pvParameters) {
301309
while (true) {
302310
static int i = 0;
303311
// ESP_LOGI(TAG, "Pitch PID Output: %f",
@@ -311,7 +319,8 @@ void vTaskAdjustLoad(void *pvParameters) {
311319
/**
312320
* @brief Task to control run the variable load
313321
*/
314-
// void vTaskVarLoad(void *pvParameters) {
322+
// [[noreturn]] void vTaskVarLoad([[maybe_unused]] void
323+
// *pvParameters) {
315324
// while (true) {
316325
// }
317326
// }
@@ -321,7 +330,8 @@ void vTaskAdjustLoad(void *pvParameters) {
321330
/**
322331
* @brief Task to handle inbound data that has been queued
323332
*/
324-
void vTaskRecvData(void *pvParameters) {
333+
[[noreturn]] void
334+
vTaskRecvData([[maybe_unused]] void *pvParameters) {
325335
while (true) {
326336
if (false) {
327337
delay(RUN::TASK_INTERVALS::TI_RECV_ms);
@@ -335,23 +345,26 @@ void vTaskRecvData(void *pvParameters) {
335345
/**
336346
* @brief Task to handle inbound data that has been queued
337347
*/
338-
// void vTaskHandleInboundData(void *pvParameters) {
348+
// [[noreturn]] void vTaskHandleInboundData([[maybe_unused]] void
349+
// *pvParameters) {
339350
// while (true) {
340351
// }
341352
// }
342353

343354
/**
344355
* @brief Task to handle outbound data that has been queued
345356
*/
346-
// void vTaskHandleOutboundData(void *pvParameters) {
357+
// [[noreturn]] void vTaskHandleOutboundData([[maybe_unused]] void
358+
// *pvParameters) {
347359
// while (true) {
348360
// }
349361
// }
350362

351363
/**
352364
* @brief Task to handle outbound data that has been queued
353365
*/
354-
void vTaskSendData(void *pvParameters) {
366+
[[noreturn]] void
367+
vTaskSendData([[maybe_unused]] void *pvParameters) {
355368
while (true) {
356369
if (false) {
357370
delay(RUN::TASK_INTERVALS::TI_SEND_ms);
@@ -364,7 +377,8 @@ void vTaskSendData(void *pvParameters) {
364377

365378
// MARK: Utility Tasks
366379

367-
void vTaskConfigure(void *pvParameters) {
380+
[[noreturn]] void
381+
vTaskConfigure([[maybe_unused]] void *pvParameters) {
368382
while (true) {
369383
if (!loadConfigured) {
370384
if (loadDevice.begin()) {
@@ -386,7 +400,8 @@ void vTaskConfigure(void *pvParameters) {
386400
/**
387401
* @brief Task to handle Telnet connections
388402
*/
389-
void vTaskTelnet(void *pvParameters) {
403+
[[noreturn]] void
404+
vTaskTelnet([[maybe_unused]] void *pvParameters) {
390405
while (true) {
391406
// TELNET::loop(); // todo
392407
delay(RUN::TASK_INTERVALS::TI_TELNET_ms);
@@ -397,15 +412,16 @@ void vTaskTelnet(void *pvParameters) {
397412
* @brief Task to handle ElegantOTA connections
398413
* @deprecated Just use a USB cable if possible
399414
*/
400-
void vTaskOTA(void *pvParameters) {
415+
[[noreturn]] void vTaskOTA([[maybe_unused]] void *pvParameters) {
401416
while (true) {
402417
delay(RUN::TASK_INTERVALS::TI_OTA_ms);
403418
}
404419
}
405420

406421
// MARK: Status Tasks
407422

408-
void vTaskStatusLED(void *pvParameters) {
423+
[[noreturn]] void
424+
vTaskStatusLED([[maybe_unused]] void *pvParameters) {
409425
while (true) {
410426
ESP_LOGV(TAG, "vTSL");
411427
leds.setPixelColor(0, 0x00, 0xFF, 0x00); // Green
@@ -444,7 +460,8 @@ constexpr uint32_t LOG_ITEM_INTERVAL_MS =
444460
/**
445461
* @brief Task to log data
446462
*/
447-
void vTaskLogData(void *pvParameters) {
463+
[[noreturn]] void
464+
vTaskLogData([[maybe_unused]] void *pvParameters) {
448465
/**
449466
* @See
450467
* https://docs.espressif.com/projects/esp-idf/en/v5.5.2/esp32c5/api-reference/peripherals/temp_sensor.html

0 commit comments

Comments
 (0)