Files
dynalab-core/test/manual/derive_unit.py
T
h3cx f0638788fc Small modifications to DeriveUnit
Fixed init inconsitencies on DeriveUnit IO queues as well as function
naming. Updated test to stream output
2026-09-09 11:23:13 +02:00

51 lines
1.0 KiB
Python

from uuid import uuid4
from dynalab_core.derive import DeriveUnit
from dynalab_core.protocols.packets.data import ValueDescriptor
from dynalab_core.protocols.packets.handshake import SignalDescriptor
def process(
a: ValueDescriptor,
b: ValueDescriptor,
r: SignalDescriptor,
) -> ValueDescriptor:
val = ValueDescriptor(
signal_id=r.id, value=a.value + b.value, timestamp=a.timestamp
)
return val
sig_a = SignalDescriptor(
id=uuid4(),
name="Signal A",
type="number",
)
sig_b = SignalDescriptor(
id=uuid4(),
name="Signal A",
type="number",
)
sig_r = SignalDescriptor(
id=uuid4(),
name="Signal R",
type="number",
)
unit = DeriveUnit(uuid4(), process, [sig_a, sig_b], sig_r)
val_a = ValueDescriptor(signal_id=sig_a.id, value=1, timestamp=0)
val_b = ValueDescriptor(signal_id=sig_a.id, value=2, timestamp=10)
unit.put_data([val_a, val_b])
try:
while True:
output = unit.get_output()
if output is not None:
print(output)
except KeyboardInterrupt:
exit(0)