sadge but more worky
This commit is contained in:
parent
32d9dfff98
commit
34313ef4bc
16 changed files with 169 additions and 65 deletions
|
|
@ -16,11 +16,11 @@ class Dtu {
|
|||
|
||||
void populateMicroinverters();
|
||||
|
||||
std::pair<Microinverter *, bool> getMicroinverterBySerialNumber(long long serialNumber);
|
||||
|
||||
public:
|
||||
Dtu(const char *ip_address, int port);
|
||||
|
||||
std::pair<Microinverter *, bool> getMicroinverterBySerialNumber(long long serialNumber);
|
||||
|
||||
bool isConnected();
|
||||
|
||||
bool modbusError();
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ class Microinverter {
|
|||
|
||||
int startAddress;
|
||||
|
||||
int statusStartAddress;
|
||||
|
||||
public:
|
||||
Microinverter(std::shared_ptr<class modbus> modbus, int startAddress, long long serialNumber);
|
||||
|
||||
|
|
@ -30,11 +32,15 @@ class Microinverter {
|
|||
|
||||
void updateParameters(std::vector<std::string> ¶metersToGet, bool allParameters);
|
||||
|
||||
void updateStatusParameters();
|
||||
|
||||
void printPorts(std::vector<std::string> ¶metersToGet, bool allParameters, bool shortNames);
|
||||
|
||||
long long getTodayProduction();
|
||||
|
||||
long long getTotalProduction();
|
||||
|
||||
void setStatus(std::vector<std::pair<int, uint16_t>> portsToSet, std::string statusName);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
#include <vector>
|
||||
|
||||
#include "portParametersGeneric.h"
|
||||
#include "portParameters.h"
|
||||
#include "modbus.h"
|
||||
|
||||
class Port {
|
||||
|
|
@ -22,15 +23,27 @@ class Port {
|
|||
|
||||
int portStartAddress;
|
||||
|
||||
int statusPortStartAddress;
|
||||
|
||||
std::vector<std::shared_ptr<PortParameter>> parameters;
|
||||
|
||||
std::vector<std::shared_ptr<PortParameter>> statusParameters;
|
||||
|
||||
std::pair<std::shared_ptr<PortParameter>, bool> getParameterByName(std::string name);
|
||||
|
||||
std::pair<std::shared_ptr<PortParameter>, bool> getStatusByName(std::string name);
|
||||
|
||||
// void updateParameters(std::vector<std::string> ¶metersToGet, bool allParameters);
|
||||
|
||||
void setParametersFromMicroinverterArray(uint16_t *registers, int addressOffset);
|
||||
|
||||
void setStatusesFromMicroinverterArray(uint16_t *registers, int addressOffset);
|
||||
|
||||
void printParameters(std::vector<std::string> ¶metersToGet, bool allParameters, bool shortNames);
|
||||
|
||||
void turnOff(class modbus &modbus);
|
||||
|
||||
bool isOff(class modbus &modbus);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
class PortParameterMicroinverterSerialNumber : public PortParameterInt {
|
||||
private:
|
||||
void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
|
||||
public:
|
||||
PortParameterMicroinverterSerialNumber();
|
||||
|
|
@ -81,4 +81,14 @@ class PortParameterLinkStatus : public PortParameterInt {
|
|||
PortParameterLinkStatus();
|
||||
};
|
||||
|
||||
class PortParameterOnOff : public PortParameterInt {
|
||||
public:
|
||||
PortParameterOnOff();
|
||||
};
|
||||
|
||||
class PortParameterLimitActivePower : public PortParameterInt {
|
||||
public:
|
||||
PortParameterLimitActivePower();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -42,9 +42,11 @@ class PortParameter {
|
|||
|
||||
std::pair<PortParameterValue, PortParameterValueType> getValue();
|
||||
|
||||
PortParameter& writeValue(uint16_t value, class modbus& modbus, int portStartAddress);
|
||||
|
||||
virtual std::string getOutputValue();
|
||||
|
||||
virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
|
||||
// void updateValue(std::shared_ptr<class modbus> modubs, uint16_t portStartAddress);
|
||||
};
|
||||
|
|
@ -58,7 +60,7 @@ class PortParameterFloat : public PortParameter {
|
|||
|
||||
std::string getOutputValue();
|
||||
|
||||
virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
};
|
||||
|
||||
class PortParameterInt : public PortParameter {
|
||||
|
|
@ -69,7 +71,7 @@ class PortParameterInt : public PortParameter {
|
|||
|
||||
std::string getOutputValue();
|
||||
|
||||
virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -9,7 +9,7 @@ class SunspecParameterManufacturer : public SunspecParameterString32 {
|
|||
public:
|
||||
SunspecParameterManufacturer();
|
||||
|
||||
void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -33,7 +33,7 @@ class SunspecParameter {
|
|||
|
||||
public:
|
||||
|
||||
virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
|
||||
std::pair<SunspecValue, SunspecValueType> getValue();
|
||||
};
|
||||
|
|
@ -44,7 +44,7 @@ class SunspecParameter {
|
|||
// public:
|
||||
// SunspecParameterUint32(std::string name, int registerAddressOffset, int registerSize);
|
||||
|
||||
// virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// };
|
||||
|
||||
// class SunspecParameterUint16 : public SunspecParameter {
|
||||
|
|
@ -53,7 +53,7 @@ class SunspecParameter {
|
|||
// public:
|
||||
// SunspecParameterUint16(std::string name, int registerAddressOffset, int registerSize);
|
||||
|
||||
// virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// };
|
||||
|
||||
class SunspecParameterString32 : public SunspecParameter {
|
||||
|
|
@ -63,7 +63,7 @@ class SunspecParameterString32 : public SunspecParameter {
|
|||
public:
|
||||
SunspecParameterString32(std::string name, int registerAddressOffset, int registerSize);
|
||||
|
||||
virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
};
|
||||
|
||||
// class SunspecParameterString16 : public SunspecParameter {
|
||||
|
|
@ -73,7 +73,7 @@ class SunspecParameterString32 : public SunspecParameter {
|
|||
// public:
|
||||
// SunspecParameterString16(std::string name, int registerAddressOffset, int registerSize);
|
||||
|
||||
// virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// };
|
||||
|
||||
// class SunspecParameterSunssf : public SunspecParameter {
|
||||
|
|
@ -82,7 +82,7 @@ class SunspecParameterString32 : public SunspecParameter {
|
|||
// public:
|
||||
// SunspecParameterSunssf(std::string name, int registerAddressOffset, int registerSize);
|
||||
|
||||
// virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// };
|
||||
|
||||
// class SunspecParameterInt16 : public SunspecParameter {
|
||||
|
|
@ -91,7 +91,7 @@ class SunspecParameterString32 : public SunspecParameter {
|
|||
// public:
|
||||
// SunspecParameterInt16(std::string name, int registerAddressOffset, int registerSize);
|
||||
|
||||
// virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// };
|
||||
|
||||
// class SunspecParameterAcc32 : public SunspecParameter {
|
||||
|
|
@ -100,7 +100,7 @@ class SunspecParameterString32 : public SunspecParameter {
|
|||
// public:
|
||||
// SunspecParameterAcc32(std::string name, int registerAddressOffset, int registerSize);
|
||||
|
||||
// virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// };
|
||||
|
||||
// class SunspecParameterFloat32 : public SunspecParameter {
|
||||
|
|
@ -109,7 +109,7 @@ class SunspecParameterString32 : public SunspecParameter {
|
|||
// public:
|
||||
// SunspecParameterFloat32(std::string name, int registerAddressOffset, int registerSize);
|
||||
|
||||
// virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// };
|
||||
|
||||
// class SunspecParameterEnum16 : public SunspecParameter {
|
||||
|
|
@ -118,7 +118,7 @@ class SunspecParameterString32 : public SunspecParameter {
|
|||
// public:
|
||||
// SunspecParameterEnum16(std::string name, int registerAddressOffset, int registerSize);
|
||||
|
||||
// virtual void setValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// virtual void getValueFromRegisters(uint16_t *registers, int addressOffset);
|
||||
// };
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue