This commit is contained in:
Your Name
2025-03-31 15:52:57 +02:00
parent 1caf48b5a4
commit 6762196480
2 changed files with 84 additions and 69 deletions

Binary file not shown.

View File

@@ -262,32 +262,36 @@ void update_screen_values(Canvas *canvas, SensorData& prevData, float pm10, floa
prevData.pm10_str = str_pm10; prevData.pm10_str = str_pm10;
} }
// Determine PM10 status // Determine PM10 status (axe x pour centrer le texte = 32 - (nb_lettre*7/2))
std::string pm10_status; std::string pm10_status;
rgb_matrix::Color pm10_color;
if (pm10 < 15) {
pm10_status = "BON";
pm10_color = myGREEN;
} else if (pm10 >= 15 && pm10 < 30) {
pm10_status = "MOYEN";
pm10_color = myYELLOW;
} else if (pm10 >= 30 && pm10 < 75) {
pm10_status = "DEGRADE";
pm10_color = myORANGE;
} else {
pm10_status = "MAUVAIS";
pm10_color = myRED;
}
// Update PM10 status if changed
std::cout << " Updating PM10 status to " << pm10_status << std::endl; std::cout << " Updating PM10 status to " << pm10_status << std::endl;
// on clear l'espace texte BON, MOYEN // on clear l'espace texte BON, MOYEN
for (int i = 0; i < 60; i++) { for (int i = 0; i < 60; i++) {
for (int j = y2 + 4; j < y3 + 1; j++) { for (int j = y2 + 4; j < y3 + 1; j++) {
canvas->SetPixel(x + i, j, 0, 0, 0); canvas->SetPixel(x + i, j, 0, 0, 0);
} }
} }
rgb_matrix::Color pm10_color;
if (pm10 < 15) {
pm10_status = "BON";
pm10_color = myGREEN;
x = 20;
} else if (pm10 >= 15 && pm10 < 30) {
pm10_status = "MOYEN";
pm10_color = myYELLOW;
x = 15;
} else if (pm10 >= 30 && pm10 < 75) {
pm10_status = "DEGRADE";
pm10_color = myORANGE;
x=8;
} else {
pm10_status = "MAUVAIS";
pm10_color = myRED;
x=8;
}
// Draw new status // Draw new status
rgb_matrix::DrawText(canvas, font1, x, y3, pm10_color, &bg_color, pm10_status.c_str(), letter_spacing); rgb_matrix::DrawText(canvas, font1, x, y3, pm10_color, &bg_color, pm10_status.c_str(), letter_spacing);
@@ -320,23 +324,6 @@ void update_screen_values(Canvas *canvas, SensorData& prevData, float pm10, floa
// Determine PM2.5 status // Determine PM2.5 status
std::string pm25_status; std::string pm25_status;
rgb_matrix::Color pm25_color;
if (pm25 < 10) {
pm25_status = "BON";
pm25_color = myGREEN;
} else if (pm25 >= 10 && pm25 < 20) {
pm25_status = "MOYEN";
pm25_color = myYELLOW;
} else if (pm25 >= 20 && pm25 < 50) {
pm25_status = "DEGRADE";
pm25_color = myORANGE;
} else {
pm25_status = "MAUVAIS";
pm25_color = myRED;
}
// Update PM2.5 status
std::cout << " Updating PM2.5 status to " << pm25_status << std::endl; std::cout << " Updating PM2.5 status to " << pm25_status << std::endl;
// Clear previous status area // Clear previous status area
for (int i = 0; i < 60; i++) { for (int i = 0; i < 60; i++) {
@@ -344,6 +331,26 @@ void update_screen_values(Canvas *canvas, SensorData& prevData, float pm10, floa
canvas->SetPixel(x + i, j, 0, 0, 0); canvas->SetPixel(x + i, j, 0, 0, 0);
} }
} }
rgb_matrix::Color pm25_color;
if (pm25 < 10) {
pm25_status = "BON";
pm25_color = myGREEN;
x += 20;
} else if (pm25 >= 10 && pm25 < 20) {
pm25_status = "MOYEN";
pm25_color = myYELLOW;
x += 20;
} else if (pm25 >= 20 && pm25 < 50) {
pm25_status = "DEGRADE";
pm25_color = myORANGE;
x += 8;
} else {
pm25_status = "MAUVAIS";
pm25_color = myRED;
x += 8;
}
// Draw new status // Draw new status
rgb_matrix::DrawText(canvas, font1, x, y3, pm25_color, &bg_color, pm25_status.c_str(), letter_spacing); rgb_matrix::DrawText(canvas, font1, x, y3, pm25_color, &bg_color, pm25_status.c_str(), letter_spacing);
@@ -378,29 +385,32 @@ void update_screen_values(Canvas *canvas, SensorData& prevData, float pm10, floa
// Determine PM1 status // Determine PM1 status
std::string pm1_status; std::string pm1_status;
std::cout << " Updating PM1 status to " << pm1_status << std::endl;
// Clear previous status area
for (int i = 0; i < 60; i++) {
for (int j = y2 + 3; j < y3 + 1; j++) {
canvas->SetPixel(x + i, j, 0, 0, 0);
}
}
rgb_matrix::Color pm1_color; rgb_matrix::Color pm1_color;
if (pm1 < 10) { if (pm1 < 10) {
pm1_status = "BON"; pm1_status = "BON";
pm1_color = myGREEN; pm1_color = myGREEN;
x = 20;
} else if (pm1 >= 10 && pm1 < 20) { } else if (pm1 >= 10 && pm1 < 20) {
pm1_status = "MOYEN"; pm1_status = "MOYEN";
pm1_color = myYELLOW; pm1_color = myYELLOW;
x = 15;
} else if (pm1 >= 20 && pm1 < 50) { } else if (pm1 >= 20 && pm1 < 50) {
pm1_status = "DEGRADE"; pm1_status = "DEGRADE";
pm1_color = myORANGE; pm1_color = myORANGE;
x = 8;
} else { } else {
pm1_status = "MAUVAIS"; pm1_status = "MAUVAIS";
pm1_color = myRED; pm1_color = myRED;
} x = 8;
// Update
std::cout << " Updating PM1 status to " << pm1_status << std::endl;
// Clear previous status area
for (int i = 0; i < 60; i++) {
for (int j = y2 + 3; j < y3 + 1; j++) {
canvas->SetPixel(x + i, j, 255, 0, 0);
}
} }
// Draw new status // Draw new status
rgb_matrix::DrawText(canvas, font1, x, y3, pm1_color, &bg_color, pm1_status.c_str(), letter_spacing); rgb_matrix::DrawText(canvas, font1, x, y3, pm1_color, &bg_color, pm1_status.c_str(), letter_spacing);
@@ -432,31 +442,36 @@ void update_screen_values(Canvas *canvas, SensorData& prevData, float pm10, floa
// Determine CO2 status // Determine CO2 status
std::string co2_status; std::string co2_status;
rgb_matrix::Color co2_color;
if (co2 < 800) {
co2_status = "BON";
co2_color = myGREEN;
} else if (co2 >= 800 && co2 < 1500) {
co2_status = "AERER SVP";
co2_color = myORANGE;
} else {
co2_status = "AERER VITE";
co2_color = myRED;
}
// Update CO2 status
std::cout << " Updating CO2 status to " << co2_status << std::endl; std::cout << " Updating CO2 status to " << co2_status << std::endl;
// Clear previous status area // Clear previous status area
for (int i = 0; i < 60; i++) { for (int i = 0; i < 60; i++) {
for (int j = y2 + 4; j < y3 + 1; j++) { for (int j = y2 + 4; j < y3 + 1; j++) {
canvas->SetPixel(x + i, j, 0, 0, 0); canvas->SetPixel(x + i, j, 0, 0, 0);
} }
} }
// Update CO2 status
rgb_matrix::Color co2_color;
if (co2 < 800) {
co2_status = "BON";
co2_color = myGREEN;
x += 20;
} else if (co2 >= 800 && co2 < 1500) {
co2_status = "AERER SVP";
co2_color = myORANGE;
x += 5;
} else {
co2_status = "AERER VITE";
co2_color = myRED;
x += 0;
}
// Draw new status // Draw new status
rgb_matrix::DrawText(canvas, font1, x, y3, co2_color, &bg_color, co2_status.c_str(), letter_spacing); rgb_matrix::DrawText(canvas, font1, x, y3, co2_color, &bg_color, co2_status.c_str(), letter_spacing);
} }