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