Source code for crappy.inout.opsens

# coding: utf-8

from time import time
from .inout import InOut
from .._global import OptionalModule

try:
  import serial
except (ModuleNotFoundError, ImportError):
  serial = OptionalModule("pyserial")


[docs]class Opsens(InOut): """Sensor class for opsens conditioner.""" def __init__(self, device: str = '/dev/ttyUSB0') -> None: self.device = device def open(self) -> None: self.s = serial.Serial(port=self.device, baudrate=57600) self.send_cmd("meas:rate min") def close(self) -> None: self.s.close() def get_data(self) -> tuple: return time(), float(self.send_cmd("ch1:data? 1")[:-3]) def read_reply(self) -> str: r = '' while r[-2:] != '\x04\n': r += self.s.read() return r def send_cmd(self, cmd: str) -> str: if '\n' in cmd: r = None for c in cmd.split('/n'): r = self.send_cmd(c) return r if cmd: self.s.write(cmd + '\n') return self.read_reply()