Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion packages/control/counter.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ def setup_counter(self):
log.exception("Fehler in der Zähler-Klasse von "+str(self.num))

# tested
def _get_loadmanagement_state(self) -> None:
def _get_loadmanagement_state(self) -> bool:
# Wenn der Zähler keine Werte liefert, darf nicht geladen werden.
connected_cps = data.data.counter_all_data.get_loads_of_counter(f'counter{self.num}')
if self.data.get.fault_state == FaultStateLevel.ERROR:
Expand All @@ -168,6 +168,8 @@ def _get_loadmanagement_state(self) -> None:
f" maximal Ströme von {[int(round(self.data.config.max_power_errorcase/230/3, 0))]*3} A"
" genutzt.")
return False
else:
return True
else:
self.data.set.error_timer = None
return True
Expand Down
16 changes: 16 additions & 0 deletions packages/control/counter_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from unittest.mock import Mock
import pytest

from helpermodules import timecheck
from control import counter as counter_module
from control import data
from control.chargepoint.chargepoint import Chargepoint
Expand Down Expand Up @@ -44,6 +45,21 @@ def test_set_loadmanagement_state(fault_state: FaultStateLevel,
assert counter.data.set.error_timer == expected_loadmanagement_available


def test_get_loadmanagement_state_within_grace_period_stays_available(monkeypatch, data_):
# setup
connected_cps_mock = Mock(return_value=["cp3", "cp4"])
monkeypatch.setattr(data.data.counter_all_data, "get_loads_of_counter", connected_cps_mock)
counter = Counter(0)
counter.data.get.fault_state = FaultStateLevel.ERROR
counter.data.set.error_timer = timecheck.create_timestamp()

# execution
loadmanagement_available = counter._get_loadmanagement_state()

# evaluation
assert loadmanagement_available is True


@pytest.mark.parametrize("raw_currents_left, expected_max_exceeding",
[pytest.param([32, 32, 15], [0]*3, id="not exceeded"),
pytest.param([32, 35, 18], [0]*3, id="not exceeded with export"),
Expand Down
11 changes: 3 additions & 8 deletions packages/modules/devices/rct/rct/rct_lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -470,14 +470,9 @@ def add_by_id(self, tab, id):
def connect_to_server(self):
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.settimeout(2.0)
try:
self.socket.connect((self.host, self.port))
log.debug('connect to {} port {}'.format(self.host, self.port))
return True
except Exception:
print("-"*100)
traceback.print_exc(file=sys.stdout)
return False
self.socket.connect((self.host, self.port))
log.debug('connect to {} port {}'.format(self.host, self.port))
return True

# this function reads from the socket.
# Note: unexpected bytes within buf are discarded.
Expand Down