MEASURE_VOLTAGE
Query an instrument's measured output voltage, such as a DMM or power supply.Inputs
------
default: DataContainer
Any DataContainer - likely connected to the output of the OPEN_SERIAL block.Params:connection : SerialThe open serial connection with the instrument.Returns:out : Scalar|TextBlobThe measured voltage as a Scalar or an exception error as a TextBlob.
Python Code
import traceback
from typing import Optional, cast
import serial
from flojoy import DataContainer, Scalar, SerialConnection, TextBlob, flojoy
@flojoy(deps={"pyserial": "3.5"}, inject_connection=True)
def MEASURE_VOLTAGE(
connection: SerialConnection, default: Optional[DataContainer] = None
) -> Scalar | TextBlob:
"""Query an instrument's measured output voltage, such as a DMM or power supply.
Inputs
------
default: DataContainer
Any DataContainer - likely connected to the output of the OPEN_SERIAL block.
Parameters
----------
connection: Serial
The open serial connection with the instrument.
Returns
-------
Scalar|TextBlob
The measured voltage as a Scalar or an exception error as a TextBlob.
"""
# Start serial communication with the instrument
set = cast(serial.Serial, connection.get_handle())
if set is None:
raise ValueError("Serial communication is not open")
CMD = "MEASURE:VOLTAGE:DC?\n\r"
set.write(CMD.encode())
resp = set.readline().decode()
try:
resp = float(resp.rstrip("\n"))
except Exception:
print(
"Could not convert instrument response to a float", traceback.format_exc()
)
return TextBlob(resp)
return Scalar(resp)
Example
Having problems with this example app? Join our Discord community and we will help you out!
This app queries an instrument for a voltage measurement once per second, then appends the result to a line graph.