Skip to content

Commit 995ffab

Browse files
authored
Merge pull request #223 from jlmuir/doc-typo-fixes
Fix typos in motorDeviceDriver.html
2 parents 2c2d70e + af9f8fd commit 995ffab

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

docs/motorDeviceDriver.html

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ <h2 id="Introduction" style="text-align: left">
4747
for new motor drivers.</p>
4848
<p>
4949
The APIs described here are mainly intended to be used with the EPICS motor record.
50-
However the Model 2 and Model 3 drivers are actually independent of the motor record.
50+
However, the Model 2 and Model 3 drivers are actually independent of the motor record.
5151
They implement standard EPICS asyn interfaces, and can in principle be used with
5252
any EPICS records, and do not require the motor record. However, the motor record
5353
currently provides the only "state machine" logic that keeps track of backlash,
54-
enforcing soft limits, etc. Model 2 and 3 drivers to permit access to controller-specific
55-
features that the motor record does not support, and this is typicaly implemented
56-
using standard EPICS records (ao, ai, bo, bi, etc.)</p>
54+
enforcing soft limits, etc. Model 2 and 3 drivers permit access to controller-specific
55+
features that the motor record does not support, and this is typically implemented
56+
using standard EPICS records (ao, ai, bo, bi, etc.).</p>
5757
<h2 id="Model1" style="text-align: left">
5858
Model 1 device and driver support</h2>
5959
<p>
@@ -65,13 +65,13 @@ <h2 id="Model1" style="text-align: left">
6565
<li>The communication channel between device support and driver is custom for the
6666
motor record, and is very limited.</li>
6767
<li>The communication between device support and the driver is assumed to be via device-dependent
68-
strings. Thus, it not suited to register-based controllers, or controllers where
69-
the driver calls a vendor-library, rather than just sending strings to the controller.</li>
70-
<li>Cannot use other records to with the driver, only the motor record. Cannot take
68+
strings. Thus, it is not suited to register-based controllers, or controllers where
69+
the driver calls a vendor library rather than just sending strings to the controller.</li>
70+
<li>Cannot use other records with the driver, only the motor record. Cannot take
7171
advantage of controller-specific features not supported by the motor record.</li>
7272
<li>There is no provision for multi-axis coordination.</li>
7373
<li>There is only a single thread per controller <i>type</i>. This means that if a
74-
system has, for example, many controllers of a given type then there is only one
74+
system has, for example, many controllers of a given type, then there is only one
7575
polling thread for all of these controllers. This is because the poller must wait
7676
for each response before sending the next query. This can lead to significantly
7777
poorer performance compared to the Model 2 and Model 3 drivers, which have a separate
@@ -89,7 +89,7 @@ <h2 id="Model2" style="text-align: left">
8989
<ul>
9090
<li>Uses standard asyn interfaces to communicate between device support and driver.</li>
9191
<li>There is only a single device-independent device support file (devMotorAsyn.c).</li>
92-
<li>There is a single device-independent driver support file for asyn interfaces (drvMotorAsyn.).</li>
92+
<li>There is a single device-independent driver support file for asyn interfaces (drvMotorAsyn.c).</li>
9393
<li>There is a device-dependent driver file below the asyn one. This driver must implement
9494
a set of functions that the device-independent driver file calls.</li>
9595
<li>Can use other records to talk to driver via asyn interfaces. This allows support
@@ -131,24 +131,24 @@ <h2 id="Model3" style="text-align: left">
131131
</ul>
132132
<p>
133133
The Model 3 C++ API is based on the concept of two types of objects: a motor controller
134-
and one or motor motor axes. The controller object supports the functions that apply
134+
and one or more motor axes. The controller object supports the functions that apply
135135
to the entire controller. The controller supports one or more axes. The axis objects
136136
support the functions for a specific axis. These objects are implemented in the
137-
device-dependent driver. There is a base class for each of these objects, asynMotorControlller
137+
device-dependent driver. There is a base class for each of these objects, asynMotorController
138138
and asynMotorAxis.
139139
</p>
140140
<p>
141141
The asynMotorController base class has methods that handle much of the work in writing
142142
a driver, including implementing the asyn interfaces and calling the appropriate
143143
methods in the axis classes. A basic motor driver derived class will often only
144-
need to implement only the constructor for the controller class, and can just use
144+
need to implement the constructor for the controller class, and can just use
145145
the base class implementation of all other methods in the asynMotorController class.</p>
146146
<p>
147147
The asynMotorAxis base class on the other hand mainly provides dummy methods (asynMotorAxis::move(),
148148
asynMotorAxis::stop(), etc.). The main work in writing a Model 3 driver consists
149149
of implementing these methods in the derived class.</p>
150150
<p>
151-
There are Model 3 drivers in the motor module for the simulation motor, Hytec XXXX,
151+
There are Model 3 drivers in the motor module for the simulation motor, Hytec 8601,
152152
Newport XPS, Parker ACR series controllers (e.g. Aires), and the ACS MCB-4B.</p>
153153
<p>
154154
The ACS MCB-4B is the simplest Model 3 driver, consisting of only 336 lines of well-commented
@@ -172,7 +172,7 @@ <h3 id="asynMotorController" style="text-align: left">
172172
The number of axes on this controller.</li>
173173
<li><code>numParams</code><br />
174174
The number of controller-specific parameters for this controller.&nbsp; If the driver
175-
only implements the standard motor record parameters then this is set to 0.</li>
175+
only implements the standard motor record parameters, then this is set to 0.</li>
176176
<li><code>interfaceMask</code><br />
177177
A bit mask for extra asyn interfaces supported by this controller. It is not necessary
178178
to specify the interfaces that the base class implements, which includes asynOctet,
@@ -181,11 +181,11 @@ <h3 id="asynMotorController" style="text-align: left">
181181
<li><code>interruptMask</code><br />
182182
A bit mask for extra asyn interfaces supported by this controller that will do callbacks
183183
to device support. It is not necessary to specify the interfaces that the base class
184-
implements, which includes asynOctet, asynInt32, asynFloat64, asynFloat64Array,
184+
implements, which include asynOctet, asynInt32, asynFloat64, asynFloat64Array,
185185
and asynGenericPointer. Normally set to 0.</li>
186186
<li><code>asynFlags</code><br />
187187
asyn flags to use when creating the asyn port. This is normally (ASYN_CANBLOCK |
188-
ASYN_MULTIDEVICE). ASYN_CANBLOCK means that the driver is "slow" and asynchonous
188+
ASYN_MULTIDEVICE). ASYN_CANBLOCK means that the driver is "slow" and asynchronous
189189
device support must be used. ASYN_MULTIDEVICE means that the device supports more
190190
than one asyn address, i.e. more than one motor axis.</li>
191191
<li><code>autoConnect</code><br />

0 commit comments

Comments
 (0)