Substantial rework of the driver after CAMEA testing showed various
flaws.
This commit is contained in:
45
README.md
45
README.md
@ -1,15 +1,48 @@
|
||||
# pmacV3
|
||||
# pmacv3
|
||||
|
||||
## Overview
|
||||
|
||||
This is a driver for the PMac V3 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.
|
||||
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):
|
||||
- `pmacV3CreateController`: Create a new controller object.
|
||||
- `pmacV3CreateAxis`: Create a new axis object.
|
||||
The function arguments are documented directly within the source code.
|
||||
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
|
||||
|
||||
|
Reference in New Issue
Block a user