hoymilesClient/src/hoymiles/microinverter.cpp

29 lines
802 B
C++
Raw Normal View History

#include <thread>
#include "modbus.h"
2024-03-16 21:15:15 +01:00
#include "microinverter.h"
#include "port.h"
struct _modbus;
typedef _modbus modbus_t;
Microinverter::Microinverter(std::shared_ptr<modbus_t*> modbus_context, std::mutex *modbus_context_mutex, long serialNumber) {
2024-03-16 21:15:15 +01:00
this->modbus_context = modbus_context;
this->modbus_context_mutex = modbus_context_mutex;
2024-03-16 21:15:15 +01:00
this->serialNumber = serialNumber;
2024-03-16 21:15:15 +01:00
}
void Microinverter::updatePorts() {
std::vector<std::thread> updateThreads;
2024-03-16 21:15:15 +01:00
for(Port port : this->ports){
updateThreads.push_back(std::thread(&Port::updateParameters, port));
// port.updateParameters();
}
std::vector<std::thread>::iterator updateThreadsIterator = updateThreads.begin();
while(updateThreadsIterator != updateThreads.end()) {
updateThreadsIterator->join();
updateThreadsIterator++;
2024-03-16 21:15:15 +01:00
}
}