diff --git a/docs/motorDeviceDriver.html b/docs/motorDeviceDriver.html
index 2a4ada64..33340bda 100644
--- a/docs/motorDeviceDriver.html
+++ b/docs/motorDeviceDriver.html
@@ -47,13 +47,13 @@
for new motor drivers.
The APIs described here are mainly intended to be used with the EPICS motor record.
- However the Model 2 and Model 3 drivers are actually independent of the motor record.
+ However, the Model 2 and Model 3 drivers are actually independent of the motor record.
They implement standard EPICS asyn interfaces, and can in principle be used with
any EPICS records, and do not require the motor record. However, the motor record
currently provides the only "state machine" logic that keeps track of backlash,
- enforcing soft limits, etc. Model 2 and 3 drivers to permit access to controller-specific
- features that the motor record does not support, and this is typicaly implemented
- using standard EPICS records (ao, ai, bo, bi, etc.)
+ enforcing soft limits, etc. Model 2 and 3 drivers permit access to controller-specific
+ features that the motor record does not support, and this is typically implemented
+ using standard EPICS records (ao, ai, bo, bi, etc.).
Model 1 device and driver support
@@ -65,13 +65,13 @@
The communication channel between device support and driver is custom for the
motor record, and is very limited.
The communication between device support and the driver is assumed to be via device-dependent
- strings. Thus, it not suited to register-based controllers, or controllers where
- the driver calls a vendor-library, rather than just sending strings to the controller.
- Cannot use other records to with the driver, only the motor record. Cannot take
+ strings. Thus, it is not suited to register-based controllers, or controllers where
+ the driver calls a vendor library rather than just sending strings to the controller.
+ Cannot use other records with the driver, only the motor record. Cannot take
advantage of controller-specific features not supported by the motor record.
There is no provision for multi-axis coordination.
There is only a single thread per controller type. This means that if a
- system has, for example, many controllers of a given type then there is only one
+ system has, for example, many controllers of a given type, then there is only one
polling thread for all of these controllers. This is because the poller must wait
for each response before sending the next query. This can lead to significantly
poorer performance compared to the Model 2 and Model 3 drivers, which have a separate
@@ -89,7 +89,7 @@
- Uses standard asyn interfaces to communicate between device support and driver.
- There is only a single device-independent device support file (devMotorAsyn.c).
- - There is a single device-independent driver support file for asyn interfaces (drvMotorAsyn.).
+ - There is a single device-independent driver support file for asyn interfaces (drvMotorAsyn.c).
- There is a device-dependent driver file below the asyn one. This driver must implement
a set of functions that the device-independent driver file calls.
- Can use other records to talk to driver via asyn interfaces. This allows support
@@ -131,24 +131,24 @@
The Model 3 C++ API is based on the concept of two types of objects: a motor controller
- and one or motor motor axes. The controller object supports the functions that apply
+ and one or more motor axes. The controller object supports the functions that apply
to the entire controller. The controller supports one or more axes. The axis objects
support the functions for a specific axis. These objects are implemented in the
- device-dependent driver. There is a base class for each of these objects, asynMotorControlller
+ device-dependent driver. There is a base class for each of these objects, asynMotorController
and asynMotorAxis.
The asynMotorController base class has methods that handle much of the work in writing
a driver, including implementing the asyn interfaces and calling the appropriate
methods in the axis classes. A basic motor driver derived class will often only
- need to implement only the constructor for the controller class, and can just use
+ need to implement the constructor for the controller class, and can just use
the base class implementation of all other methods in the asynMotorController class.
The asynMotorAxis base class on the other hand mainly provides dummy methods (asynMotorAxis::move(),
asynMotorAxis::stop(), etc.). The main work in writing a Model 3 driver consists
of implementing these methods in the derived class.
- There are Model 3 drivers in the motor module for the simulation motor, Hytec XXXX,
+ There are Model 3 drivers in the motor module for the simulation motor, Hytec 8601,
Newport XPS, Parker ACR series controllers (e.g. Aires), and the ACS MCB-4B.
The ACS MCB-4B is the simplest Model 3 driver, consisting of only 336 lines of well-commented
@@ -172,7 +172,7 @@
The number of axes on this controller.
numParams
The number of controller-specific parameters for this controller. If the driver
- only implements the standard motor record parameters then this is set to 0.
+ only implements the standard motor record parameters, then this is set to 0.
interfaceMask
A bit mask for extra asyn interfaces supported by this controller. It is not necessary
to specify the interfaces that the base class implements, which includes asynOctet,
@@ -181,11 +181,11 @@
interruptMask
A bit mask for extra asyn interfaces supported by this controller that will do callbacks
to device support. It is not necessary to specify the interfaces that the base class
- implements, which includes asynOctet, asynInt32, asynFloat64, asynFloat64Array,
+ implements, which include asynOctet, asynInt32, asynFloat64, asynFloat64Array,
and asynGenericPointer. Normally set to 0.
asynFlags
asyn flags to use when creating the asyn port. This is normally (ASYN_CANBLOCK |
- ASYN_MULTIDEVICE). ASYN_CANBLOCK means that the driver is "slow" and asynchonous
+ ASYN_MULTIDEVICE). ASYN_CANBLOCK means that the driver is "slow" and asynchronous
device support must be used. ASYN_MULTIDEVICE means that the device supports more
than one asyn address, i.e. more than one motor axis.
autoConnect