mirror of
https://github.com/pyMC-dev/pyMC_Repeater.git
synced 2026-08-06 17:03:32 +02:00
added current and power to telemetry page
This commit is contained in:
@@ -682,6 +682,8 @@ from openhop_core.node.handlers.protocol_request import ( # noqa: E402
|
||||
)
|
||||
from openhop_core.protocol.cayenne_lpp import ( # noqa: E402
|
||||
TELEM_CHANNEL_SELF,
|
||||
encode_current,
|
||||
encode_power,
|
||||
encode_relative_humidity,
|
||||
encode_temperature,
|
||||
encode_voltage,
|
||||
@@ -722,8 +724,11 @@ def test_telemetry_base_voltage_from_ups_sensor():
|
||||
|
||||
lpp = helper._handle_get_telemetry(admin, 0, b"\x00")
|
||||
|
||||
# No environment values on the UPS reading -> voltage entry only.
|
||||
assert lpp == encode_voltage(TELEM_CHANNEL_SELF, 12.6)
|
||||
# Base voltage stays on channel 1, and the additional INA219 voltage view
|
||||
# is emitted on the next channel when environment telemetry is allowed.
|
||||
assert lpp == encode_voltage(TELEM_CHANNEL_SELF, 12.6) + encode_voltage(
|
||||
TELEM_CHANNEL_SELF + 1, 12.6
|
||||
)
|
||||
|
||||
|
||||
def test_telemetry_admin_full_mask_includes_environment_sensors():
|
||||
@@ -734,7 +739,7 @@ def test_telemetry_admin_full_mask_includes_environment_sensors():
|
||||
"""
|
||||
sm = _FakeSensorManager(
|
||||
[
|
||||
_reading(bus_voltage_v=12.6),
|
||||
_reading(bus_voltage_v=12.6, current_ma=500.0, power_mw=6000.0),
|
||||
_reading(temperature_c=21.5, humidity_pct=55.0),
|
||||
]
|
||||
)
|
||||
@@ -748,8 +753,11 @@ def test_telemetry_admin_full_mask_includes_environment_sensors():
|
||||
|
||||
expected = (
|
||||
encode_voltage(TELEM_CHANNEL_SELF, 12.6)
|
||||
+ encode_temperature(TELEM_CHANNEL_SELF + 1, 21.5)
|
||||
+ encode_relative_humidity(TELEM_CHANNEL_SELF + 1, 55.0)
|
||||
+ encode_voltage(TELEM_CHANNEL_SELF + 1, 12.6)
|
||||
+ encode_current(TELEM_CHANNEL_SELF + 2, 0.5)
|
||||
+ encode_power(TELEM_CHANNEL_SELF + 3, 6)
|
||||
+ encode_temperature(TELEM_CHANNEL_SELF + 4, 21.5)
|
||||
+ encode_relative_humidity(TELEM_CHANNEL_SELF + 4, 55.0)
|
||||
)
|
||||
assert lpp == expected
|
||||
|
||||
@@ -767,6 +775,32 @@ def test_telemetry_guest_forced_to_base_only():
|
||||
assert lpp == encode_voltage(TELEM_CHANNEL_SELF, 0.0)
|
||||
|
||||
|
||||
def test_telemetry_includes_ina219_power_channels_before_environment_sensors():
|
||||
"""INA219 voltage/current/power values are emitted before env sensors."""
|
||||
sm = _FakeSensorManager(
|
||||
[
|
||||
_reading(bus_voltage_v=12.6, current_ma=500.0, power_mw=6000.0),
|
||||
_reading(temperature_c=21.5, humidity_pct=55.0),
|
||||
]
|
||||
)
|
||||
helper = ProtocolRequestHelper(
|
||||
identity_manager=MagicMock(), packet_injector=AsyncMock(), sensor_manager=sm
|
||||
)
|
||||
admin = SimpleNamespace(is_guest=lambda: False)
|
||||
|
||||
lpp = helper._handle_get_telemetry(admin, 0, b"\x00")
|
||||
|
||||
expected = (
|
||||
encode_voltage(TELEM_CHANNEL_SELF, 12.6)
|
||||
+ encode_voltage(TELEM_CHANNEL_SELF + 1, 12.6)
|
||||
+ encode_current(TELEM_CHANNEL_SELF + 2, 0.5)
|
||||
+ encode_power(TELEM_CHANNEL_SELF + 3, 6)
|
||||
+ encode_temperature(TELEM_CHANNEL_SELF + 4, 21.5)
|
||||
+ encode_relative_humidity(TELEM_CHANNEL_SELF + 4, 55.0)
|
||||
)
|
||||
assert lpp == expected
|
||||
|
||||
|
||||
def test_telemetry_inverse_mask_gates_environment():
|
||||
"""An inverse mask that clears the environment bit strips env sensors.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user