#include #include #include #include #include #include "modbus.h" #include "port.h" #include "portParameters.h" Port::Port(std::shared_ptr modbus_context, std::mutex *modbus_context_mutex, uint16_t portStartAddress) { this->modbus_context = modbus_context; this->modbus_context_mutex = modbus_context_mutex; this->portStartAddress = portStartAddress; this->populateParameters(); } void Port::populateParameters() { this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); this->parameters.push_back(std::make_shared()); } void Port::updateParameters() { std::vector>::iterator parametersIterator{this->parameters.begin()}; while (parametersIterator != this->parameters.end()) { parametersIterator->get()->updateValue(this->modbus_context, this->modbus_context_mutex, this->portStartAddress); parametersIterator++; } } void Port::printParameters() { std::vector>::iterator parametersIterator = this->parameters.begin(); if(parametersIterator != this->parameters.end()) { std::cout << "|"; } while(parametersIterator != this->parameters.end()) { std::cout << " " << parametersIterator->get()->name << ": " << parametersIterator->get()->getOutputValue() << " |"; parametersIterator++; } }