diff --git a/.buildinfo b/.buildinfo index 12a14a42f..5961bf457 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 582e292e2d15c53fe810804add915320 +config: 2970c865730e9c31a9bae7db6c9ac6c1 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/asynDriver.doctree b/.doctrees/asynDriver.doctree index 490781ac9..0245cff4c 100644 Binary files a/.doctrees/asynDriver.doctree and b/.doctrees/asynDriver.doctree differ diff --git a/.doctrees/asynPortClient.doctree b/.doctrees/asynPortClient.doctree index 3438c7d5d..3867a63b7 100644 Binary files a/.doctrees/asynPortClient.doctree and b/.doctrees/asynPortClient.doctree differ diff --git a/.doctrees/asynPortDriver.doctree b/.doctrees/asynPortDriver.doctree index cacb94d98..027a64e28 100644 Binary files a/.doctrees/asynPortDriver.doctree and b/.doctrees/asynPortDriver.doctree differ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 0bffeb27e..55274bb78 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/HowToDoSerial.html b/HowToDoSerial.html index 1251af09b..f79dab6e9 100644 --- a/HowToDoSerial.html +++ b/HowToDoSerial.html @@ -16,7 +16,7 @@ - + @@ -728,7 +728,7 @@
© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
diff --git a/_sources/asynDriver.rst.txt b/_sources/asynDriver.rst.txt index 35cfe5fec..f98eb9267 100644 --- a/_sources/asynDriver.rst.txt +++ b/_sources/asynDriver.rst.txt @@ -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 @@ -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. @@ -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 .................. @@ -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. @@ -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. @@ -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 @@ -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. @@ -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. @@ -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. @@ -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 @@ -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, @@ -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 @@ -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 @@ -5505,7 +5505,8 @@ Example: testAsynIPPortClient cars.uchicago.edu:80 "GET / HTTP/1.0" "\n\n" The example resides inJun-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 @@ -888,7 +890,7 @@
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. @@ -973,10 +975,10 @@
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.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.
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.
asynError
Some other error occured.
Some other error occurred.
asynDisconnected
The request failed because the port is not connected.
> 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.
@@ -1750,7 +1752,7 @@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. @@ -1879,7 +1881,7 @@
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.
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 @@ -2657,7 +2659,7 @@
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, @@ -3994,7 +3996,7 @@
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
priority
In integer specifying the priority of the portThread. A value of 0 -will result in a defalt value being assigned
noAutoConnect
@@ -6432,7 +6434,9 @@Usage: testAsynIPPortClient hostInfo outputString [outputEos] [inputEos]
Example: testAsynIPPortClient cars.uchicago.edu:80 “GET / HTTP/1.0” “nn”
The example resides in <top>/testAsynPortClientApp.
-testAsynPortDriverApp</h3>
+ +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 the driver does callbacks on the enum choices for the vertical volts/division. This @@ -6454,10 +6458,10 @@
This application contains 3 test programs that use UDP IP broadcast messages.
This program uses drvAsynIPPort to send UDP broadcast messages on port 37747. The message is “in”. It then listens for any responses. If there are NSLS electrometers @@ -6465,14 +6469,14 @@
testBroadcastAsyn.c
This program does the same as testBroadcastAsyn.c but uses native socket calls rather than drvAsynIPort.
diff --git a/doxygen.html b/doxygen.html index bb54f9bf2..3a3321334 100644 --- a/doxygen.html +++ b/doxygen.html @@ -16,7 +16,7 @@ - + @@ -94,7 +94,7 @@This program is used to test the behavior of devices in the presence of large amounts of broadcast traffic. It should be used with caution, since it can send a large @@ -6486,7 +6490,7 @@
testBroadcastBurst.
- testConnectApp
+testConnectApp
This application can be used to test connection management. It connects to a device with drvAsynIPPort and periodically writes to it in a background thread. Depending on whether the device is connected error messages will be printed. The device can @@ -6502,7 +6506,7 @@
testConnectApp< There is no medm screen for this test.
- testEpicsApp
+testEpicsApp
This test includes example asyn port drivers for the asynInt32 and asynUInt32Digital interfaces. Both drivers also implement the asynFloat64 interface for controlling the update rate. The testEpicsApp application also uses the asynOctet echoDriver @@ -6542,7 +6546,7 @@
testEpicsApp
- testErrorsApp
+testErrorsApp
This tests error handling in standard asyn device support. The user can control the status and severity for write operations, read operations, and interrupt callbacks. It tests all of the interfaces (asynInt32, asynInt64, asynUInt32Digital, asynFloat64, @@ -6573,9 +6577,9 @@
testErrorsApp
- Install and Build
+Install and Build
- Install and Build asynDriver
+Install and Build asynDriver
After obtaining a copy of the distribution, it must be installed and built for use at your site. These steps only need to be performed once for the site (unless versions of the module running under different releases of EPICS and/or the other required @@ -6604,7 +6608,7 @@
Install and Build a
- Using asynDriver Components with an EPICS iocCore Application
+Using asynDriver Components with an EPICS iocCore Application
Since asynDriver does NOT provide support for specific devices an application must obtain device specific support elsewhere. This section only explains how to include asynDriver components.
@@ -6622,7 +6626,7 @@Using asynDriver Co 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):
diff --git a/devGpib.html b/devGpib.html index 860685983..f00032eb8 100644 --- a/devGpib.html +++ b/devGpib.html @@ -16,7 +16,7 @@ - + @@ -1645,7 +1645,7 @@diff --git a/asynTimeStampSupport.html b/asynTimeStampSupport.html index e72c9b866..e606f3b13 100644 --- a/asynTimeStampSupport.html +++ b/asynTimeStampSupport.html @@ -16,7 +16,7 @@ - + @@ -629,7 +629,7 @@include "asyn.dbd" #include "drvAsynSerialPort.dbd" @@ -6659,7 +6663,7 @@Using asynDriver Co
- License Agreement
+License Agreement
diff --git a/asynRecordControl.html b/asynRecordControl.html index 4dc0406c0..53da91735 100644 --- a/asynRecordControl.html +++ b/asynRecordControl.html @@ -16,7 +16,7 @@ - + @@ -243,7 +243,7 @@diff --git a/asynRecord.html b/asynRecord.html index 74b837c28..741f9d42c 100644 --- a/asynRecord.html +++ b/asynRecord.html @@ -16,7 +16,7 @@ - + @@ -1563,7 +1563,7 @@Copyright (c) 2002 University of Chicago All rights reserved. asynDriver is distributed subject to the following license conditions: @@ -6740,7 +6744,7 @@License Agreement
diff --git a/asynPortClient.html b/asynPortClient.html index 8ba89b864..f57c3902e 100644 --- a/asynPortClient.html +++ b/asynPortClient.html @@ -16,7 +16,7 @@ - + @@ -133,7 +133,7 @@© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
Examples 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. @@ -150,7 +150,7 @@
Examples
diff --git a/asynPortDriver.html b/asynPortDriver.html index 8ece965cf..89e9decdf 100644 --- a/asynPortDriver.html +++ b/asynPortDriver.html @@ -16,7 +16,7 @@ - + @@ -114,7 +114,7 @@© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
Overview
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 @@ -534,7 +534,7 @@
testAsynPortDriver.adl
© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
Example #2
© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
asynOctet I/O screen, asynOctet.adl
© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
Result 9. TSE=-2, SCAN=I/O Intr, user-defined timestamp source=Yes.
© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
License Agreement
© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
Doxygen document
diff --git a/genindex.html b/genindex.html index 6652ece3b..0b3678bc4 100644 --- a/genindex.html +++ b/genindex.html @@ -15,7 +15,7 @@ - + @@ -92,7 +92,7 @@© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
Index
diff --git a/index.html b/index.html index 427ac090f..b2c4b625a 100644 --- a/index.html +++ b/index.html @@ -16,7 +16,7 @@ - + @@ -213,6 +213,7 @@© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
Table of ContentstestApp
© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.
diff --git a/search.html b/search.html index e0aab2a35..08e2cf347 100644 --- a/search.html +++ b/search.html @@ -16,7 +16,7 @@ - + @@ -100,7 +100,7 @@© Copyright 2023, Mark Rivers. - Last updated on 2024-February-05. + Last updated on 2024-May-30.