mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-07-28 04:07:47 +00:00
Giving up - Running into a loop without sensor readings
This commit is contained in:
+31
-17
@@ -28,6 +28,8 @@
|
||||
boolean Plugin_112(byte function, struct EventStruct *event, String& string)
|
||||
{
|
||||
boolean success = false;
|
||||
String MeasurementStatus;
|
||||
MeasurementStatus = String("Not running");
|
||||
|
||||
switch (function)
|
||||
{
|
||||
@@ -165,7 +167,7 @@ boolean Plugin_112(byte function, struct EventStruct *event, String& string)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PLUGIN_TEN_PER_SECOND:
|
||||
case PLUGIN_ONCE_A_SECOND:
|
||||
{
|
||||
P112_data_struct *P112_data =
|
||||
static_cast<P112_data_struct *>(getPluginTaskData(event->TaskIndex));
|
||||
@@ -173,7 +175,11 @@ boolean Plugin_112(byte function, struct EventStruct *event, String& string)
|
||||
if (nullptr != P112_data) {
|
||||
if (P112_data->sensor.dataAvailable()) {
|
||||
// Measurement was succesfull, schedule a read.
|
||||
MeasurementStatus = String("Ready");
|
||||
eventQueue.add("PLUGIN_ONCE_A_SECOND: MeasurementStatus = " + MeasurementStatus);
|
||||
Scheduler.schedule_task_device_timer(event->TaskIndex, millis() + 10);
|
||||
} else {
|
||||
eventQueue.add("PLUGIN_ONCE_A_SECOND: No sensor data available");
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -183,22 +189,12 @@ boolean Plugin_112(byte function, struct EventStruct *event, String& string)
|
||||
P112_data_struct *P112_data =
|
||||
static_cast<P112_data_struct *>(getPluginTaskData(event->TaskIndex));
|
||||
|
||||
if (P112_data->begin()) {
|
||||
if (PCONFIG(3)) // Integrated LEDs?
|
||||
{
|
||||
// P112_data->sensor.takeMeasurementsWithBulb();
|
||||
P112_data->sensor.enableBulb(AS7265x_LED_WHITE);
|
||||
P112_data->sensor.enableBulb(AS7265x_LED_IR);
|
||||
P112_data->sensor.enableBulb(AS7265x_LED_UV);
|
||||
P112_data->sensor.setMeasurementMode(AS7265X_MEASUREMENT_MODE_6CHAN_ONE_SHOT);
|
||||
P112_data->sensor.disableBulb(AS7265x_LED_WHITE);
|
||||
P112_data->sensor.disableBulb(AS7265x_LED_IR);
|
||||
P112_data->sensor.disableBulb(AS7265x_LED_UV);
|
||||
} else {
|
||||
// P112_data->sensor.takeMeasurements();
|
||||
P112_data->sensor.setMeasurementMode(AS7265X_MEASUREMENT_MODE_6CHAN_ONE_SHOT);
|
||||
}
|
||||
eventQueue.add("PLUGIN_READ: MeasurementStatus = " + MeasurementStatus);
|
||||
|
||||
if (MeasurementStatus == "Ready") {
|
||||
|
||||
MeasurementStatus = "Done";
|
||||
eventQueue.add("PLUGIN_READ: MeasurementStatus = " + MeasurementStatus);
|
||||
String RuleEvent;
|
||||
RuleEvent = getTaskDeviceName(event->TaskIndex);
|
||||
RuleEvent += '#';
|
||||
@@ -263,11 +259,29 @@ boolean Plugin_112(byte function, struct EventStruct *event, String& string)
|
||||
UserVar[event->BaseVarIndex + 2] = P112_data->sensor.getR();
|
||||
UserVar[event->BaseVarIndex + 3] = P112_data->sensor.getW();
|
||||
}
|
||||
} else if (MeasurementStatus != "Running") {
|
||||
MeasurementStatus = String("Running");
|
||||
eventQueue.add("PLUGIN_READ: MeasurementStatus = " + MeasurementStatus);
|
||||
if (P112_data->begin()) {
|
||||
if (PCONFIG(3)) // Integrated LEDs?
|
||||
{
|
||||
// P112_data->sensor.takeMeasurementsWithBulb();
|
||||
P112_data->sensor.enableBulb(AS7265x_LED_WHITE);
|
||||
P112_data->sensor.enableBulb(AS7265x_LED_IR);
|
||||
P112_data->sensor.enableBulb(AS7265x_LED_UV);
|
||||
P112_data->sensor.setMeasurementMode(AS7265X_MEASUREMENT_MODE_6CHAN_ONE_SHOT);
|
||||
P112_data->sensor.disableBulb(AS7265x_LED_WHITE);
|
||||
P112_data->sensor.disableBulb(AS7265x_LED_IR);
|
||||
P112_data->sensor.disableBulb(AS7265x_LED_UV);
|
||||
} else {
|
||||
// P112_data->sensor.takeMeasurements();
|
||||
P112_data->sensor.setMeasurementMode(AS7265X_MEASUREMENT_MODE_6CHAN_ONE_SHOT);
|
||||
}
|
||||
}
|
||||
}
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user