Hoymiles Lib: Added flags to inverter to enable/disable polling and commands to the inverter
This commit is contained in:
parent
6a6165e8c5
commit
7da782c4ef
@ -17,6 +17,10 @@ HM_Abstract::HM_Abstract(uint64_t serial)
|
|||||||
|
|
||||||
bool HM_Abstract::sendStatsRequest(HoymilesRadio* radio)
|
bool HM_Abstract::sendStatsRequest(HoymilesRadio* radio)
|
||||||
{
|
{
|
||||||
|
if (!getEnablePolling()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
struct tm timeinfo;
|
struct tm timeinfo;
|
||||||
if (!getLocalTime(&timeinfo, 5)) {
|
if (!getLocalTime(&timeinfo, 5)) {
|
||||||
return false;
|
return false;
|
||||||
@ -34,6 +38,10 @@ bool HM_Abstract::sendStatsRequest(HoymilesRadio* radio)
|
|||||||
|
|
||||||
bool HM_Abstract::sendAlarmLogRequest(HoymilesRadio* radio, bool force)
|
bool HM_Abstract::sendAlarmLogRequest(HoymilesRadio* radio, bool force)
|
||||||
{
|
{
|
||||||
|
if (!getEnablePolling()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
struct tm timeinfo;
|
struct tm timeinfo;
|
||||||
if (!getLocalTime(&timeinfo, 5)) {
|
if (!getLocalTime(&timeinfo, 5)) {
|
||||||
return false;
|
return false;
|
||||||
@ -62,6 +70,10 @@ bool HM_Abstract::sendAlarmLogRequest(HoymilesRadio* radio, bool force)
|
|||||||
|
|
||||||
bool HM_Abstract::sendDevInfoRequest(HoymilesRadio* radio)
|
bool HM_Abstract::sendDevInfoRequest(HoymilesRadio* radio)
|
||||||
{
|
{
|
||||||
|
if (!getEnablePolling()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
struct tm timeinfo;
|
struct tm timeinfo;
|
||||||
if (!getLocalTime(&timeinfo, 5)) {
|
if (!getLocalTime(&timeinfo, 5)) {
|
||||||
return false;
|
return false;
|
||||||
@ -83,6 +95,10 @@ bool HM_Abstract::sendDevInfoRequest(HoymilesRadio* radio)
|
|||||||
|
|
||||||
bool HM_Abstract::sendSystemConfigParaRequest(HoymilesRadio* radio)
|
bool HM_Abstract::sendSystemConfigParaRequest(HoymilesRadio* radio)
|
||||||
{
|
{
|
||||||
|
if (!getEnablePolling()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
struct tm timeinfo;
|
struct tm timeinfo;
|
||||||
if (!getLocalTime(&timeinfo, 5)) {
|
if (!getLocalTime(&timeinfo, 5)) {
|
||||||
return false;
|
return false;
|
||||||
@ -101,6 +117,10 @@ bool HM_Abstract::sendSystemConfigParaRequest(HoymilesRadio* radio)
|
|||||||
|
|
||||||
bool HM_Abstract::sendActivePowerControlRequest(HoymilesRadio* radio, float limit, PowerLimitControlType type)
|
bool HM_Abstract::sendActivePowerControlRequest(HoymilesRadio* radio, float limit, PowerLimitControlType type)
|
||||||
{
|
{
|
||||||
|
if (!getEnableCommands()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (type == PowerLimitControlType::RelativNonPersistent || type == PowerLimitControlType::RelativPersistent) {
|
if (type == PowerLimitControlType::RelativNonPersistent || type == PowerLimitControlType::RelativPersistent) {
|
||||||
limit = min<float>(100, limit);
|
limit = min<float>(100, limit);
|
||||||
}
|
}
|
||||||
@ -123,6 +143,10 @@ bool HM_Abstract::resendActivePowerControlRequest(HoymilesRadio* radio)
|
|||||||
|
|
||||||
bool HM_Abstract::sendPowerControlRequest(HoymilesRadio* radio, bool turnOn)
|
bool HM_Abstract::sendPowerControlRequest(HoymilesRadio* radio, bool turnOn)
|
||||||
{
|
{
|
||||||
|
if (!getEnableCommands()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (turnOn) {
|
if (turnOn) {
|
||||||
_powerState = 1;
|
_powerState = 1;
|
||||||
} else {
|
} else {
|
||||||
@ -139,6 +163,10 @@ bool HM_Abstract::sendPowerControlRequest(HoymilesRadio* radio, bool turnOn)
|
|||||||
|
|
||||||
bool HM_Abstract::sendRestartControlRequest(HoymilesRadio* radio)
|
bool HM_Abstract::sendRestartControlRequest(HoymilesRadio* radio)
|
||||||
{
|
{
|
||||||
|
if (!getEnableCommands()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
_powerState = 2;
|
_powerState = 2;
|
||||||
|
|
||||||
PowerControlCommand* cmd = radio->enqueCommand<PowerControlCommand>();
|
PowerControlCommand* cmd = radio->enqueCommand<PowerControlCommand>();
|
||||||
|
|||||||
@ -75,6 +75,26 @@ bool InverterAbstract::isReachable()
|
|||||||
return Statistics()->getRxFailureCount() <= MAX_ONLINE_FAILURE_COUNT;
|
return Statistics()->getRxFailureCount() <= MAX_ONLINE_FAILURE_COUNT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InverterAbstract::setEnablePolling(bool enabled)
|
||||||
|
{
|
||||||
|
_enablePolling = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool InverterAbstract::getEnablePolling()
|
||||||
|
{
|
||||||
|
return _enablePolling;
|
||||||
|
}
|
||||||
|
|
||||||
|
void InverterAbstract::setEnableCommands(bool enabled)
|
||||||
|
{
|
||||||
|
_enableCommands = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool InverterAbstract::getEnableCommands()
|
||||||
|
{
|
||||||
|
return _enableCommands;
|
||||||
|
}
|
||||||
|
|
||||||
AlarmLogParser* InverterAbstract::EventLog()
|
AlarmLogParser* InverterAbstract::EventLog()
|
||||||
{
|
{
|
||||||
return _alarmLogParser.get();
|
return _alarmLogParser.get();
|
||||||
|
|||||||
@ -44,6 +44,12 @@ public:
|
|||||||
bool isProducing();
|
bool isProducing();
|
||||||
bool isReachable();
|
bool isReachable();
|
||||||
|
|
||||||
|
void setEnablePolling(bool enabled);
|
||||||
|
bool getEnablePolling();
|
||||||
|
|
||||||
|
void setEnableCommands(bool enabled);
|
||||||
|
bool getEnableCommands();
|
||||||
|
|
||||||
void clearRxFragmentBuffer();
|
void clearRxFragmentBuffer();
|
||||||
void addRxFragment(uint8_t fragment[], uint8_t len);
|
void addRxFragment(uint8_t fragment[], uint8_t len);
|
||||||
uint8_t verifyAllFragments(CommandAbstract* cmd);
|
uint8_t verifyAllFragments(CommandAbstract* cmd);
|
||||||
@ -73,6 +79,9 @@ private:
|
|||||||
uint8_t _rxFragmentLastPacketId = 0;
|
uint8_t _rxFragmentLastPacketId = 0;
|
||||||
uint8_t _rxFragmentRetransmitCnt = 0;
|
uint8_t _rxFragmentRetransmitCnt = 0;
|
||||||
|
|
||||||
|
bool _enablePolling = true;
|
||||||
|
bool _enableCommands = true;
|
||||||
|
|
||||||
std::unique_ptr<AlarmLogParser> _alarmLogParser;
|
std::unique_ptr<AlarmLogParser> _alarmLogParser;
|
||||||
std::unique_ptr<DevInfoParser> _devInfoParser;
|
std::unique_ptr<DevInfoParser> _devInfoParser;
|
||||||
std::unique_ptr<PowerCommandParser> _powerCommandParser;
|
std::unique_ptr<PowerCommandParser> _powerCommandParser;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user