# pmacv3 ## Overview This is a driver for the pmacV3 motion controller with the SINQ communication protocol. It is based on the sinqMotor shared library (https://git.psi.ch/sinq-epics-modules/sinqmotor). The header files contain detailed documentation for all public functions. The headers themselves are exported when building the library to allow other drivers to depend on this one. ## Usage in IOC shell pmacv3 exposes the following IOC shell functions (all in pmacv3Controller.cpp): - `pmacv3Controller`: Create a new controller object. - `pmacv3Axis`: Create a new axis object. The function arguments are documented directly within the source code or are available from the help function of the IOC shell. ## Database The pmacV3 module provides additional PVs in the database template db/pmacv3.db. It can be parametrized with the `dbLoadTemplate` function from the IOC shell: ``` require sinqMotor, y.y.y # The sinqMotor module is needed for the pmacv3 module. The version y.y.y is defined in the Makefile (line sinqMotor_VERSION=x.x.x) require pmacv3, x.x.x # This is the three-digit version number of the pmacv3 module dbLoadTemplate "motor.substitutions" ``` The substitutions file can be concatenated with that of sinqMotor: ``` file "$(sinqMotor_DB)/sinqMotor.db" { pattern ... } file "$(pmacv3_DB)/pmacv3.db" { pattern { AXIS, M} { 1, "lin1"} { 2, "rot1"} } ``` The sinqMotor pattern "..." is documented in https://git.psi.ch/sinq-epics-modules/sinqmotor/-/blob/main/README.md. The other parameters have the following meaning: - `AXIS`: Index of the axis, corresponds to the physical connection of the axis to the MCU - `M`: Name of the motor as shown in EPICS The axis name should correspond to that of the sinqMotor pattern with the same respective index. ## Versioning Please see the documentation for the module sinqMotor: https://git.psi.ch/sinq-epics-modules/sinqmotor/-/blob/main/README.md. ## How to build it Please see the documentation for the module sinqMotor: https://git.psi.ch/sinq-epics-modules/sinqmotor/-/blob/main/README.md.