mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-07-27 19:57:38 +00:00
[P132] Only read measurement when conversion is ready
This commit is contained in:
+23
-21
@@ -419,26 +419,29 @@ boolean Plugin_132(uint8_t function, struct EventStruct *event, String& string)
|
||||
channel = 2;
|
||||
}
|
||||
|
||||
switch (reg) {
|
||||
case 0: // Current
|
||||
case 2: // Current
|
||||
case 4: // Current
|
||||
UserVar.setFloat(event->TaskIndex, r,
|
||||
P132_data->getBusCurrent_mA(channel));
|
||||
break;
|
||||
case 1: // Voltage
|
||||
case 3: // Voltage
|
||||
case 5: // Voltage
|
||||
UserVar.setFloat(event->TaskIndex, r,
|
||||
P132_data->getBusVoltage_V(channel)
|
||||
+ (P132_data->getShuntVoltage_mV(channel) / 1000.0f));
|
||||
break;
|
||||
case 6: // Power
|
||||
case 7: // Power
|
||||
case 8: // Power
|
||||
UserVar.setFloat(event->TaskIndex, r,
|
||||
P132_data->getBusPower_mW(channel));
|
||||
break;
|
||||
if (P132_data->conversionFinished(channel)) {
|
||||
switch (reg) {
|
||||
case 0: // Current
|
||||
case 2: // Current
|
||||
case 4: // Current
|
||||
UserVar.setFloat(event->TaskIndex, r,
|
||||
P132_data->getBusCurrent_mA(channel));
|
||||
break;
|
||||
case 1: // Voltage
|
||||
case 3: // Voltage
|
||||
case 5: // Voltage
|
||||
UserVar.setFloat(event->TaskIndex, r,
|
||||
P132_data->getBusVoltage_V(channel)
|
||||
+ (P132_data->getShuntVoltage_mV(channel) / 1000.0f));
|
||||
break;
|
||||
case 6: // Power
|
||||
case 7: // Power
|
||||
case 8: // Power
|
||||
UserVar.setFloat(event->TaskIndex, r,
|
||||
P132_data->getBusPower_mW(channel));
|
||||
break;
|
||||
}
|
||||
success = true; // Only if we have read data
|
||||
}
|
||||
}
|
||||
|
||||
@@ -454,7 +457,6 @@ boolean Plugin_132(uint8_t function, struct EventStruct *event, String& string)
|
||||
}
|
||||
# endif // ifndef BUILD_NO_DEBUG
|
||||
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,6 +284,13 @@ float P132_data_struct::getBusPower_mW(uint8_t reg) {
|
||||
return INA->getBusMicroWatts(_device + reg) * 0.001f;
|
||||
}
|
||||
|
||||
bool P132_data_struct::conversionFinished(uint8_t reg) {
|
||||
if (!isInitialized()) {
|
||||
return false;
|
||||
}
|
||||
return INA->conversionFinished(_device + reg);
|
||||
}
|
||||
|
||||
# endif // if P132_EXTENDED
|
||||
|
||||
// **************************************************************************/
|
||||
|
||||
@@ -100,6 +100,7 @@ public:
|
||||
# if P132_EXTENDED
|
||||
float getBusCurrent_mA(uint8_t reg);
|
||||
float getBusPower_mW(uint8_t reg);
|
||||
bool conversionFinished(uint8_t reg);
|
||||
|
||||
void setCalibration(struct EventStruct *event);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user