from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import typing # NOQA: F401
from nixnet import _funcs
from nixnet._session import collection
[docs]class Signals(collection.Collection):
"""Signals in a session."""
def _create_item(self, handle, index, name):
return Signal(handle, index, name)
[docs]class SinglePointInSignals(Signals):
"""Writeable signals in a session."""
[docs] def read(self):
# type: () -> typing.Iterable[typing.Tuple[int, float]]
"""Read data from a Signal Input Single-Point session.
Yields:
tuple of int and float: Timestamp and signal
"""
num_signals = len(self)
timestamps, values = _funcs.nx_read_signal_single_point(self._handle, num_signals)
for timestamp, value in zip(timestamps, values):
yield timestamp.value, value.value
[docs]class SinglePointOutSignals(Signals):
"""Writeable signals in a session."""
[docs] def write(
self,
signals):
# type: (typing.Iterable[float]) -> None
"""Write data to a Signal Output Single-Point session.
Args:
signals(list of float): A list of signal values (float).
"""
_funcs.nx_write_signal_single_point(self._handle, list(signals))
[docs]class Signal(collection.Item):
"""Signal configuration for a session."""