Ajustement

This commit is contained in:
2025-12-10 10:28:21 +01:00
parent 6e9b0630bc
commit 1b5bac2a73
2 changed files with 1701 additions and 11 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -33,7 +33,7 @@ using json = nlohmann::json;
// Constantes de fonctionnement
#define LEVEL_MIN 2
#define FLOW_PER_PUMP 150
#define FLOW_PER_PUMP 75
/* Configuration MQTT */
const std::string ADDRESS = "tcp://rabbitmq:1883";
@@ -48,7 +48,7 @@ unsigned short pompe1, pompe2, pompe3, pompe4; // bouton des pompes 0 (arrêt) /
unsigned short pompe1_old, pompe2_old, pompe3_old, pompe4_old;
unsigned short sensor_max, sensor_high, sensor_low, sensor_min;
float TankInitalValue = 7;
float TankInitalValue = 5;
// Réception des messages MQTT
// ************************************************************
@@ -57,6 +57,7 @@ public:
void message_arrived(mqtt::const_message_ptr msg) override {
std::string payload = msg->to_string();
/*
if (payload == "p1") {
pompe1 = !pompe1;
} else if (payload == "p2") {
@@ -66,6 +67,24 @@ public:
} else if (payload == "p4") {
pompe4 = !pompe4;
}
*/
try {
json j = json::parse(payload);
// Ne rien faire si l'objet JSON est vide
if (j.empty()) return;
if (j.contains("p1")) pompe1 = j["p1"].get<int>() != 0;
if (j.contains("p2")) pompe2 = j["p2"].get<int>() != 0;
if (j.contains("p3")) pompe3 = j["p3"].get<int>() != 0;
if (j.contains("p4")) pompe4 = j["p4"].get<int>() != 0;
std::cout << "Pompes : " << pompe1 << " " << pompe2 << " " << pompe3 << " " << pompe4 << std::endl;
}
catch (const json::parse_error& e) {
std::cerr << "Erreur JSON : " << e.what() << "\n";
}
}
};
// ************************************************************
@@ -196,8 +215,8 @@ void ProcessInitValues()
_digital[OUT_FLOW_OUT_AMPLITUDE].dvalue = 100.0;
_digital[OUT_LEVEL_MIN].dvalue = LEVEL_MIN;
_digital[OUT_LEVEL_LOW].dvalue = 6;
_digital[OUT_LEVEL_HIGH].dvalue = 7;
_digital[OUT_LEVEL_LOW].dvalue = 4.3;
_digital[OUT_LEVEL_HIGH].dvalue = 6.1;
_digital[OUT_LEVEL_MAX].dvalue = 9.5;
_digital[IN_FLOW_OUT].dvalue = 100.0;
@@ -249,9 +268,9 @@ double ProcessMoteur(int i)
void ProcessException()
{
if (t_elapsed > 30) {
_digital[OUT_PUMP_1].mode = 0;
//_digital[OUT_PUMP_1].mode = 0;
} else if (t_elapsed > 15) {
_digital[IN_SENSOR_LOW].mode = 0;
//_digital[IN_SENSOR_LOW].mode = 0;
}
}
@@ -265,8 +284,8 @@ void Process()
// ***** FLOW OUT
if (_digital[IN_TANK_LEVEL].dvalue > 1.0)
{
//_digital[IN_FLOW_OUT].dvalue = SimulConsoSinusoidale(t);
_digital[IN_FLOW_OUT].dvalue = SimulConsoBrown(_digital[IN_FLOW_OUT].dvalue);
_digital[IN_FLOW_OUT].dvalue = SimulConsoSinusoidale(t);
//_digital[IN_FLOW_OUT].dvalue = SimulConsoBrown(_digital[IN_FLOW_OUT].dvalue);
}
else
{