EPICS PVAccess server for a LabJack U3 device, implemented with epicsdev.
Main server entry point: labjack_u3/main.py
Phoebus screen generator: screens/generate_screen.py
- U3 initialization and I/O configuration from
FIO/EIOstrings - Analog readback:
AIN_HV(high-voltage analog inputs)AIN_LV(low-voltage analog inputs)
- Analog outputs:
DAC0,DAC1
- Digital I/O read/write (
DIO*), based on configured digital channels - Pulse helpers:
PulseselectorPulseFIO*Pars/PulseEIO*ParspulseTick
- PWM controls:
PWM_period,PWM_multiplier,PWM_pulseWidth
- Runtime/status:
server,sleep,hardPoll,dateTime,tempU3,rps
- Python 3.10+
epicsdevp4pLabJackPython(moduleu3)phoebusgen(for screen generation)
Typical usage:
python -m labjack_u3
Useful options:
-d, --devicedevice prefix base (default:labjacku3_)-i, --indexdevice index (default:0)--fioFIO configuration string (default:AAAAaDTC)--eioEIO configuration string (default:aaaaDDDD)-vincrease verbosity
Example:
python -m labjack_u3 -d labjacku3_ -i 0 --fio AAAAaDTC --eio aaaaDDDD -v
Default PV prefix becomes:
labjacku3_0:
Character codes used in --fio and --eio:
A= high-voltage analog inputa= low-voltage analog inputD= digital I/OT= timerC= counter
Only channels configured as digital are exposed as DIO* PVs.
Generate .bob file:
python screens/generate_screen.py
Optional arguments:
-t, --titlescreen titleprefixPV prefix macro/value (default:$(DEV):)
Example:
python screens/generate_screen.py -t "LabJack U3" "$(DEV):"
Output file:
- If
LabJackPythonis missing, startup exits with an error. - The server uses the standard
epicsdevcontrol PVs (server,sleep, autosave/recall integration, put logging).