From 04f6b33082bafa277591bb37d14df4b93bcdc8ae Mon Sep 17 00:00:00 2001 From: Moritz Perschke <moritz.perschke@uibk.ac.at> Date: Mon, 21 Nov 2022 13:45:17 +0100 Subject: [PATCH] implemented buildMessages() in INA219 --- .../client/lib/ina219/ina219.cpp | 30 ++++++++++++++++++- .../client/lib/ina219/ina219.hpp | 9 ++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Tests/Mieming/host_esp32Wroom/client/lib/ina219/ina219.cpp b/Tests/Mieming/host_esp32Wroom/client/lib/ina219/ina219.cpp index def6a9d..930885f 100644 --- a/Tests/Mieming/host_esp32Wroom/client/lib/ina219/ina219.cpp +++ b/Tests/Mieming/host_esp32Wroom/client/lib/ina219/ina219.cpp @@ -27,7 +27,35 @@ out_data_ina219 ForteINA219 ::readData() std::list<Message> ForteINA219::buildMessages() { - throw "Not yet implemented"; + std::list<Message> messages; + out_data_ina219 data = readData(); + MeasurementData shuntVoltageData{ + data.shuntVoltage_mV, 0, {}, measurementTypeToString.at(MeasurementType::SHUNT_VOLTAGE) + }; + MeasurementData busVoltageData{ + data.busVoltage_V, 0, {}, measurementTypeToString.at(MeasurementType::BUS_VOLTAGE) + }; + MeasurementData currentMilliAmpData{ + data.current_mA, 0, {}, measurementTypeToString.at(MeasurementType::CURRENT_mA) + }; + MeasurementData powerMilliWattData{ + data.power_mW, 0, {}, measurementTypeToString.at(MeasurementType::POWER_mA) + }; + MeasurementData loadVoltageData{ + data.loadVoltage_V, 0, {}, measurementTypeToString.at(MeasurementType::LOAD_VOLTAGE_V) + }; + MeasurementData ina219OverflowData{ + data.ina219_overflow, 0, {}, measurementTypeToString.at(MeasurementType::INA219_OVERFLOW) + }; + + messages.emplace_back(Message(shuntVoltageData, sensorInformation, 0)); + messages.emplace_back(Message(busVoltageData, sensorInformation,0)); + messages.emplace_back(Message(currentMilliAmpData, sensorInformation, 0)); + messages.emplace_back(Message(powerMilliWattData, sensorInformation, 0)); + messages.emplace_back(Message(loadVoltageData, sensorInformation, 0)); + messages.emplace_back(Message(ina219OverflowData, sensorInformation, 0)); + + return messages; } SensorInformation ForteINA219::getSensorInformation() const { diff --git a/Tests/Mieming/host_esp32Wroom/client/lib/ina219/ina219.hpp b/Tests/Mieming/host_esp32Wroom/client/lib/ina219/ina219.hpp index 4a34d95..1985b99 100644 --- a/Tests/Mieming/host_esp32Wroom/client/lib/ina219/ina219.hpp +++ b/Tests/Mieming/host_esp32Wroom/client/lib/ina219/ina219.hpp @@ -28,6 +28,15 @@ class ForteINA219 : public ForteSensor<out_data_ina219> { INA219_WE ina219; out_data_ina219 data; const SensorInformation sensorInformation{"INA219", Protocol::I2C}; + enum class MeasurementType {SHUNT_VOLTAGE, BUS_VOLTAGE, CURRENT_mA, POWER_mA, LOAD_VOLTAGE_V, INA219_OVERFLOW}; + + std::map<MeasurementType, const char*> measurementTypeToString = { + {MeasurementType::SHUNT_VOLTAGE, "SHUNT_VOLTAGE"}, + {MeasurementType::BUS_VOLTAGE, "BUS_VOLTAGE"}, + {MeasurementType::CURRENT_mA, "CURRENT_mA"}, + {MeasurementType::POWER_mA, "POWER_mA"}, + {MeasurementType::LOAD_VOLTAGE_V, "LOAD_VOLTAGE_V"}, + {MeasurementType::INA219_OVERFLOW, "INA219_OVERFLOW"}}; }; #endif \ No newline at end of file -- GitLab