Skip to content

Commit

Permalink
Merge 29c30cd into a94a789
Browse files Browse the repository at this point in the history
  • Loading branch information
Insomnia1437 authored Apr 4, 2024
2 parents a94a789 + 29c30cd commit 620c88a
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 18 deletions.
33 changes: 17 additions & 16 deletions docs/source/asynDriver.rst
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ most influential.

- Dirk developed StreamDevice, which has a single device support model, but supports
arbitrary low level message based drivers, i.e. GPIB, serial, etc.
- **Jun-ichi Odagare**
- **Jun-ichi Odagiri**

- Jun-ichi developed NetDev, a system that provides EPICS device support for network
based devices. It has a single device support model, but provides a general framework
Expand Down Expand Up @@ -414,7 +414,7 @@ Queuing services
than the current port timeout value this larger timeout from the pasynUser is used
instead.

blockProcessCallback is a request to prevent acccess to a device or port by other
blockProcessCallback is a request to prevent access to a device or port by other
asynUsers between queueRequests. blockProcessCallback can be called from a processCallback
or when the asynUser has no request queued. When called from processCallback blocking
starts immediately, otherwise blocking starts the next time processCallback is called.
Expand Down Expand Up @@ -504,11 +504,11 @@ Interrupt services
the request after interruptEnd is called.

Many standard interfaces, e.g. asynInt32, provide methods registerInterruptUser,
cancelInterruptUser. These interfaces also provide an auxilliary interface, e.g.
cancelInterruptUser. These interfaces also provide an auxiliary interface, e.g.
asynInt32Base, and code which implements registerInterruptUser and cancelInterruptUser.

On operating systems like vxWorks or RTEMS interruptStart,interruptEnd MUST NOT
be called from interupt level.
be called from interrupt level.

Timestamp services
..................
Expand Down Expand Up @@ -696,7 +696,7 @@ An asynUser has the following features:

- An asynUser is the means by which asynManager manages multiple requests for accessing
a port.
- processCallback,which is used by queueRequest described below, is the addresss
- processCallback,which is used by queueRequest described below, is the address
of a user supplied callback routine.
- timeoutCallback is the address of caller supplied callback that will be called
if a queueRequest remains on the queue too long.
Expand Down Expand Up @@ -803,7 +803,7 @@ asynDriver.h describes the following:
- asynStatus - An enum that describes the status returned by many methods.
- asynException - An enum that describes exceptions.
- asynQueuePriority - An enum that describes the queue priorities.
- asynUser - A struture that contains generic information and is the "handle" for calling most methods.
- asynUser - A structure that contains generic information and is the "handle" for calling most methods.
- asynInterface - a structure that describes an interface.
- userCallback - a typedef for the user process callback function described above.
- exceptionCallback - a typedef for a user callback to be called when exceptions occur.
Expand Down Expand Up @@ -838,7 +838,7 @@ method is expected to write a message into pasynUser->errorMessage.
supplied buffer is too small. Whenever possible, low level drivers should be written
so that the user can read input in small pieces.
* - asynError
- Some other error occured.
- Some other error occurred.
* - asynDisconnected
- The request failed because the port is not connected.
* - asynDisabled
Expand Down Expand Up @@ -947,7 +947,7 @@ asynManager:duplicateAsynUser) and asynManager:freeAsynUser.

> 0.0 Wait for up to timeout seconds for the I/O to complete

= 0.0 Peform any I/O that can be done without blocking. Return timeout error if
= 0.0 Perform any I/O that can be done without blocking. Return timeout error if
no I/O can be done without blocking.

< 0.0 Infinite timeout. Wait forever for I/O to complete.
Expand Down Expand Up @@ -1212,7 +1212,7 @@ This is the main interface for communicating with asynDriver.
callback is active when cancelRequest is called than cancelRequest will not return
until the callback completes.
* - blockProcessCallback / unblockProcessCallback
- blockProcessCallback is a request to prevent acccess to a device or port by other
- blockProcessCallback is a request to prevent access to a device or port by other
asynUsers between queueRequests. blockProcessCallback can be called from a processCallback
or when the asynUser has no request queued. When called from processCallback blocking
starts immediately, otherwise blocking starts the next time processCallback is called.
Expand Down Expand Up @@ -1321,7 +1321,7 @@ This is the main interface for communicating with asynDriver.
supports interrupts. pasynPvt must be the address of a void * that will be given
a value by registerInterruptSource. This argument is passed interruptStart and interruptEnd.
* - getInterruptPvt
- Any code that wants to call createInterruptNode but does not know the adresss of
- Any code that wants to call createInterruptNode but does not know the address of
pasynPvt can find it via this method. The caller must be connected to a device,
i.e. must have called connectDevice. If the caller is not connected, getInterruptPvt
returns asynError.
Expand All @@ -1341,7 +1341,7 @@ This is the main interface for communicating with asynDriver.
will block forever.
* - interruptStart / interruptEnd
- The code that implements interrupts is interface dependent. The only service asynManager
provides is a thread-safe implemention of the user list. When the code wants to
provides is a thread-safe implementation of the user list. When the code wants to
call the callback specified in the calls to registerInterruptUser, it calls interruptStart
to obtain the list of callbacks. When it is done it calls interruptEnd. If any requests
are made to addInterruptUser/removeInterruptUser between the calls to interruptStart
Expand Down Expand Up @@ -2002,7 +2002,7 @@ for:
Note that hardware may have registers with smaller sizes, e.g. 16 bit registers.
The standard interfaces can still be used by setting the unused bits to 0.

For all of these interfaces a default implementation and a synchronous inplementation
For all of these interfaces a default implementation and a synchronous implementation
are provided. Let's use Int32 as an example.

- asynInt32 - An interface with methods: read, write, getBounds, registerInterruptUser,
Expand Down Expand Up @@ -3124,7 +3124,7 @@ asynInterposeFlush
~~~~~~~~~~~~~~~~~~
This can be used to simulate flush processing for asynOctet if the port driver doesn't
provide support for flush. It just reads and discards characters until no more characters
arive before timeout seconds have occured. It is started by the shell command:
arrive before timeout seconds have occurred. It is started by the shell command:
::

asynInterposeFlushConfig port addr timeout
Expand Down Expand Up @@ -4749,7 +4749,7 @@ where
- priority

- In integer specifying the priority of the portThread. A value of 0
will result in a defalt value being assigned
will result in a default value being assigned
- noAutoConnect

- Zero or missing indicates that portThread should automatically
Expand Down Expand Up @@ -5505,7 +5505,8 @@ Example: testAsynIPPortClient cars.uchicago.edu:80 "GET / HTTP/1.0" "\n\n"

The example resides in <top>/testAsynPortClientApp.

testAsynPortDriverApp</h3>
testAsynPortDriverApp
~~~~~~~~~~~~~~~~~~~~~

This test demonstrates how to write a driver using the asynPortDriver C++ class.
It consists of a simple digital oscilloscope simulator. When the vertical gain changes
Expand Down Expand Up @@ -5697,7 +5698,7 @@ files for the stream package and for any needed ASYN drivers. There are two ways
that this can be done:

If you are building your application database definition file from the application
Makefile you specify the aditional database definitions there (uncomment the lines
Makefile you specify the additional database definitions there (uncomment the lines
appropriate to your application):
::

Expand Down
2 changes: 1 addition & 1 deletion docs/source/asynPortClient.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,5 @@ port drivers without running an IOC. This currently contains a single test appli
testAsynIPPortClient.cpp. This program creates an asynIPPort driver, and uses the
command line arguments to set the hostInfo string, a single command string to send
to the server, and optionally the input and output EOS. It then prints out the response
from the server. There are 3 example shell scipts that show how to use testAsynIPPortClient
from the server. There are 3 example shell scripts that show how to use testAsynIPPortClient
to communicate with a Web server, XPS motor controller, and a telnet host respectively.
2 changes: 1 addition & 1 deletion docs/source/asynPortDriver.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ to this new value. The sequence of operations in the driver can be summarized as
#. When operation is complete, call the registered callbacks for each changed parameter.

asynPortDriver provides methods to simplify the above sequence, which must be implemented
for each of the often many parameters that the driver supports. Each parameter is
for each of the many parameters that the driver supports. Each parameter is
assigned a number, which is the value in the pasynUser->reason field that asyn
clients pass to the driver when reading or writing that parameter. asynPortDriver
maintains a table of parameter values, associating each parameter number with a
Expand Down

0 comments on commit 620c88a

Please sign in to comment.