Source code for pyipcmini.functions.ion_pump
##########################################################################################
#
# Class for all functions of Agilent IPCMini ion pump controller.
#
##########################################################################################
"""Class for all functions of Agilent IPCMini controller."""
from __future__ import annotations
import logging
from typing import TYPE_CHECKING
from .ion_pump_read_functions import PumpReadFunctions
from .ion_pump_set_functions import PumpSetFunctions
if TYPE_CHECKING:
import serial
[docs]class IonPump:
"""Class for all functions of Agilent IPCMini controller."""
def __init__(self, serial_connection: serial.Serial) -> None:
"""Initialize IonPump.
Parameters
----------
serial_connection : serial.Serial
The USB serial connection for the IPCMini.
"""
self.logger = logging.getLogger("IonPump")
self.logger.debug("__init__")
self.read_functions = PumpReadFunctions(serial_connection)
self.set_functions = PumpSetFunctions(serial_connection)
[docs] def list_read_function_labels(self) -> int:
"""List all read function labels available.
Parameters
----------
int
The list of available read functions keys.
"""
self.logger.debug("list_read_function_labels")
return self.read_functions.dic_read_functions.keys()
[docs] def list_set_function_labels(self) -> int:
"""List all set function labels available.
Parameters
----------
int
The list of available set functions keys.
"""
self.logger.debug("list_set_function_labels")
return self.set_functions.dic_set_functions.keys()
##########################################################################################
##########################################################################################
##########################################################################################
# Direct case
##########################################################################################
if __name__ == "__main__":
import serial
logging.basicConfig(level=logging.DEBUG, format="%(name)s: %(message)s")
logger_main = logging.getLogger("__main__")
PORT = "/dev/ttyUSB0"
BAUD = 9600
serial_conn = serial.Serial(port=PORT, baudrate=BAUD, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
serial_conn.timeout = 1
serial_conn.flushInput()
pump = IonPump(serial_connection=serial_conn)
measured_pressure = pump.read_functions.read_pressure()
measured_current = pump.read_functions.read_current_measured()
logger_main.debug("Pressure is %.2E mBar and current %.2E A.", measured_pressure, measured_current)
serial_conn.close()