Update README.md
This commit is contained in:
32
README.md
32
README.md
@ -2,30 +2,30 @@
|
||||
|
||||
## Overview
|
||||
|
||||
This library offers base classes for EPICS motor drivers ('sinqAxis' and 'sinqController') of PSI SINQ. These classes are extensions of the classes 'asynMotorAxis' and 'asynMotorController' from the 'asynMotor' framework (https://github.com/epics-modules/motor/tree/master/motorApp/MotorSrc) and bundle some common functionalities.
|
||||
This library offers base classes for EPICS motor drivers (`sinqAxis` and `sinqController`) of PSI SINQ. These classes are extensions of the classes `asynMotorAxis` and `asynMotorController` from the `asynMotor` framework (https://github.com/epics-modules/motor/tree/master/motorApp/MotorSrc) and bundle some common functionalities.
|
||||
|
||||
## Features
|
||||
|
||||
sinqMotor offers a variety of additional methods for children classes to standardize certain patterns (e.g. writing messages to the IOC shell and the motor message PV). For a detailed description, please see the respective function documentation in the .h-file. All of these functions can be overwritten manually if e.g. a completely different implementation of 'poll' is required
|
||||
sinqMotor offers a variety of additional methods for children classes to standardize certain patterns (e.g. writing messages to the IOC shell and the motor message PV). For a detailed description, please see the respective function documentation in the .h-file. All of these functions can be overwritten manually if e.g. a completely different implementation of `poll` is required
|
||||
|
||||
### sinqController
|
||||
- 'stringifyAsynStatus': Convert the enum 'asynStatus' into a human-readable string.
|
||||
- 'errMsgCouldNotParseResponse': Write a standardized message if parsing a device response failed
|
||||
- 'paramLibAccessFailed': Write a standardized message if accessing the parameter library failed
|
||||
- `stringifyAsynStatus`: Convert the enum `asynStatus` into a human-readable string.
|
||||
- `errMsgCouldNotParseResponse`: Write a standardized message if parsing a device response failed
|
||||
- `paramLibAccessFailed`: Write a standardized message if accessing the parameter library failed
|
||||
|
||||
### sinqAxis
|
||||
- 'atFirstPoll': This function is executed once before the first poll. If it returns anything but 'asynSuccess', it retries.
|
||||
- 'poll': This is a wrapper around doPoll which performs some bookkeeping tasks before and after calling doPoll:
|
||||
Before calling 'doPoll':
|
||||
- Try to execute 'atFirstPoll' once (and retry, if that failed)
|
||||
After calling 'doPoll':
|
||||
- Reset 'motorStatusProblem_', 'motorStatusCommsError_' and 'motorMessageText_' if 'doPoll' returned 'asynSuccess'
|
||||
- Run 'callParamCallbacks'
|
||||
- Return the status of 'doPoll'
|
||||
- 'doPoll': This is an empty function which should be overwritten by concrete driver implementations.
|
||||
- `atFirstPoll`: This function is executed once before the first poll. If it returns anything but `asynSuccess`, it retries.
|
||||
- `poll`: This is a wrapper around `doPoll` which performs some bookkeeping tasks before and after calling `doPoll`:
|
||||
Before calling `doPoll`:
|
||||
- Try to execute `atFirstPoll` once (and retry, if that failed)
|
||||
After calling `doPoll`:
|
||||
- Reset `motorStatusProblem_`, `motorStatusCommsError_` and `motorMessageText_` if `doPoll` returned `asynSuccess`
|
||||
- Run `callParamCallbacks`
|
||||
- Return the status of `doPoll`
|
||||
- `doPoll`: This is an empty function which should be overwritten by concrete driver implementations.
|
||||
|
||||
## How to build it
|
||||
|
||||
The makefile in the top directory includes all necessary steps for compiling a shared library together with the header files into '/ioc/modules' (using the PSI EPICS build system).Therefore it is sufficient to run 'make install -f Makefile' from the terminal. If you want to compile a new version, adjust the entry 'LIBVERSION' accordingly.
|
||||
The makefile in the top directory includes all necessary steps for compiling a shared library together with the header files into `/ioc/modules` (using the PSI EPICS build system).Therefore it is sufficient to run `make install -f Makefile` from the terminal. If you want to compile a new version, adjust the entry `LIBVERSION` accordingly.
|
||||
|
||||
To use the library when writing a concrete motor driver, include it in the makefile of your application /library the same way as other libraries such as e.g. 'asynMotor' by adding 'REQUIRED+=sinqMotor' to your Makefile.
|
||||
To use the library when writing a concrete motor driver, include it in the makefile of your application /library the same way as other libraries such as e.g. `asynMotor` by adding `REQUIRED+=sinqMotor` to your Makefile.
|
||||
|
Reference in New Issue
Block a user