diff --git a/Makefile b/Makefile
index 5bf9e4e..1ee8bf4 100644
--- a/Makefile
+++ b/Makefile
@@ -48,6 +48,9 @@ ifneq ($(EPICS_LIBCOM_ONLY),YES)
DIRS += testOutputReadbackApp
testOutputReadbackApp_DEPEND_DIRS = asyn
iocBoot_DEPEND_DIRS += testOutputReadbackApp
+ DIRS += testOutputCallbackApp
+ testOutputCallbackApp_DEPEND_DIRS = asyn
+ iocBoot_DEPEND_DIRS += testOutputCallbackApp
DIRS += testUsbtmcApp
testUsbtmcApp_DEPEND_DIRS = asyn
iocBoot_DEPEND_DIRS += testUsbtmcApp
diff --git a/asyn/asynDriver/asynDriver.h b/asyn/asynDriver/asynDriver.h
index 7f887b1..208a8b7 100644
--- a/asyn/asynDriver/asynDriver.h
+++ b/asyn/asynDriver/asynDriver.h
@@ -23,7 +23,7 @@
/* Version number names similar to those provide by base
* These macros are always numeric */
#define ASYN_VERSION 4
-#define ASYN_REVISION 32
+#define ASYN_REVISION 33
#define ASYN_MODIFICATION 0
#ifdef __cplusplus
diff --git a/asyn/asynDriver/asynManager.c b/asyn/asynDriver/asynManager.c
index b638965..d4ec258 100644
--- a/asyn/asynDriver/asynManager.c
+++ b/asyn/asynDriver/asynManager.c
@@ -186,6 +186,13 @@ struct device {
int addr;
};
+typedef enum portConnectStatus {
+ portConnectSuccess,
+ portConnectDevice,
+ portConnectFindInterface,
+ portConnectDriver
+} portConnectStatus;
+
struct port {
ELLNODE node; /*For asynBase.asynPortList*/
char *portName;
@@ -197,6 +204,8 @@ struct port {
int attributes;
/* The following are for autoConnect*/
asynUser *pasynUser;
+ double secondsBetweenPortConnect;
+ portConnectStatus previousConnectStatus;
/* The following are for asynLockPortNotify */
asynLockPortNotify *pasynLockPortNotify;
void *lockPortNotifyPvt;
@@ -216,8 +225,7 @@ struct port {
epicsTimeStamp timeStamp;
timeStampCallback timeStampSource;
void *timeStampPvt;
- double secondsBetweenPortConnect;
- };
+};
typedef struct queueLockPortPvt {
epicsEventId queueLockPortEvent;
@@ -452,6 +460,18 @@ static void tracePvtFree(tracePvt *ptracePvt)
free(ptracePvt->traceBuffer);
}
+static void reportConnectStatus(port *pport, portConnectStatus status, const char *fmt, ...)
+{
+ va_list args;
+
+ if (pport->previousConnectStatus != status) {
+ pport->previousConnectStatus = status;
+ va_start(args, fmt);
+ pasynTrace->vprint(pport->pasynUser, ASYN_TRACE_ERROR, fmt, args);
+ va_end(args);
+ }
+}
+
static void asynInit(void)
{
int i;
@@ -716,14 +736,14 @@ static void connectAttempt(dpCommon *pdpCommon)
addr = (pdevice ? pdevice->addr : -1);
status = pasynManager->connectDevice(pasynUser,pport->portName,addr);
if(status!=asynSuccess) {
- asynPrint(pasynUser,ASYN_TRACE_ERROR,
+ reportConnectStatus(pport, portConnectDevice,
"%s %d autoConnect connectDevice failed.\n",
pport->portName,addr);
return;
}
pasynInterface = pasynManager->findInterface(pasynUser,asynCommonType,TRUE);
if(!pasynInterface) {
- asynPrint(pasynUser,ASYN_TRACE_ERROR,
+ reportConnectStatus(pport, portConnectFindInterface,
"%s %d autoConnect findInterface for asynCommon failed.\n",
pport->portName,addr);
goto disconnect;
@@ -738,16 +758,19 @@ static void connectAttempt(dpCommon *pdpCommon)
epicsMutexMustLock(pport->synchronousLock);
status = pasynCommon->connect(drvPvt,pasynUser);
epicsMutexUnlock(pport->synchronousLock);
- }
- if(status!=asynSuccess) {
- asynPrint(pasynUser,ASYN_TRACE_ERROR,
- "%s %s %d autoConnect could not connect\n",
- pasynUser->errorMessage,pport->portName,addr);
+ if (status != asynSuccess) {
+ reportConnectStatus(pport, portConnectDriver,
+ "%s %d autoConnect could not connect\n", pport->portName, addr);
+ } else {
+ reportConnectStatus(pport, portConnectSuccess,
+ "%s %d port is now connected\n",
+ pport->portName, addr);
+ }
}
disconnect:
status = pasynManager->disconnect(pasynUser);
if(status!=asynSuccess) {
- asynPrint(pasynUser,ASYN_TRACE_ERROR,
+ asynPrint(pasynUser, ASYN_TRACE_ERROR,
"%s %d autoConnect disconnect failed.\n",
pport->portName,addr);
}
@@ -1954,6 +1977,7 @@ static asynStatus registerPort(const char *portName,
pport->timeStampSource = defaultTimeStampSource;
dpCommonInit(pport,0,autoConnect);
pport->pasynUser = createAsynUser(0,0);
+ pport->previousConnectStatus = portConnectSuccess;
pport->queueLockPortTimeout = DEFAULT_QUEUE_LOCK_PORT_TIMEOUT;
ellInit(&pport->deviceList);
ellInit(&pport->interfaceList);
diff --git a/asyn/asynPortClient/asynPortClient.h b/asyn/asynPortClient/asynPortClient.h
index 0ab5033..50cc121 100644
--- a/asyn/asynPortClient/asynPortClient.h
+++ b/asyn/asynPortClient/asynPortClient.h
@@ -121,7 +121,7 @@ class epicsShareClass asynUInt32DigitalClient : public asynPortClient {
asynUInt32DigitalClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
: asynPortClient(portName, addr, asynUInt32DigitalType, drvInfo, timeout) {
pInterface_ = (asynUInt32Digital *)pasynInterface_->pinterface;
- if (pasynInt32SyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo))
+ if (pasynUInt32DigitalSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo))
throw std::runtime_error(std::string("pasynInt32SyncIO->connect failed"));
};
/** Destructor for asynInt32Client class. Disconnects from port, frees resources. */
diff --git a/asyn/asynPortDriver/asynPortDriver.cpp b/asyn/asynPortDriver/asynPortDriver.cpp
index 13e4921..6384606 100644
--- a/asyn/asynPortDriver/asynPortDriver.cpp
+++ b/asyn/asynPortDriver/asynPortDriver.cpp
@@ -89,7 +89,6 @@ class paramList {
};
/** Constructor for paramList class.
- * \param[in] nValues Number of parameters in the list.
* \param[in] pPort Pointer to asynPortDriver port for this paramList. */
paramList::paramList(asynPortDriver *pPort)
: pasynPortDriver(pPort)
@@ -3231,8 +3230,6 @@ static asynDrvUser ifaceDrvUser = {
Often it is 1 (which is the minimum), but some drivers, for example a
16-channel D/A or A/D would support values > 1.
This controls the number of parameter tables that are created.
- * \param[in] paramTableSize The number of parameters that this driver supports.
- This controls the size of the parameter tables.
* \param[in] interfaceMask Bit mask defining the asyn interfaces that this driver supports.
The bit mask values are defined in asynPortDriver.h, e.g. asynInt32Mask.
* \param[in] interruptMask Bit mask definining the asyn interfaces that can generate interrupts (callbacks).
diff --git a/asyn/devEpics/devAsynFloat64.c b/asyn/devEpics/devAsynFloat64.c
index e039e59..f663b4c 100644
--- a/asyn/devEpics/devAsynFloat64.c
+++ b/asyn/devEpics/devAsynFloat64.c
@@ -27,6 +27,7 @@
#include
- Release 4-32
Mark Rivers, Eric Norum, and Marty
Kraimer
- September 14, 2017
Gasper Jansa (cosyLab) - linuxGpib
support.
This product is available via the open source license
described at the end of this document.
asynDriver is a general purpose facility for interfacing device specific
code to low level drivers. asynDriver allows non-blocking device support that works
@@ -158,10 +270,8 @@
This version provides
The idea of creating asynDriver resulted from many years of experience with writing
device support for serial and GPIB devices. The following individuals have been
@@ -263,11 +371,9 @@
asynDriver is a software layer between device specific code and drivers that communicate
@@ -380,7 +486,7 @@
These are interfaces provided by asynManager or interfaces implemented by all or
@@ -410,7 +516,7 @@
In addition to asynCommon and optionally
@@ -453,7 +559,7 @@
asynOption methods for device configuration
using key/value pairs.
asynManager is an interface and associated code. It is the "heart" of asynDriver
@@ -663,7 +769,7 @@
When a low level driver calls registerPort, it declares if it handles multiple devices.
@@ -683,7 +789,7 @@
asynManager keeps track of the following states:
Low level drivers must call pasynManager:exceptionConnect whenever they connect
to a port or port,addr and exceptionDisconnect whenever they disconnect.
The methods asynManager:report and asynCommon:report can be called by any thread,
@@ -726,7 +832,7 @@
If a driver calls asynManager:registerPort with the ASYN_CANBLOCK attributes bit
@@ -768,11 +874,9 @@
During initialization, port drivers register each communication port as well as
@@ -806,7 +910,7 @@
User code can request access to a port by two methods:
User code requests access to a port by calling:
asynDriver.h describes the following:
Defines the status returned by most methods. If a method returns a status other
@@ -967,7 +1069,7 @@
Defines the exceptions for method exceptionOccurred
This defines the priority passed to queueRequest.
Describes a structure that user code passes to most asynManager and driver methods.
@@ -1205,7 +1307,7 @@
This defines an interface registered with asynPortManager:registerPort or asynManager:interposeInterface.
This is the main interface for communicating with asynDriver.
asynCommon describes the methods that must be implemented by drivers.
asynCommonSyncIO provides a convenient interface for software that needs to perform
@@ -1854,7 +1955,7 @@
asynDrvUser provides methods that allow an asynUser to communicate user specific
@@ -1899,7 +2000,7 @@
This is provided for port drivers that are an asynUser of another port driver. For
@@ -1943,7 +2044,7 @@
asynOption provides a generic way of setting driver specific options. For example
@@ -1974,7 +2075,7 @@
asynDriver provides a trace facility with the following attributes:
These are interfaces for communicating with message based devices, where message
based means that the device communicates via octet strings, i.e. arrays of 8 bit
@@ -2298,7 +2397,7 @@
asynOctet describes the methods implemented by drivers that use octet strings for
@@ -2474,7 +2573,7 @@
asynOctetSyncIO provides a convenient interface for software that needs to perform
@@ -2622,7 +2721,7 @@
asynOctet provides methods for handling end of string (message) processing. It does
@@ -2631,11 +2730,9 @@
This section descibes interfaces for register based devices. Support is provided
@@ -2684,7 +2781,7 @@
Low level register based drivers are normally multi-device. The meaning of addr
@@ -2703,7 +2800,7 @@
Two examples of drivers that might implement and use the interfaces are:
asynInt32 describes the methods implemented by drivers that use integers for communicating
@@ -2869,7 +2966,7 @@
asynInt32SyncIO describes a synchronous interface to asynInt32. The code that calls
@@ -2948,7 +3045,7 @@
asynUInt32Digital describes the methods for communicating via bits of an Int32 register.
asynUInt32DigitalSyncIO describes a synchronous interrace to asynUInt32Digital.
@@ -3217,7 +3314,7 @@
asynFloat64 describes the methods for communicating via IEEE double precision float
@@ -3334,7 +3431,7 @@
asynFloat64SyncIO describes a synchronous interrace to asynFloat64. The code that
@@ -3396,8 +3493,8 @@
asynXXXArray describes the methods for communicating via 8, 16, or 32-bit integers,
or 32 or 64-bit IEEE float values.
asynXXXArraySyncIO describes a synchronous interface to asynXXXArray. The code that
@@ -3587,7 +3684,7 @@
asynEnum describes the methods implemented by drivers to define the enum strings,
@@ -3743,7 +3840,7 @@
asynEnumSyncIO describes a synchronous interface to asynEnum. The code that calls
@@ -3814,7 +3911,7 @@
asynGenericPointer describes the methods for communicating via void* pointers. asyn
@@ -3934,7 +4031,7 @@
asynGenericPointerSyncIO describes a synchronous interrace to asynGenericPointer.
@@ -4012,10 +4109,8 @@
asynStandardInterfacesBase is an interface designed as a convenience to minimize
the amount of code that must be written in the initialization routine of a port
@@ -4030,8 +4125,8 @@
The following is the definition of the asynStandardInterfaces structure. Drivers
will normally have a structure of this type contained in their drvPvt structure.
@@ -4094,8 +4189,8 @@
The following is the definition of the asynStandardInterfacesBase interface.
This can be used to simulate EOS processing for asynOctet if the port driver doesn't
provide EOS support. If an EOS is specified it looks for the eos on each read. It
@@ -4234,8 +4327,8 @@
This command should appear immediately after the command that initializes a port
Some drivers provide configuration options to call this automatically.
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
@@ -4251,10 +4344,8 @@
this command should appear immediately after the command that initializes a port
Generic device support is provided for standard EPICS records. This support should
be usable for a large class of low level register based drivers. For complicated
@@ -4303,8 +4394,8 @@
All of the device support files can call registerInterruptUser for input records.
The callback is used in one of two ways:
The device support for output records on register based interfaces (bo, mbbo, ao,
longout) does an initial read() of the value from the driver in init_record. If
@@ -4346,8 +4437,8 @@
Beginning in asyn R4-19 support was added for asyn port drivers to control the values
of the enum strings, enum values and enum severities in bi, bo, mbbi, and mbbo records.
@@ -4367,8 +4458,8 @@
Beginning in asyn R4-26 support was added for updating output records from driver
interrupt callbacks. This feature allows output records to reflect changes in the
@@ -4384,8 +4475,8 @@
It is possible for the time between driver callbacks to be less than the time for
record processing. asyn device support provides a ring-buffer (FIFO) mechanism to
@@ -4402,9 +4493,9 @@
Beginning in asyn R4-20 support was added for asyn port drivers to set the TIME
field of input records. This is done by setting the TSE field of the record to "-2"
@@ -4417,8 +4508,8 @@
The following support is available:
The following support is available:
The following support is available:
The following support is available:
The following support is available:
- A value is given to val.
- val is written.
The following support is available:
The following support is available:
The generic EPICS device support sets the record alarm status and severity when
errors occur. Beginning in R4-30 the alarmStatus and alarmSeverity fields were added
@@ -4864,10 +4958,8 @@
A special record type asynRecord is provided. Details are described in
asynRecord. This section provides a brief description of how to use it.
- The following reads from a device via octet messages:
- The flow of control is as follows:
- The asynDriver distribution includes code to test asynDriver. It is also an example
- of how to interface to asynManager. The example resides in <top>/testApp and
- contains the following components:
- echoDriver is a port driver that echos messages it receives. It implements asynCommon
- and asynOctet. When asynOctet:write is called it saves the message. When asynOctet:read
- is called, the saved message is returned and the message is flushed. echoDriverInit
- has an argument that determines if it acts like a multiDevice or a single device
- port driver.
- An instance of echoDriver is started via the iocsh command:
- where
- asynDriver: Asynchronous Driver Support - Release Notes
+ asynDriver: Release Notes
+
+ Release 4-33
+
+ January 27, 2018
+
+ devAsynFloat64.c
+
+
+
+ devAsynInt32.c, devAsynUInt32Digital.c, devAsynFloat64.c, devAsynOctet.c
+
+
+
+
+ The callback values are the following. For the longout records (asynInt32 and asynUInt32Digital)
+ and the ao record (asynFloat64) the callback value is N+1 where N the current record
+ value. Thus if one writes 10 to the longout record and NumCallbacks is 5 it will
+ immediately do callbacks with the values 11, 12, 13, 14, 15. For the bo record the
+ value toggles between 0 and 1 for each callback. For the stringout record the value
+ is a string with the format "Value=N". N increments by 1 on each callback as for
+ the longout records. For each output record there is a corresponding input record
+ with SCAN=I/O Intr. If the test is working correctly the output records should always
+ have the same values as the input records.
+ devAsynOctet.c
+
+
+
+ asynManager.c
+
+
+
+ drvAsynIPServerPort.c
+
+
+
+ testIPServerApp
+
+
+
+ drvVXI11.c
+
+
+
+ testErrorsApp
+
+
+
+ asynPortClient
+
+
+
+ OPI screens
+
+
+
+ Documentation
+
+
diff --git a/documentation/asynDriver.html b/documentation/asynDriver.html
old mode 100755
new mode 100644
index e4629d9..2c9c26a
--- a/documentation/asynDriver.html
+++ b/documentation/asynDriver.html
@@ -4,90 +4,202 @@
- asynDriver: Asynchronous Driver Support
+ asynDriver: EPICS Driver Support
+ January 27, 2018
+
Other Contributers
-
- License Agreement
-
+ License Agreement
-
- Contents
-
- Status
-
- Acknowledgments
-
- Overview of asynDriver
-
- Theory of Operation
-
- asynDriver Structures and Interfaces
-
- Standard Message Based Interfaces
- Standard Register Based Interfaces
- asynStandardInterfacesBase
- Standard Interpose Interfaces
-
- Generic Device Support for EPICS records
- asynRecord: Generic Record Support
-
- Example
-
- Test Example
-
- asynGpib
-
- Port Drivers
-
-
- asynPortDriver C++ base class
-
- asynPortClient C++ classes
-
- Diagnostic Aids
-
- Install and Build
-
-
+ Contents
+
+
+
+
+
+
+
+
+
+
-
- Purpose
-
+ Purpose
-
- Status
-
+ Status
@@ -206,10 +316,8 @@
original motivation for the development of asynPortDriver.
-
- Acknowledgments
-
+ Acknowledgments
at difficult code!!!
-
- Overview of asynDriver
-
+
+ Overview of asynDriver
+
Definitions
asynManager uses the Operating System Independent features of EPICS base. It is,
however, independent of record/device support. Thus, it can be used by other code,
e.g. a sequence program.
-
+
Standard Interfaces
asynDrvUser is an interface for communicating
information from device support to a driver without the device support knowing any
details about what is passed.
-
+
Generic Interfaces
+
asynManager
exist above a single port,addr.
-
+
Multiple Device vs Single Device Port Drivers
access to the port prevents access to all addresses on the port.
-
+
Connection Management
+
Protecting a Thread from Blocking
Interface methods registerInterruptUser and cancelInterruptUser must never block.
The registerInterruptUser callback must not block because it could be called by
a non blocking driver.
-
+
portThread
The actual code is more complicated because it unlocks before it calls code outside
asynManager. This means that the queues can be modified and exceptions may occur.
-
- Theory of Operation
-
+
+ Theory of Operation
+
Initialization
calls findInterface to locate the interfaces with which it calls the driver. For
example:
pasynInterface = pasynManager->findInterface(pasynUser,asynOctetType,1);
-
+
Requesting access to a port
not block, e.g. synchronous device support for EPICS records.
-
+
queueRequest - Flow of Control
device support, which returns to record support, which completes record processing.
-
- asynDriver Structures and Interfaces
-
+ asynDriver Structures and Interfaces
@@ -914,7 +1016,7 @@
-
+
asynStatus
-
+
asynException
-
+
asynQueuePriority
-
+
asynUser
-
+
asynInterface
-
+
asynManager
ELLNODE node;
void *drvPvt;
}interruptNode;
-
typedef struct asynManager {
void (*report)(FILE *fp,int details,const char*portName);
asynUser *(*createAsynUser)(userCallback process,userCallback timeout);
@@ -1793,7 +1894,7 @@
-
+
asynCommon
-
+
asynCommonSyncIO
names of this interface. For consistency with the other SyncIO interfaces, connect
calls pasynManager->connectDevice, disconnect calls pasynManager->disconnect,
connectDevice calls asynCommon->connect, and disconnectDevice calls asynCommon->disconnect.
-
+
asynDrvUser
-
+
asynLockPortNotify
-
+
asynOption
-
+
Trace Interface
/*asynTrace is implemented by asynManager*/
/*All asynTrace methods can be called from any thread*/
@@ -2049,7 +2150,7 @@
-
}asynTrace;
epicsShareExtern asynTrace *pasynTrace;
+
asynTrace
-
- Standard Message Based Interfaces
-
+ Standard Message Based Interfaces
by port drivers that implement asynOctet. It's primary purpose is to help with interrupt
support. asynOctetSyncIO provides a synchronous inteface to asynOctet and can be
used by code that is willing to block.
-
+
asynOctet
-
+
asynOctetSyncIO
-
+
End of String Support
will be followed for individual devices. The policy will be determined by the device,
the device support, and the driver.
-
- Standard Register Based Interfaces
-
+
+ Standard Register Based Interfaces
+
Introduction
an example of how to provide support for interrupts.
+
addr - What does it mean for register based interfaces?
array element. For example a 128 bit digital I/O module appears as an array of four
UInt32 registers.
-
+
Example Drivers
is a soft example of a driver that implements asynUInt32Digital.
-
+
asynInt32
-
+
asynInt32SyncIO
-
+
asynUInt32Digital
-
+
asynUInt32DigitalSyncIO
-
+
asynFloat64
-
+
asynFloat64SyncIO
-
- asynXXXArray (where XXX is Int8, Int16, Int32, Float32 or Float64)
+
+ asynXXXArray (XXX=Int8, Int16, Int32, Float32 or Float64)
-
+
asynXXXArraySyncIO
-
+
asynEnum
-
+
asynEnumSyncIO
-
+
asynGenericPointer
-
+
asynGenericPointerSyncIO
-
- asynStandardInterfacesBase
-
+ asynStandardInterfacesBase
to register itself as an interrupt source on one or more of those interfaces. This
can reduce the number of lines of code in the driver initialization routine by a
factor of four or more.
-
- asynStandardInterfaces structure
+
+ asynStandardInterfaces structure
void *enumInterruptPvt;
} asynStandardInterfaces;
-
- asynStandardInterfacesBase interface
+
+ asynStandardInterfacesBase interface
typedef struct asynStandardInterfacesBase {
@@ -4212,12 +4307,10 @@
-
}
...
}
- Standard Interpose Interfaces
-
- asynInterposeEos
+
+ Standard Interpose Interfaces
+
+ asynInterposeEos
- asynInterposeFlush
+
+ asynInterposeFlush
-
- Generic Device Support for EPICS records
-
+ Generic Device Support for EPICS records
For example:
field(DTYP,"asynInt32")
field(INP,"@asyn(portA,0,.1)thisIsForDriver")
-
- asynManager interrupts and EPICS device support
+
+ asynManager interrupts and EPICS device support
is used to append values to the time series.
-
- Initial values of output records
+
+ Initial values of output records
the record in the database contains the following line:
info(asyn:INITIAL_READBACK, "1")
.
-
- Enum values for bi, bo, mbbi, and mbbo records
+
+ Enum values for bi, bo, mbbi, and mbbo records
clients like medm and edm will not change the enum widgets until the window is closed
and reopened, but newer clients like CSS should dynamically change the enum widgets.
-
- Callback updates for output records
+
+ Callback updates for output records
If the value of the info tag is 0 or if the info tag is not present then updates
of output records on interrupt callbacks are disabled.
-
- Buffering of driver callbacks
+
+ Buffering of driver callbacks
support for numeric arrays was added in asyn R4-25. asynOctet support for stringin,
stringout, and waveform records was added in asyn R4-26.
-
+
+
Time stamps
-
was also added for user-supplied timestamp source functions. Timestamp support was
also added to asynPortDriver for the base-class read functions and callback functions.
-
- asynInt32 device support
+
+ asynInt32 device support
device(ai,INST_IO,asynAiInt32,"asynInt32")
@@ -4574,8 +4665,8 @@
-
field(TWST,"twoVal")
field(THST,"threeVal")
}
- asynIntXXXArray device support (XXX=8, 16 or 32)
+
+ asynIntXXXArray device support (XXX=8, 16 or 32)
device(waveform,INST_IO,asynIntXXXArrayWfIn,"asynIntXXXArrayIn")
@@ -4584,8 +4675,8 @@
devAsynIntXXXArray.c provides EPICS device support for drivers that implement interface
asynIntXXXArray. It has support for both reading and writing a waveform. SCAN "I/O
Intr" is supported similar to the aiRecord in devAsynInt32 device support.
-
- asynXXXTimeSeries device support (XXX=Int32 or Float64)
+
+ asynXXXTimeSeries device support (XXX=Int32 or Float64)
device(waveform,INST_IO,asynInt32TimeSeries,"asynInt32TimeSeries")
@@ -4603,8 +4694,8 @@
- devAsynUInt32Digital
+
+ asynUInt32Digital device support
device(bi,INST_IO,asynBiUInt32Digital,"asynUInt32Digital")
@@ -4733,8 +4824,8 @@
-
field(SXVL,"0x6")
field(SVVL,"0x7")
}
- devAsynFloat64 device support
+
+ asynFloat64 device support
device(ai,INST_IO,asynAiFloat64,"asynFloat64")
@@ -4746,7 +4837,9 @@
-
-
- asynFloatXXXArray device support (where XXX=32 or 64)
+
+ asynFloatXXXArray device support (XXX=32 or 64)
device(waveform,INST_IO,asynFloatXXXArrayWfIn,"asynFloatXXXArrayIn")
@@ -4773,8 +4867,8 @@
devAsynFloatXXXArray.c provides EPICS device support for drivers that implement
interface asynFloatXXXArray. It has support for both reading and writing a waveform.
SCAN "I/O Intr" is supported similar to the aiRecord in devAsynInt32 device support.
-
- octet device support
+
+ asynOctet device support
device(stringin,INST_IO,asynSiOctetCmdResponse,"asynOctetCmdResponse")
@@ -4827,8 +4921,8 @@
asynDrvUser. When the record is processed a read request is made. The result is
read into the record.
- Record alarms
+
+ Record alarms
set the record STAT and SEVR fields, regardless of the value of asynUser.auxStatus.
-
- asynRecord: Generic EPICS Record Support
-
+ asynRecord: Generic EPICS Record Support
-
- Example
- #include <asynDriver.h>
-...
-#define BUFFER_SIZE 80
-typedef struct myData {
- epicsEventId done;
- asynOctet *pasynOctet;
- void *drvPvt;
- char buffer[BUFFER_SIZE];
-}myData;
-
-static void queueCallback(asynUser *pasynUser) {
- myData *pmydata = (myData *)pasynUser->userPvt;
- asynOctet *pasynOctet = pmydata->pasynOctet;
- void *drvPvt = pmydata->drvPvt;
- asynStatus status;
- int writeBytes,readBytes;
- int eomReason;
-
- asynPrint(pasynUser,ASYN_TRACE_FLOW,"queueCallback entered\n");
- status = pasynOctet->write(drvPvt,pasynUser,pmydata->buffer,
- strlen(pmydata->buffer),&writeBytes);
- if(status!=asynSuccess) {
- asynPrint(pasynUser,ASYN_TRACE_ERROR,
- "queueCallback write failed %s\n",pasynUser->errorMessage);
- } else {
- asynPrintIO(pasynUser,ASYN_TRACEIO_DEVICE,
- pmydata->buffer,strlen(pmydata->buffer),
- "queueCallback write sent %d bytes\n",writeBytes);
- }
- status = pasynOctet->read(drvPvt,pasynUser,pmydata->buffer,
- BUFFER_SIZE,&readBytes,&eomReason);
- if(status!=asynSuccess) {
- asynPrint(pasynUser,ASYN_TRACE_ERROR,
- "queueCallback read failed %s\n",pasynUser->errorMessage);
- } else {
- asynPrintIO(pasynUser,ASYN_TRACEIO_DEVICE,
- pmydata->buffer,BUFFER_SIZE,
- "queueCallback read returned: retlen %d eomReason 0x%x data %s\n",
- readBytes,eomReason,pmydata->buffer);
- }
- epicsEventSignal(pmydata->done);
-}
-
-static void asynExample(const char *port,int addr,const char *message)
-{
- myData *pmyData;
- asynUser *pasynUser;
- asynStatus status;
- asynInterface *pasynInterface;
-
- pmyData = (myData *)pasynManager->memMalloc(sizeof(myData));
- memset(pmyData,0,sizeof(myData));
- strcpy(pmyData->buffer,message);
- pasynUser = pasynManager->createAsynUser(queueCallback,0);
- pasynUser->userPvt = pmyData;
- status = pasynManager->connectDevice(pasynUser,port,addr);
- if(status!=asynSuccess) {
- printf("can't connect to serialPort1 %s\n",pasynUser->errorMessage);
- exit(1);
- }
- pasynInterface = pasynManager->findInterface(
- pasynUser,asynOctetType,1);
- if(!pasynInterface) {
- printf("%s driver not supported\n",asynOctetType);
- exit(-1);
- }
- pmyData->pasynOctet = (asynOctet *)pasynInterface->pinterface;
- pmyData->drvPvt = pasynInterface->drvPvt;
- pmyData->done = epicsEventCreate(epicsEventEmpty);
- status = pasynManager->queueRequest(pasynUser,asynQueuePriorityLow, 0.0);
- if(status) {
- asynPrint(pasynUser,ASYN_TRACE_ERROR,
- "queueRequest failed %s\n",pasynUser->errorMessage);
- }
- epicsEventWait(pmyData->done);
- status = pasynManager->freeAsynUser(pasynUser);
- if(status) {
- asynPrint(pasynUser,ASYN_TRACE_ERROR,
- "freeAsynUser failed %s\n",pasynUser->errorMessage);
- }
- epicsEventDestroy(pmyData->done);
- pasynManager->memFree(pasynUser->userPvt,sizeof(myData));
-}
-
-
-
- Test Application
- Db/
- test.db
- testBlock.db
-adl/
- test.adl
-src/
- devTestBlock.dbd
- echoDriver.c
- addrChangeDriver.c
- devTestBlock.c
- interposeInterface.c
- echoDriverInit(portName,delay,noAutoConnect,multiDevice)
+
+ asynGpib
+
+- addrChangeDriver is a multidevice driver that is an asynUser of another port driver. - In the example application it connects to echoDriver. An example where this technique - might be used is a port driver for mult-drop serial that connects to a standard - serial port.
-- An instance of addrChangeDriver is started via the iocsh commandL:
-addrChangeDriverInit(portName,lowerPort,addr)-
- where
-- devTestBlock is device support that tests blockProcessCallback. It has device support - for stringin records. The INP field has the syntax:
-field(INP,"@asyn(port,addr,timeout) pvname)-
- where:
-- When the stringin record is processed the following occurs.
-- test.db is a template containing three records: a calc record, which forward links - to a stringout record which forward links to a stringin record. The stringOut record - attaches to the device support supplied by asynOctetWriteRead.c. When the calcRecord - is processed the following happens:
--
-- testBlock.db is a template similar to test.db except that it attached to device - support testBlock instead of asynOctetWriteRead.
-- Executing "medm -x test.adl" produces the display:
--
-- It assumes that an ioc has been started via:
-cd <top>/iocBoot/ioctest -../../bin/solaris-sparc/test st.cmd-
- This starts two versions of echoDriver as port "A" and "B". port A acts as single - device port. port B acts as a multiDevice port that has two devices. For each of - the three possible devices, the st.cmd file starts up two sets of records from test.db - The st.cmd file also loads a set of records from asynTest.db for port A and for - port B and for each of the two devices attached to port B. It also loads a set of - records from asynRecord.db. It starts one version of addrChangeDriver which connects - to port A.
-- It loads six versions of test.db and four versions of testBlock.db The test.adl - file attaches to these database records.
-- GPIB has additional features that are not supported by asynCommon and asynOctet. - asynGpib defines two interfaces.
--
-asynGpibDriver.h contains the following definitions:
/* GPIB Addressed Commands*/ @@ -5237,7 +5084,7 @@-asynStatus (*serialPoll) (void *drvPvt, int addr, double timeout,int *status); asynStatus (*serialPollEnd) (void *drvPvt); };
asynGpib describes the interface for device support code. It provides gpib specific @@ -5303,7 +5150,7 @@
asynGpibPort is the interface that is implemented by gpib drivers, e.g. the VXI-11. @@ -5383,10 +5230,8 @@
@@ -5667,10 +5512,9 @@
The drvAsynIPServerPort driver supports asyn socket servers by listening for TCP/IP - or UDP connections from remote clients. The listener thread then creates a new drvAsynIPPort - port by calling drvAsynIPPortConfigure (or re-uses a disconnected port it previously - created), and calls back any registered asyn clients with the name of the new port. - These asyn clients will typically be socket servers.
+ or UDP connections from remote clients. The creates maxClients drvAsynIPPort port + drivers by calling drvAsynIPPortConfigure at initialization. These ports are named + portName:0, portName:1, etc. where portName is the name passed to drvAsynIPServerPortConfigure.IP server listeners are configured with the drvAsynIPServerPortConfigure command:
@@ -5690,28 +5534,24 @@- This driver implements the asynOctet interface. The only methods it supports are - registerInterruptUser and cancelInterruptUser. Calling the other asynOctet methods - will result in an error. The following happens when a new connection is received - on the port specified in drvAsynIPServerPortConfigure:
+ This driver implements the asynOctet interface. For TCP connections the only methods + it supports are registerInterruptUser and cancelInterruptUser. Calling the other + asynOctet methods will result in an error. For UDP it implements asynOctet->read(). + The following happens when a new connection is received on the port specified in + drvAsynIPServerPortConfigure:- The linux-gpib port driver was written to support + The linux-gpib port driver was written to support The Linux GPIB Package library.
In order to build this support the Linux GPIB Package must be installed. Also in @@ -6018,10 +5856,8 @@
A C++ base class called asynPortDriver is available. This is a base class from which real asyn port drivers can be derived. It greatly simplifies the job of writing @@ -6029,10 +5865,8 @@
asynPortClient is a set of C++ classes that are designed to simplify the task of writing a client that directly communicates with an asyn port driver, without running @@ -6042,11 +5876,9 @@
asynReport(level,portName) asynInterposeFlushConfig(portName,addr,timeout) @@ -6088,15 +5920,18 @@
+ is set. The mask bit definitions are documented in the traceMask + definitions.
asynSetTraceMask
callsasynTrace:setTraceMask
for the specified port and address. If portName is zero length then the global trace mask - is set.+ mask is set. The mask bit definitions are documented in the + traceIO mask definitions.
asynSetTraceIOMask
callsasynTrace:setTraceIOMask
for the specified port and address. If portName is zero length then the global traceIO - mask is set.+ mask is set. The mask bit definitions are documented in the + traceInfo mask definitions.
asynSetTraceInfoMask
callsasynTrace:setTraceInfoMask
for the specified port and address. If portName is zero length then the global traceInfo - mask is set.@@ -6161,11 +5996,413 @@
asynSetTraceFile
callsasynTrace:setTraceFile
. The filename is handled as follows:for the specified port. This reverts to the default timestamp source function in asynManager.
++ Example Client
++ The following is an example of an asyn client that reads from an asyn driver via + octet messages:
+#include <asynDriver.h> +... +#define BUFFER_SIZE 80 +typedef struct myData { + epicsEventId done; + asynOctet *pasynOctet; + void *drvPvt; + char buffer[BUFFER_SIZE]; +}myData; + +static void queueCallback(asynUser *pasynUser) { + myData *pmydata = (myData *)pasynUser->userPvt; + asynOctet *pasynOctet = pmydata->pasynOctet; + void *drvPvt = pmydata->drvPvt; + asynStatus status; + int writeBytes,readBytes; + int eomReason; + + asynPrint(pasynUser,ASYN_TRACE_FLOW,"queueCallback entered\n"); + status = pasynOctet->write(drvPvt,pasynUser,pmydata->buffer, + strlen(pmydata->buffer),&writeBytes); + if(status!=asynSuccess) { + asynPrint(pasynUser,ASYN_TRACE_ERROR, + "queueCallback write failed %s\n",pasynUser->errorMessage); + } else { + asynPrintIO(pasynUser,ASYN_TRACEIO_DEVICE, + pmydata->buffer,strlen(pmydata->buffer), + "queueCallback write sent %d bytes\n",writeBytes); + } + status = pasynOctet->read(drvPvt,pasynUser,pmydata->buffer, + BUFFER_SIZE,&readBytes,&eomReason); + if(status!=asynSuccess) { + asynPrint(pasynUser,ASYN_TRACE_ERROR, + "queueCallback read failed %s\n",pasynUser->errorMessage); + } else { + asynPrintIO(pasynUser,ASYN_TRACEIO_DEVICE, + pmydata->buffer,BUFFER_SIZE, + "queueCallback read returned: retlen %d eomReason 0x%x data %s\n", + readBytes,eomReason,pmydata->buffer); + } + epicsEventSignal(pmydata->done); +} + +static void asynExample(const char *port,int addr,const char *message) +{ + myData *pmyData; + asynUser *pasynUser; + asynStatus status; + asynInterface *pasynInterface; + + pmyData = (myData *)pasynManager->memMalloc(sizeof(myData)); + memset(pmyData,0,sizeof(myData)); + strcpy(pmyData->buffer,message); + pasynUser = pasynManager->createAsynUser(queueCallback,0); + pasynUser->userPvt = pmyData; + status = pasynManager->connectDevice(pasynUser,port,addr); + if(status!=asynSuccess) { + printf("can't connect to serialPort1 %s\n",pasynUser->errorMessage); + exit(1); + } + pasynInterface = pasynManager->findInterface( + pasynUser,asynOctetType,1); + if(!pasynInterface) { + printf("%s driver not supported\n",asynOctetType); + exit(-1); + } + pmyData->pasynOctet = (asynOctet *)pasynInterface->pinterface; + pmyData->drvPvt = pasynInterface->drvPvt; + pmyData->done = epicsEventCreate(epicsEventEmpty); + status = pasynManager->queueRequest(pasynUser,asynQueuePriorityLow, 0.0); + if(status) { + asynPrint(pasynUser,ASYN_TRACE_ERROR, + "queueRequest failed %s\n",pasynUser->errorMessage); + } + epicsEventWait(pmyData->done); + status = pasynManager->freeAsynUser(pasynUser); + if(status) { + asynPrint(pasynUser,ASYN_TRACE_ERROR, + "freeAsynUser failed %s\n",pasynUser->errorMessage); + } + epicsEventDestroy(pmyData->done); + pasynManager->memFree(pasynUser->userPvt,sizeof(myData)); +}++ The flow of control is as follows:
++
+- A port driver calls registerPort. This step is not shown in the above example.
+- asynExample allocates myData and an asynUser.
+- asynExample connects to a device and to the asynOctet interface for the port driver.
+- When it is ready to communicate with the driver it calls queueRequest.
+- queueCallback is called. It calls the port driver's write and read methods.
+
++ Test Applications
++ The asynDriver distribution includes several test applications to test asynDriver + and device support.
++ testApp
++ This is an example of how to interface to asynManager. The example resides in <top>/testApp + and contains the following components:
+Db/ + test.db + testBlock.db +adl/ + test.adl +src/ + devTestBlock.dbd + echoDriver.c + addrChangeDriver.c + devTestBlock.c + interposeInterface.c++ echoDriver is a port driver that echos messages it receives. It implements asynCommon + and asynOctet. When asynOctet:write is called it saves the message. When asynOctet:read + is called, the saved message is returned and the message is flushed. echoDriverInit + has an argument that determines if it acts like a multiDevice or a single device + port driver.
++ An instance of echoDriver is started via the iocsh command:
+echoDriverInit(portName,delay,noAutoConnect,multiDevice)++ where
+
+ addrChangeDriver is a multidevice driver that is an asynUser of another port driver. + In the example application it connects to echoDriver. An example where this technique + might be used is a port driver for mult-drop serial that connects to a standard + serial port.
++ An instance of addrChangeDriver is started via the iocsh commandL:
+addrChangeDriverInit(portName,lowerPort,addr)+
+ where
++ devTestBlock is device support that tests blockProcessCallback. It has device support + for stringin records. The INP field has the syntax:
+field(INP,"@asyn(port,addr,timeout) pvname)+
+ where:
++ When the stringin record is processed the following occurs.
++ test.db is a template containing three records: a calc record, which forward links + to a stringout record which forward links to a stringin record. The stringOut record + attaches to the device support supplied by asynOctetWriteRead.c. When the calcRecord + is processed the following happens:
++
++ testBlock.db is a template similar to test.db except that it attached to device + support testBlock instead of asynOctetWriteRead.
++ Executing "medm -x test.adl" produces the display:
+
+ It assumes that an ioc has been started via:
+cd <top>/iocBoot/ioctest +../../bin/linux-x86_64/test st.cmd+
+ This starts two versions of echoDriver as port "A" and "B". port A acts as single + device port. port B acts as a multiDevice port that has two devices. For each of + the three possible devices, the st.cmd file starts up two sets of records from test.db + The st.cmd file also loads a set of records from asynTest.db for port A and for + port B and for each of the two devices attached to port B. It also loads a set of + records from asynRecord.db. It starts one version of addrChangeDriver which connects + to port A.
++ It loads six versions of test.db and four versions of testBlock.db The test.adl + file attaches to these database records.
++ This tests ring buffers for callbacks with arrays. The example resides in <top>/testArrayRingBufferApp. +
++ Executing "medm -x testArrayRingBufferTop.adl" produces a top-level display from + which this display can be opened:
++
++ It assumes that an ioc has been started via:
+cd <top>/iocBoot/ioctestArrayRingBuffer +../../bin/linux-x86_64/testArrayRingBuffer st.cmd+
+ This is a test program that demonstrates how to write C++ program that instantiates + both an asyn port driver and an asynPortClient object. It uses the asynPortClient + object to communicate with the asyn port driver directly over the asyn interfaces + without running an EPICS IOC. It creates an asynIPPort driver and an asynPortClient, + 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 provided that + show how to use testAsynIPPortClient to communicate with a Web server, a Newport + XPS motor controller, and a telnet host respectively.
++ Usage: testAsynIPPortClient hostInfo outputString [outputEos] [inputEos]
++ Example: testAsynIPPortClient cars.uchicago.edu:80 "GET / HTTP/1.0" "\n\n"
++ The example resides in <top>/testAsynPortClientApp.
++ 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 + requires closing and re-opening the display in medm, because Channel Access does + not do monitors on enum value changes.
++ The example resides in <top>/testAsynPortDriverApp. +
++ Executing "medm -x testAsynPortDriverTop.adl" produces a top-level display from + which this display can be opened:
++
++ It assumes that an ioc has been started via:
+cd <top>/iocBoot/ioctestAsynPortDriver +../../bin/linux-x86_64/testAsynPortDriver st.cmd+
+ This application contains 3 test programs that use UDP IP broadcast messages.
+
+ testBroadcastAsyn.c
+ This program uses drvAsynIPPort to send UDP broadcast messages on port 37747. The
+ message is "i\n". It then listens for any responses. If there are NSLS electrometers
+ on the network they should respond.
+ testBroadcastNoAsyn.c
+ This program does the same as testBroadcastAsyn.c but uses native socket calls rather
+ than drvAsynIPort.
+ testBroadcastBurst.c
+ 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
+ number of broadcast messages very quickly. It sends numBroadcast messages with no
+ delay. The messages is "test\r". It does this in a loop of numLoops with a delay
+ of delayTime seconds at the end of each loop. delayTime is floating point value,
+ so can be less than 1 second.
+ Usage: testBroadcastBurst broadcastAddress broadcastPort numBroadcast numLoops delayTime
+ The code resides in <top>/testBroadcastApp.
++ 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 + be connected and disconnected by power-cycling or removing the network cable to + test the behavior.
++ The example resides in <top>/testConnectApp. +
++ The test ioc can be started via:
+cd <top>/iocBoot/ioctestConnect +../../bin/linux-x86_64/testConnect st.cmd+
+ The st.cmd file can be edited to select devices which will or will not ever connect. + There is no medm screen for this test.
++ 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 + from testApp. +
++ The example resides in <top>/testEpicsApp. +
++ Executing "medm -x *.adl" from the <top>/testEpicsApp/adl directory opens + the followings displays.
++
++
++
++ From the testInt32.adl screen the following time-series screen can be opened.
++
++ It assumes that an ioc has been started via:
+cd <top>/iocBoot/ioctestEpics +../../bin/linux-x86_64/testEpics st.cmd+
+ 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, asynUInt32Digital, asynFloat64, asynOctet, + asynEnum, asynXXXArray (XXX=Int8, Int16, Int32, Float32, Float64). It tests output + records both with an without the info tag asyn:READBACK. By editing options in the + st.cmd file it also tests:
++ The example resides in <top>/testEpicsApp. +
++ Executing "medm -x testErrorsTop.adl" from the <top>/testEerrorsApp/adl directory + produces a top-level display from which this display can be opened:
++
++ It assumes that an ioc has been started via:
+cd <top>/iocBoot/ioctestErrors +../../bin/linux-x86_64/testErrors st.cmd+
After obtaining a copy of the distribution, it must be installed and built for use @@ -6189,7 +6426,7 @@
Since asynDriver does NOT provide support for specific devices an application must @@ -6251,10 +6488,8 @@
Copyright (c) 2002 University of Chicago All rights reserved. asynDriver is distributed subject to the following license conditions: diff --git a/documentation/asynPortClient.html b/documentation/asynPortClient.html old mode 100755 new mode 100644 diff --git a/documentation/asynPortDriver.html b/documentation/asynPortDriver.html old mode 100755 new mode 100644 diff --git a/documentation/asynRecord.html b/documentation/asynRecord.html old mode 100755 new mode 100644 diff --git a/documentation/asynTestArrayRingBuffer.png b/documentation/asynTestArrayRingBuffer.png new file mode 100755 index 0000000..3a3bb07 Binary files /dev/null and b/documentation/asynTestArrayRingBuffer.png differ diff --git a/documentation/asynTimeSeries.png b/documentation/asynTimeSeries.png new file mode 100755 index 0000000..42b8073 Binary files /dev/null and b/documentation/asynTimeSeries.png differ diff --git a/documentation/testAsynPortDriver.png b/documentation/testAsynPortDriver.png old mode 100644 new mode 100755 index ff5ef49..18f80fb Binary files a/documentation/testAsynPortDriver.png and b/documentation/testAsynPortDriver.png differ diff --git a/documentation/testDigital.png b/documentation/testDigital.png new file mode 100755 index 0000000..85090bf Binary files /dev/null and b/documentation/testDigital.png differ diff --git a/documentation/testErrors.png b/documentation/testErrors.png new file mode 100755 index 0000000..ea4d5cf Binary files /dev/null and b/documentation/testErrors.png differ diff --git a/documentation/testInt32.png b/documentation/testInt32.png new file mode 100755 index 0000000..7f8efda Binary files /dev/null and b/documentation/testInt32.png differ diff --git a/documentation/testOctet.png b/documentation/testOctet.png new file mode 100755 index 0000000..1dfdd16 Binary files /dev/null and b/documentation/testOctet.png differ diff --git a/iocBoot/ioctestErrors/st.cmd b/iocBoot/ioctestErrors/st.cmd index 612135f..d6ed31b 100644 --- a/iocBoot/ioctestErrors/st.cmd +++ b/iocBoot/ioctestErrors/st.cmd @@ -1,7 +1,8 @@ dbLoadDatabase("../../dbd/testErrors.dbd") testErrors_registerRecordDeviceDriver(pdbbase) -testErrorsConfigure("PORT1",) +# The second argument is ASYN_CANBLOCK. 0 for a synchronous driver, 1 for asynchronous +testErrorsConfigure("PORT1",1) #asynSetTraceMask("PORT1",0,0xff) asynSetTraceIOMask("PORT1",0,0x2) diff --git a/iocBoot/ioctestIPServer/st.cmd.testIPServer1 b/iocBoot/ioctestIPServer/st.cmd.testIPServer1 new file mode 100644 index 0000000..ebe3c62 --- /dev/null +++ b/iocBoot/ioctestIPServer/st.cmd.testIPServer1 @@ -0,0 +1,29 @@ +< envPaths + +dbLoadDatabase("../../dbd/testIPServer.dbd") +testIPServer_registerRecordDeviceDriver(pdbbase) + +# This is the local TCP port that for clients to connect to +epicsEnvSet LOCAL_IP_PORT 5001 + +# This is the name of the asyn port driver that listens for connections +epicsEnvSet ASYN_LISTEN_PORT P5001 + +# This is the name of the first drvAsynIPPort TCP driver that will be created +epicsEnvSet ASYN_TCP_PORT P5001:0 + +# The following command starts a server on port 5001 +drvAsynIPServerPortConfigure("$(ASYN_LISTEN_PORT)","localhost:$(LOCAL_IP_PORT)",1,0,0,0) + +#asynSetTraceFile("$(ASYN_LISTEN_PORT)", -1, "") +asynSetTraceIOMask("$(ASYN_LISTEN_PORT)", -1, 0x2) +#asynSetTraceMask("$(ASYN_LISTEN_PORT)", -1, 0xff) +#asynSetTraceMask("$(ASYN_TCP_PORT)", -1, 0xff) + +asynOctetSetInputEos("$(ASYN_TCP_PORT)", 0, "\r\n") +asynOctetSetOutputEos("$(ASYN_TCP_PORT)", 0, "\r\n") + +dbLoadRecords("../../db/testIPServer1.db", "P=testIPServer:,PORT=$(ASYN_TCP_PORT)") + +iocInit() + diff --git a/iocBoot/ioctestOutputCallback/Makefile b/iocBoot/ioctestOutputCallback/Makefile new file mode 100644 index 0000000..b493509 --- /dev/null +++ b/iocBoot/ioctestOutputCallback/Makefile @@ -0,0 +1,5 @@ +TOP = ../.. +include $(TOP)/configure/CONFIG +ARCH = linux-x86_64 +TARGETS = envPaths cdCommands dllPath.bat +include $(TOP)/configure/RULES.ioc diff --git a/iocBoot/ioctestOutputCallback/st.cmd b/iocBoot/ioctestOutputCallback/st.cmd new file mode 100644 index 0000000..f22a923 --- /dev/null +++ b/iocBoot/ioctestOutputCallback/st.cmd @@ -0,0 +1,17 @@ +dbLoadDatabase("../../dbd/testOutputCallback.dbd") +testOutputCallback_registerRecordDeviceDriver(pdbbase) + +# Arguments: Portname, canBlock +testOutputCallbackConfigure("PORT1", 1) +# Enable ASYN_TRACE_WARNING +asynSetTraceMask("PORT1",0,0x21) +asynSetTraceIOMask("PORT1",0,0x2) + +### Use PINI=NO on output records and SCAN=I/O Intr on input records +dbLoadRecords("../../db/testOutputCallback.db","P=testOutputCallback:,PORT=PORT1,ADDR=0,TIMEOUT=1,PINI=NO") + +dbLoadRecords("../../db/asynRecord.db","P=testOutputCallback:,R=asyn1,PORT=PORT1,ADDR=0,OMAX=80,IMAX=80") + +iocInit() + + diff --git a/opi/Makefile b/opi/Makefile new file mode 100644 index 0000000..6399d88 --- /dev/null +++ b/opi/Makefile @@ -0,0 +1,9 @@ +TOP = ../.. +include $(TOP)/configure/CONFIG + +ADL_DIR = medm +UI_DIR = caqtdm/autoconvert +EDL_DIR = edm/autoconvert +OPI_DIR = boy/autoconvert + +-include $(SUPPORT)/configure/RULES_OPI diff --git a/opi/boy/autoconvert/asynGPIBSetup.opi b/opi/boy/autoconvert/asynGPIBSetup.opi new file mode 100644 index 0000000..395c3d1 --- /dev/null +++ b/opi/boy/autoconvert/asynGPIBSetup.opi @@ -0,0 +1,631 @@ ++ diff --git a/opi/boy/autoconvert/asynIPPortSetup.opi b/opi/boy/autoconvert/asynIPPortSetup.opi new file mode 100644 index 0000000..9ddde52 --- /dev/null +++ b/opi/boy/autoconvert/asynIPPortSetup.opi @@ -0,0 +1,1350 @@ ++ + +false +-1 +-1 +false ++ ++ 5.1.0.201801081728 ++ ++ 5 +185 ++ +true +asynGPIBSetup ++ + true +true +false +true +false +Display +375 +456 +239 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 100.0 + +Default + +false ++ ++ false +29 +true ++ ++ 0 +0 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +false +true +Rectangle +375 +0 +8 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 25 +1 +Label ++ + +true +true +false ++ false +$(P)$(R) ++ true +1 +true +Label +375 +false +0 +12 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +GPIB address: ++ true +1 +true +Label +130 +false +4 +68 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).ADDR ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +75 +139 +68 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Serial poll response: ++ true +1 +true +Label +210 +false +4 +97 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 3 +20 +0 +Text Update +0 +true +$(P)$(R).SPR ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +56 +false +224 +97 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Universal Command ++ true +1 +true +Label +170 +false +4 +126 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).UCMD ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +180 +179 +126 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Addressed Command ++ true +1 +true +Label +170 +false +4 +151 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).ACMD ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +180 +179 +151 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).GPIBIV ++ +true +true +false ++ false +Supported ++ true +1 +true +Label +90 +false +218 +42 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).GPIBIV ++ +true +true +false ++ false +Unsupported ++ true +1 +true +Label +110 +false +208 +42 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +asynGpib interface: ++ true +1 +true +Label +190 +false +4 +42 ++ diff --git a/opi/boy/autoconvert/asynOctet.opi b/opi/boy/autoconvert/asynOctet.opi new file mode 100644 index 0000000..2c37bb5 --- /dev/null +++ b/opi/boy/autoconvert/asynOctet.opi @@ -0,0 +1,2422 @@ ++ + +false +-1 +-1 +false ++ ++ 5.1.0.201801081728 ++ ++ 5 +410 ++ +true +asynIPPortSetup ++ + true +true +false +true +false +Display +260 +405 +149 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 100.0 + +Default + +false ++ ++ false +16 +true ++ ++ 0 +0 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +false +true +Rectangle +260 +0 +2 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 16 +1 +Label ++ + +true +true +false ++ false +$(P)$(R) ++ true +1 +true +Label +260 +false +0 +2 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).OPTIONIV ++ +true +true +false ++ false +Supported ++ true +1 +true +Label +90 +false +148 +25 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).OPTIONIV ++ +true +true +false ++ false +Unsupported ++ true +1 +true +Label +110 +false +138 +25 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +asynOption: ++ true +1 +true +Label +110 +false +8 +25 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Disconnect on ++ true +1 +true +Label +130 +false +13 +51 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +read timeout: ++ true +1 +true +Label +130 +false +13 +76 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Host info: ++ true +1 +true +Label +100 +false +43 +101 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 4 +18 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).HOSTINFO ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +102 +150 +101 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).DRTO ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +76 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Data bits: ++ true +1 +true +Label +100 +false +43 +206 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Stop bits: ++ true +1 +true +Label +100 +false +43 +231 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Modem control: ++ true +1 +true +Label +140 +false +3 +281 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Parity: ++ true +1 +true +Label +70 +false +73 +256 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).DBIT ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +206 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).SBIT ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +231 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).PRTY ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +256 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).MCTL ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +281 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Flow control: ++ true +1 +true +Label +130 +false +13 +306 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).FCTL ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +306 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +XOFF output: ++ true +1 +true +Label +120 +false +23 +331 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).IXON ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +331 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +XOFF input: ++ true +1 +true +Label +110 +false +33 +356 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).IXOFF ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +356 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +XON=any: ++ true +1 +true +Label +80 +false +63 +381 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).IXANY ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +381 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Baud rate: ++ true +1 +true +Label +100 +false +43 +181 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +18 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).LBAUD ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +102 +150 +181 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +COM (RFC 2217) protocol ++ true +1 +true +Label +230 +false +15 +151 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Parameters for ports with ++ true +1 +true +Label +250 +false +5 +130 ++ diff --git a/opi/boy/autoconvert/asynRecord.opi b/opi/boy/autoconvert/asynRecord.opi new file mode 100644 index 0000000..4b95ef6 --- /dev/null +++ b/opi/boy/autoconvert/asynRecord.opi @@ -0,0 +1,3318 @@ ++ + +false +-1 +-1 +false ++ ++ 5.1.0.201801081728 ++ ++ 5 +350 ++ +true +asynOctet ++ + true +true +false +true +false +Display +442 +457 +494 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 100.0 + +Default + +false ++ ++ false +29 +true ++ ++ 0 +0 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +false +true +Rectangle +442 +0 +5 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 0.0 + +Default + +false ++ ++ false +85 +true ++ ++ 0 +1 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +true +true +Rectangle +430 +6 +92 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 0.0 + +Default + +false ++ ++ false +25 +true ++ ++ 0 +1 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +true +true +Rectangle +430 +6 +292 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 0.0 + +Default + +false ++ ++ false +21 +true ++ ++ 0 +1 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +true +true +Rectangle +360 +74 +213 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 0.0 + +Default + +false ++ ++ false +105 +true ++ ++ 0 +1 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +true +true +Rectangle +430 +6 +182 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 4 +18 +0 +Text Update +0 +true +$(P)$(R).TINP ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +350 +false +81 +216 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Timeout (sec): ++ true +1 +true +Label +140 +false +6 +43 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).TMOT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +50 +151 +43 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).TMOD ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +110 +320 +43 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Transfer: ++ true +1 +true +Label +90 +false +225 +43 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 21 +1 +Label ++ + +true +true +false ++ false +$(P)$(R) ++ true +1 +true +Label +442 +false +0 +9 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 4 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).AOUT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +350 +78 +128 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Output ++ true +1 +true +Label +60 +false +13 +99 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Format: ++ true +1 +true +Label +70 +false +91 +99 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).OFMT ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +80 +166 +99 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +ASCII: ++ true +1 +true +Label +60 +false +13 +126 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Terminator: ++ true +1 +true +Label +110 +false +256 +99 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 4 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).OEOS ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +60 +371 +99 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Requested: ++ true +1 +true +Label +100 +false +88 +152 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Length: ++ true +1 +true +Label +70 +false +10 +152 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Actual: ++ true +1 +true +Label +70 +false +280 +152 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 1 +20 +0 +Text Update +0 +true +$(P)$(R).NAWT ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +56 +false +355 +152 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).NOWT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +70 +193 +152 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +I/O Status: ++ true +1 +true +Label +110 +false +10 +297 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +I/O Severity: ++ true +1 +true +Label +130 +false +217 +297 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + true ++ ++ 4 +20 +0 +Text Update +0 +true +$(P)$(R).STAT ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +85 +false +122 +297 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + true ++ ++ 4 +20 +0 +Text Update +0 +true +$(P)$(R).SEVR ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +85 +false +349 +297 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Scan: ++ true +1 +true +Label +50 +false +9 +323 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).SCAN ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +110 +64 +323 ++ ++ ++ +$(P)$(R).PROC +1 +10 ++ + false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 20 ++ Action Button +0 +$(P)$(R).PROC ++ + + +true +true +false ++ + Process +false +$(pv_name) +$(pv_value) +true +Action Button +80 +179 +323 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Terminator: ++ true +1 +true +Label +110 +false +253 +189 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 4 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).IEOS ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +60 +368 +189 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Input ++ true +1 +true +Label +50 +false +16 +189 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Format: ++ true +1 +true +Label +70 +false +86 +191 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).IFMT ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +80 +161 +189 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +ASCII: ++ true +1 +true +Label +60 +false +13 +215 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Requested: ++ true +1 +true +Label +100 +false +88 +242 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Length: ++ true +1 +true +Label +70 +false +10 +242 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Actual: ++ true +1 +true +Label +70 +false +280 +242 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 1 +20 +0 +Text Update +0 +true +$(P)$(R).NORD ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +56 +false +355 +242 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).NRRD ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +70 +193 +242 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +EOM reason: ++ true +1 +true +Label +110 +false +77 +265 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 4 +20 +0 +Text Update +0 +true +$(P)$(R).EOMR ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +70 +false +193 +265 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).OCTETIV ++ +true +true +false ++ false +Supported ++ true +1 +true +Label +90 +false +220 +66 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).OCTETIV ++ +true +true +false ++ false +Unsupported ++ true +1 +true +Label +110 +false +210 +66 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +asynOctet interface: ++ true +1 +true +Label +200 +false +6 +66 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).IFACE ++ +true +true +false ++ false +Active ++ true +1 +true +Label +60 +false +344 +66 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).IFACE ++ +true +true +false ++ false +Inactive ++ true +1 +true +Label +80 +false +334 +66 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +More... ++ true +1 +true +Label +70 +false +300 +323 ++ ++ ++ +asynRecord.opi ++ +true +1 +Record parameters ++ +asynRegister.opi ++ +true +1 +Register interfaces I/O ++ +asynSerialPortSetup.opi ++ +true +1 +Serial port parameters ++ +asynGPIBSetup.opi ++ +true +1 +GPIB parameters +false +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button ++ + + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +56 +375 +323 ++ diff --git a/opi/boy/autoconvert/asynRegister.opi b/opi/boy/autoconvert/asynRegister.opi new file mode 100644 index 0000000..efc9164 --- /dev/null +++ b/opi/boy/autoconvert/asynRegister.opi @@ -0,0 +1,2440 @@ ++ + +false +-1 +-1 +false ++ ++ 5.1.0.201801081728 ++ ++ 5 +589 ++ +true +asynRecord ++ + true +true +false +true +false +Display +440 +72 +61 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 100.0 + +Default + +false ++ ++ false +29 +true ++ ++ 0 +0 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +false +true +Rectangle +440 +0 +8 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 0.0 + +Default + +false ++ ++ false +25 +true ++ ++ 0 +1 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +true +true +Rectangle +430 +6 +178 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 0.0 + +Default + +false ++ ++ false +49 +true ++ ++ 0 +1 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +true +true +Rectangle +430 +6 +210 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 0.0 + +Default + +false ++ ++ false +315 +true ++ ++ 0 +1 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +true +true +Rectangle +430 +5 +267 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 21 +1 +Label ++ + +true +true +false ++ false +$(P)$(R) ++ true +1 +true +Label +440 +false +0 +12 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 4 +16 +0 +Text Update +0 +true +$(P)$(R).ERRS ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +359 +false +75 +182 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Error: ++ true +1 +true +Label +60 +false +10 +181 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).AUCT ++ +true +true +false ++ false +noAutoConnect ++ true +1 +true +Label +130 +false +300 +212 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).AUCT ++ +true +true +false ++ false +autoConnect ++ true +1 +true +Label +110 +false +310 +212 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).AUCT ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +120 +305 +233 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).ENBL ++ +true +true +false ++ false +Enabled ++ true +1 +true +Label +70 +false +180 +212 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).ENBL ++ +true +true +false ++ false +Disabled ++ true +1 +true +Label +80 +false +175 +212 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).ENBL ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +120 +155 +234 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceError ++ true +1 +true +Label +80 +false +68 +316 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceIODriver ++ true +1 +true +Label +104 +false +68 +385 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceIOFilter ++ true +1 +true +Label +104 +false +68 +362 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceIODevice ++ true +1 +true +Label +104 +false +68 +339 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +traceMask ++ true +1 +true +Label +90 +false +9 +269 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceIOHex ++ true +1 +true +Label +80 +false +242 +362 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TB0 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +9 +316 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TB3 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +9 +385 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TB2 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +9 +362 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TB1 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +9 +339 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TIB2 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +183 +362 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +Truncate size ++ true +1 +true +Label +104 +false +242 +385 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).TSIZ ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +50 +183 +385 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 3 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).TMSK ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +70 +9 +293 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +drvInfo: ++ true +1 +true +Label +80 +false +6 +97 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 4 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).DRVINFO ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +150 +88 +97 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).IFACE ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +130 +111 +122 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Interface: ++ true +1 +true +Label +100 +false +6 +122 ++ ++ ++ +$(P)$(R).AQR +1 +10 ++ + false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 20 ++ Action Button +0 +$(P)$(R).AQR ++ + + +true +true +false ++ + Cancel queueRequest +false +$(pv_name) +$(pv_value) +true +Action Button +150 +6 +147 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Reason: ++ true +1 +true +Label +70 +false +244 +97 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).REASON ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +50 +318 +97 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).CNCT ++ +true +true +false ++ false +Connected ++ true +1 +true +Label +90 +false +25 +212 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).CNCT ++ +true +true +false ++ false +Disconnected ++ true +1 +true +Label +120 +false +10 +212 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).CNCT ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +120 +10 +234 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Port: ++ true +1 +true +Label +50 +false +6 +47 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 4 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).PORT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +150 +61 +47 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Address: ++ true +1 +true +Label +80 +false +228 +47 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).ADDR ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +110 +318 +47 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).PCNCT ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +120 +61 +72 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).PCNCT ++ +true +true +false ++ false +Connected ++ true +1 +true +Label +90 +false +243 +72 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).PCNCT ++ +true +true +false ++ false +Disconnected ++ true +1 +true +Label +120 +false +228 +72 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +More... ++ true +1 +true +Label +70 +false +291 +147 ++ ++ ++ +asynOctet.opi ++ +true +1 +asynOctet Interface I/O ++ +asynRegister.opi ++ +true +1 +Register interfaces I/O ++ +asynSerialPortSetup.opi ++ +true +1 +Serial port parameters ++ +asynIPPortSetup.opi ++ +true +1 +IP port parameters ++ +asynGPIBSetup.opi ++ +true +1 +GPIB parameters +false +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button ++ + + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +56 +366 +147 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +traceIOMask ++ true +1 +true +Label +110 +false +183 +269 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceIOASCII ++ true +1 +true +Label +96 +false +242 +316 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceIOEscape ++ true +1 +true +Label +104 +false +242 +339 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TIB0 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +183 +316 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TIB1 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +183 +339 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 3 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).TIOM ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +70 +183 +293 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +traceInfoMask ++ true +1 +true +Label +130 +false +183 +415 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 3 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).TINM ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +70 +183 +439 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +Trace file: ++ true +1 +true +Label +88 +false +9 +557 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 4 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).TFIL ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +330 +99 +555 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TB4 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +9 +408 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceFlow ++ true +1 +true +Label +72 +false +68 +408 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TB5 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +9 +431 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceWarning ++ true +1 +true +Label +96 +false +68 +431 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceInfoPort ++ true +1 +true +Label +104 +false +242 +485 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TINB1 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +183 +485 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceInfoSource ++ true +1 +true +Label +120 +false +242 +508 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TINB2 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +183 +508 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceInfoTime ++ true +1 +true +Label +104 +false +242 +462 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TINB0 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +183 +462 ++ ++ false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 18 +true ++ +Choice 1+Choice 2+Choice 3+true +Choice Button +$(P)$(R).TINB3 ++ + + +true +true +false ++ + ++ $(pv_name) +$(pv_value) +true +Choice Button +55 +183 +531 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 18 +0 +Label ++ + +true +true +false ++ false +traceInfoThread ++ true +1 +true +Label +120 +false +242 +531 ++ diff --git a/opi/boy/autoconvert/asynSerialPortSetup.opi b/opi/boy/autoconvert/asynSerialPortSetup.opi new file mode 100644 index 0000000..379762c --- /dev/null +++ b/opi/boy/autoconvert/asynSerialPortSetup.opi @@ -0,0 +1,1128 @@ ++ + +false +-1 +-1 +false ++ ++ 5.1.0.201801081728 ++ ++ 5 +345 ++ +true +asynRegister ++ + true +true +false +true +false +Display +510 +344 +142 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 0.0 + +Default + +false ++ ++ false +25 +true ++ ++ 0 +1 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +true +true +Rectangle +430 +6 +279 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 100.0 + +Default + +false ++ ++ false +29 +true ++ ++ 0 +0 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +false +true +Rectangle +510 +0 +5 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Timeout (sec): ++ true +1 +true +Label +140 +false +6 +43 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).TMOT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +50 +151 +43 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).TMOD ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +110 +320 +43 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Transfer: ++ true +1 +true +Label +90 +false +225 +43 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +I/O Status: ++ true +1 +true +Label +110 +false +10 +284 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +I/O Severity: ++ true +1 +true +Label +130 +false +217 +284 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + true ++ ++ 4 +20 +0 +Text Update +0 +true +$(P)$(R).STAT ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +85 +false +122 +284 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + true ++ ++ 4 +20 +0 +Text Update +0 +true +$(P)$(R).SEVR ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +85 +false +349 +284 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Scan: ++ true +1 +true +Label +50 +false +9 +310 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).SCAN ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +110 +64 +310 ++ ++ ++ +$(P)$(R).PROC +1 +10 ++ + false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 20 ++ Action Button +0 +$(P)$(R).PROC ++ + + +true +true +false ++ + Process +false +$(pv_name) +$(pv_value) +true +Action Button +80 +179 +310 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 21 +1 +Label ++ + +true +true +false ++ false +$(P)$(R) ++ true +1 +true +Label +510 +false +0 +9 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Mask (hex): ++ true +1 +true +Label +110 +false +27 +251 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Input (hex): ++ true +1 +true +Label +120 +false +17 +226 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Input: ++ true +1 +true +Label +60 +false +77 +201 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Output (hex): ++ true +1 +true +Label +130 +false +7 +176 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Output: ++ true +1 +true +Label +70 +false +67 +151 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).IFACE ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +130 +5 +101 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Interface: ++ true +1 +true +Label +100 +false +37 +76 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 3 +20 +0 +Text Update +0 +true +$(P)$(R).I32INP ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +100 +false +147 +226 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 1 +20 +0 +Text Update +0 +true +$(P)$(R).I32INP ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +100 +false +147 +201 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 3 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).I32OUT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +100 +147 +176 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).I32OUT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +100 +147 +151 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).IFACE ++ +true +true +false ++ false +Active ++ true +1 +true +Label +60 +false +167 +126 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).IFACE ++ +true +true +false ++ false +Inactive ++ true +1 +true +Label +80 +false +157 +126 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).I32IV ++ +true +true +false ++ false +Supported ++ true +1 +true +Label +90 +false +152 +101 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).I32IV ++ +true +true +false ++ false +Unsupported ++ true +1 +true +Label +110 +false +142 +101 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Int32 ++ true +1 +true +Label +50 +false +172 +76 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 3 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).UI32MASK ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +100 +272 +251 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 3 +20 +0 +Text Update +0 +true +$(P)$(R).UI32INP ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +100 +false +272 +226 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 1 +20 +0 +Text Update +0 +true +$(P)$(R).UI32INP ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +100 +false +272 +201 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 3 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).UI32OUT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +100 +272 +176 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).UI32OUT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +100 +272 +151 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).IFACE ++ +true +true +false ++ false +Active ++ true +1 +true +Label +60 +false +292 +126 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).IFACE ++ +true +true +false ++ false +Inactive ++ true +1 +true +Label +80 +false +282 +126 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).UI32IV ++ +true +true +false ++ false +Unsupported ++ true +1 +true +Label +110 +false +267 +101 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).UI32IV ++ +true +true +false ++ false +Supported ++ true +1 +true +Label +90 +false +277 +101 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +UInt32Digital ++ true +1 +true +Label +130 +false +257 +76 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 1 +20 +0 +Text Update +0 +true +$(P)$(R).F64INP ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +100 +false +397 +201 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +20 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).F64OUT ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +100 +397 +151 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).IFACE ++ +true +true +false ++ false +Active ++ true +1 +true +Label +60 +false +417 +126 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).IFACE ++ +true +true +false ++ false +Inactive ++ true +1 +true +Label +80 +false +407 +126 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).F64IV ++ +true +true +false ++ false +Unsupported ++ true +1 +true +Label +110 +false +392 +101 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).F64IV ++ +true +true +false ++ false +Supported ++ true +1 +true +Label +90 +false +402 +101 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Float64 ++ true +1 +true +Label +70 +false +412 +76 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +More... ++ true +1 +true +Label +70 +false +364 +310 ++ ++ ++ +asynRecord.opi ++ +true +1 +Record parameters ++ +asynRegister.opi ++ +true +1 +Register interfaces I/O ++ +asynSerialPortSetup.opi ++ +true +1 +Serial port parameters ++ +asynGPIBSetup.opi ++ +true +1 +GPIB parameters +false +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button ++ + + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +56 +439 +310 ++ diff --git a/opi/boy/autoconvert/asynTimeSeries.opi b/opi/boy/autoconvert/asynTimeSeries.opi new file mode 100644 index 0000000..1f294d4 --- /dev/null +++ b/opi/boy/autoconvert/asynTimeSeries.opi @@ -0,0 +1,1225 @@ ++ + +false +-1 +-1 +false ++ ++ 5.1.0.201801081728 ++ ++ 5 +300 ++ +true +asynSerialPortSetup ++ + true +true +false +true +false +Display +260 +228 +79 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 100.0 + +Default + +false ++ ++ false +16 +true ++ ++ 0 +0 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +false +true +Rectangle +260 +0 +2 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 16 +1 +Label ++ + +true +true +false ++ false +$(P)$(R) ++ true +1 +true +Label +260 +false +0 +2 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).OPTIONIV ++ +true +true +false ++ false +Supported ++ true +1 +true +Label +90 +false +148 +25 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ ++ ++ +true ++ +false +$(P)$(R).OPTIONIV ++ +true +true +false ++ false +Unsupported ++ true +1 +true +Label +110 +false +138 +25 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +asynOption: ++ true +1 +true +Label +110 +false +8 +25 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Baud rate: ++ true +1 +true +Label +100 +false +43 +51 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).BAUD ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +51 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Baud rate: ++ true +1 +true +Label +100 +false +43 +76 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Data bits: ++ true +1 +true +Label +100 +false +43 +101 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Stop bits: ++ true +1 +true +Label +100 +false +43 +126 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Modem control: ++ true +1 +true +Label +140 +false +3 +176 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Parity: ++ true +1 +true +Label +70 +false +73 +151 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).DBIT ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +101 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).SBIT ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +126 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).PRTY ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +151 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).MCTL ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +176 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +Flow control: ++ true +1 +true +Label +130 +false +13 +201 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).FCTL ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +201 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +XOFF output: ++ true +1 +true +Label +120 +false +23 +226 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).IXON ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +226 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +XOFF input: ++ true +1 +true +Label +110 +false +33 +251 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).IXOFF ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +251 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ + +true +true +false ++ false +XON=any: ++ true +1 +true +Label +80 +false +63 +276 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R).IXANY ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +102 +150 +276 ++ ++ false +false +false ++ ++ false ++ ++ 3 +1 ++ true + ++ + false ++ ++ 1 +18 +0 +false +Infinity +-Infinity +false +Text Input +0 +false +0 +true +$(P)$(R).LBAUD ++ false +0.0 ++ + +true +true +false ++ 0 +false +true +false +false + ++ $(pv_name) +$(pv_value) +false +true +Text Input +102 +150 +76 ++ diff --git a/opi/caqtdm/autoconvert/asynGPIBSetup.ui b/opi/caqtdm/autoconvert/asynGPIBSetup.ui new file mode 100644 index 0000000..02dd27c --- /dev/null +++ b/opi/caqtdm/autoconvert/asynGPIBSetup.ui @@ -0,0 +1,622 @@ + ++ + +false +-1 +-1 +false ++ ++ 5.1.0.201801081728 ++ ++ 5 +360 ++ +true +asynTimeSeries ++ + true +true +false +true +false +Display +500 +326 +179 ++ ++ false +255 +true +false ++ ++ + ++ false ++ ++ 0 +1 +true ++ ++ 100.0 + +Default + +false ++ ++ false +25 +true ++ ++ 0 +0 +Rectangle ++ + + + +true +true +false ++ $(pv_name) +$(pv_value) +false +true +Rectangle +500 +0 +5 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 25 +1 +Label ++ + +true +true +false ++ false +$(P)$(R) ++ true +1 +true +Label +500 +false +0 +5 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).BUSY ++ +true +true +false ++ false +Acquiring ++ true +1 +true +Label +90 +false +42 +40 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +1 +Label ++ ++ ++ +true ++ +false +$(P)$(R).BUSY ++ +true +true +false ++ false +Done ++ true +1 +true +Label +40 +false +95 +40 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Status ++ true +1 +true +Label +60 +false +142 +40 ++ ++ false +false +false ++ ++ true ++ ++ 0 +1 +true + ++ + false ++ ++ 1 +20 +0 +Text Update +0 +true +$(P)$(R).NORD ++ 0.0 ++ + +true +true +false ++ false +###### +$(pv_name) +$(pv_value) +false +1 +true +Text Update +100 +false +224 +40 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Current point ++ true +1 +true +Label +130 +false +329 +40 ++ ++ false +true +0.0 ++ ++ Time point +true ++ ++ false +100.0 +0.0 ++ +Default ++ true +0 ++ +Default Bold +true +true +0.0 ++ ++ Value +true ++ ++ false +100.0 +0.0 ++ +Default ++ true +0 ++ +Default Bold +true +true +0.0 ++ ++ Secondary Axis (2) +true ++ ++ true +false +100.0 +0.0 ++ +Default ++ true +0 ++ +Default Bold +true +true +true +0.0 ++ ++ Secondary Axis (3) +true ++ ++ true +false +100.0 +0.0 ++ +Default ++ true +0 ++ +Default Bold +true +true +2 +false ++ ++ true ++ ++ 0 +1 +true +false ++ ++ 230 +XY Graph ++ ++ + + + + +true +true +false ++ true +false +true +$(P)$(R) ++ +Default Bold +$(trace_0_y_pv) +$(trace_0_y_pv_value) +true +100 +true +1 +$(trace_0_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 +$(pv_name) ++ true +100 +true +1 +$(trace_10_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_11_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_12_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_13_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_14_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_15_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_16_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_17_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_18_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_19_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_1_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_2_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_3_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_4_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_5_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_6_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_7_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_8_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + true +100 +true +1 +$(trace_9_y_pv) +0 +4 +0 ++ ++ 0 +100 +0 +true +0 ++ + 1 ++ + 1 +false ++ + true +XY Graph +480 +10 +92 ++ ++ ++ +$(P)$(R).RARM +1 +10 ++ + false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 20 ++ Action Button +0 +$(P)$(R).RARM ++ + + +true +true +false ++ + Erase/Start +false +$(pv_name) +$(pv_value) +true +Action Button +90 +15 +65 ++ ++ ++ +$(P)$(R).RARM +3 +10 ++ + false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 20 ++ Action Button +0 +$(P)$(R).RARM ++ + + +true +true +false ++ + Start +false +$(pv_name) +$(pv_value) +true +Action Button +90 +110 +65 ++ ++ ++ +$(P)$(R).RARM +2 +10 ++ + false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 20 ++ Action Button +0 +$(P)$(R).RARM ++ + + +true +true +false ++ + Stop +false +$(pv_name) +$(pv_value) +true +Action Button +90 +205 +65 ++ ++ true +false +false ++ ++ false ++ ++ 6 +1 +true + +Default + +false ++ ++ 20 + +Menu Button +$(P)$(R)Read.SCAN ++ + + +true +true +false ++ false +$(pv_name) +$(pv_value) +false +true +Menu Button +100 +10 +329 ++ ++ false ++ ++ + ++ 0 +1 +true + ++ + + ++ 20 +0 +Label ++ + +true +true +false ++ false +Read rate ++ true +1 +true +Label +90 +false +117 +329 ++ ++ ++ +$(P)$(R)Read.PROC +1 +10 ++ + false +false ++ ++ false ++ ++ 0 +1 +true + +Default + +false ++ ++ 20 ++ Action Button +0 +$(P)$(R)Read.PROC ++ + + +true +true +false ++ + Read +false +$(pv_name) +$(pv_value) +true +Action Button +50 +217 +329 ++ \ No newline at end of file diff --git a/opi/caqtdm/autoconvert/asynIPPortSetup.ui b/opi/caqtdm/autoconvert/asynIPPortSetup.ui new file mode 100644 index 0000000..c743187 --- /dev/null +++ b/opi/caqtdm/autoconvert/asynIPPortSetup.ui @@ -0,0 +1,1206 @@ + +MainWindow ++ ++ ++ +456 +239 +375 +185 ++ ++ +QWidget#centralWidget {background: rgba(187, 187, 187, 255);} + +caTable { + font: 10pt; + background: cornsilk; + alternate-background-color: wheat; +} + +caLineEdit { + border-radius: 1px; + background: lightyellow; + color: black; + } + +caTextEntry { + color: rgb(127, 0, 63); + background-color: cornsilk; + selection-color: #0a214c; + selection-background-color: wheat; + border: 1px groove black; + border-radius: 1px; + padding: 1px; +} + +caTextEntry:focus { + padding: 0px; + border: 2px groove darkred; + border-radius: 1px; +} + +QPushButton { + border-color: #00b; + border-radius: 2px; + padding: 3px; + border-width: 1px; + + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(224, 239, 255, 255), + stop:0.5 rgba(199, 215, 230, 255), + stop:1 rgba(184, 214, 236, 255)); +} +QPushButton:hover { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(201, 226, 255, 255), + stop:0.5 rgba(177, 204, 230, 255), + stop:1 rgba(163, 205, 236, 255)); +} +QPushButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +QPushButton:disabled { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +caChoice { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, + stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); +} + +caChoice > QPushButton { + text-align: left; + padding: 1px; +} + +caSlider::groove:horizontal { +border: 1px solid #bbb; +background: lightgrey; +height: 20px; +border-radius: 4px; +} + +caSlider::handle:horizontal { +background: red; +border: 1px solid #777; +width: 13px; +margin-top: -2px; +margin-bottom: -2px; +border-radius: 2px; +} + + + + ++ ++ ++ +caGraphics::Rectangle ++ ++ +0 +8 +375 +29 ++ ++ +218 +218 +218 ++ +Filled ++ ++ +218 +218 +218 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +$(P)$(R) ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter ++ ++ +0 +12 +375 +25 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +GPIB address: ++ +ESimpleLabel::WidthAndHeight ++ ++ +4 +68 +130 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +139 +68 +75 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).ADDR ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Serial poll response: ++ +ESimpleLabel::WidthAndHeight ++ ++ +4 +97 +210 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +224 +97 +56 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).SPR ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +hexadecimal ++ +caLineEdit::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Universal Command ++ +ESimpleLabel::WidthAndHeight ++ ++ +4 +126 +170 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +179 +126 +180 +20 ++ +$(P)$(R).UCMD ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Addressed Command ++ +ESimpleLabel::WidthAndHeight ++ ++ +4 +151 +170 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +179 +151 +180 +20 ++ +$(P)$(R).ACMD ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::IfNotZero ++ +$(P)$(R).GPIBIV ++ +Supported ++ +ESimpleLabel::WidthAndHeight ++ ++ +218 +42 +90 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::IfZero ++ +$(P)$(R).GPIBIV ++ +Unsupported ++ +ESimpleLabel::WidthAndHeight ++ ++ +208 +42 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +asynGpib interface: ++ +ESimpleLabel::WidthAndHeight ++ ++ +4 +42 +190 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter +caRectangle_0 +caLabel_0 +caLabel_1 +caLabel_2 +caLabel_3 +caLabel_4 +caLabel_5 +caLabel_6 +caLabel_7 +caTextEntry_0 +caLineEdit_0 +caMenu_0 +caMenu_1 ++ \ No newline at end of file diff --git a/opi/caqtdm/autoconvert/asynOctet.ui b/opi/caqtdm/autoconvert/asynOctet.ui new file mode 100644 index 0000000..0ee16b3 --- /dev/null +++ b/opi/caqtdm/autoconvert/asynOctet.ui @@ -0,0 +1,2172 @@ + +MainWindow ++ ++ ++ +405 +149 +260 +410 ++ ++ +QWidget#centralWidget {background: rgba(187, 187, 187, 255);} + +caTable { + font: 10pt; + background: cornsilk; + alternate-background-color: wheat; +} + +caLineEdit { + border-radius: 1px; + background: lightyellow; + color: black; + } + +caTextEntry { + color: rgb(127, 0, 63); + background-color: cornsilk; + selection-color: #0a214c; + selection-background-color: wheat; + border: 1px groove black; + border-radius: 1px; + padding: 1px; +} + +caTextEntry:focus { + padding: 0px; + border: 2px groove darkred; + border-radius: 1px; +} + +QPushButton { + border-color: #00b; + border-radius: 2px; + padding: 3px; + border-width: 1px; + + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(224, 239, 255, 255), + stop:0.5 rgba(199, 215, 230, 255), + stop:1 rgba(184, 214, 236, 255)); +} +QPushButton:hover { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(201, 226, 255, 255), + stop:0.5 rgba(177, 204, 230, 255), + stop:1 rgba(163, 205, 236, 255)); +} +QPushButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +QPushButton:disabled { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +caChoice { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, + stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); +} + +caChoice > QPushButton { + text-align: left; + padding: 1px; +} + +caSlider::groove:horizontal { +border: 1px solid #bbb; +background: lightgrey; +height: 20px; +border-radius: 4px; +} + +caSlider::handle:horizontal { +background: red; +border: 1px solid #777; +width: 13px; +margin-top: -2px; +margin-bottom: -2px; +border-radius: 2px; +} + + + + ++ ++ ++ +caGraphics::Rectangle ++ ++ +0 +2 +260 +16 ++ ++ +218 +218 +218 ++ +Filled ++ ++ +218 +218 +218 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +$(P)$(R) ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter ++ ++ +0 +2 +260 +16 ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::IfNotZero ++ +$(P)$(R).OPTIONIV ++ +Supported ++ +ESimpleLabel::WidthAndHeight ++ ++ +148 +25 +90 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::IfZero ++ +$(P)$(R).OPTIONIV ++ +Unsupported ++ +ESimpleLabel::WidthAndHeight ++ ++ +138 +25 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +asynOption: ++ +ESimpleLabel::WidthAndHeight ++ ++ +8 +25 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Disconnect on ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +13 +51 +130 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +read timeout: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +13 +76 +130 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Host info: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +43 +101 +100 +20 ++ ++ ++ +150 +101 +102 +18 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).HOSTINFO ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +string ++ ++ ++ +150 +76 +102 +20 ++ +$(P)$(R).DRTO ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Data bits: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +43 +206 +100 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Stop bits: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +43 +231 +100 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Modem control: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +3 +281 +140 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Parity: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +73 +256 +70 +20 ++ ++ ++ +150 +206 +102 +20 ++ +$(P)$(R).DBIT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ ++ +150 +231 +102 +20 ++ +$(P)$(R).SBIT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ ++ +150 +256 +102 +20 ++ +$(P)$(R).PRTY ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ ++ +150 +281 +102 +20 ++ +$(P)$(R).MCTL ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Flow control: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +13 +306 +130 +20 ++ ++ ++ +150 +306 +102 +20 ++ +$(P)$(R).FCTL ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +XOFF output: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +23 +331 +120 +20 ++ ++ ++ +150 +331 +102 +20 ++ +$(P)$(R).IXON ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +XOFF input: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +33 +356 +110 +20 ++ ++ ++ +150 +356 +102 +20 ++ +$(P)$(R).IXOFF ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +XON=any: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +63 +381 +80 +20 ++ ++ ++ +150 +381 +102 +20 ++ +$(P)$(R).IXANY ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Baud rate: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +43 +181 +100 +20 ++ ++ ++ +150 +181 +102 +18 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).LBAUD ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +COM (RFC 2217) protocol ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +15 +151 +230 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Parameters for ports with ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +5 +130 +250 +20 +caRectangle_0 +caLabel_0 +caLabel_1 +caLabel_2 +caLabel_3 +caLabel_4 +caLabel_5 +caLabel_6 +caLabel_7 +caLabel_8 +caLabel_9 +caLabel_10 +caLabel_11 +caLabel_12 +caLabel_13 +caLabel_14 +caLabel_15 +caLabel_16 +caLabel_17 +caTextEntry_0 +caMenu_0 +caMenu_1 +caMenu_2 +caMenu_3 +caMenu_4 +caMenu_5 +caMenu_6 +caMenu_7 +caMenu_8 +caTextEntry_1 ++ \ No newline at end of file diff --git a/opi/caqtdm/autoconvert/asynRecord.ui b/opi/caqtdm/autoconvert/asynRecord.ui new file mode 100644 index 0000000..9ee4347 --- /dev/null +++ b/opi/caqtdm/autoconvert/asynRecord.ui @@ -0,0 +1,2765 @@ + +MainWindow ++ ++ ++ +457 +494 +442 +350 ++ ++ +QWidget#centralWidget {background: rgba(187, 187, 187, 255);} + +caTable { + font: 10pt; + background: cornsilk; + alternate-background-color: wheat; +} + +caLineEdit { + border-radius: 1px; + background: lightyellow; + color: black; + } + +caTextEntry { + color: rgb(127, 0, 63); + background-color: cornsilk; + selection-color: #0a214c; + selection-background-color: wheat; + border: 1px groove black; + border-radius: 1px; + padding: 1px; +} + +caTextEntry:focus { + padding: 0px; + border: 2px groove darkred; + border-radius: 1px; +} + +QPushButton { + border-color: #00b; + border-radius: 2px; + padding: 3px; + border-width: 1px; + + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(224, 239, 255, 255), + stop:0.5 rgba(199, 215, 230, 255), + stop:1 rgba(184, 214, 236, 255)); +} +QPushButton:hover { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(201, 226, 255, 255), + stop:0.5 rgba(177, 204, 230, 255), + stop:1 rgba(163, 205, 236, 255)); +} +QPushButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +QPushButton:disabled { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +caChoice { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, + stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); +} + +caChoice > QPushButton { + text-align: left; + padding: 1px; +} + +caSlider::groove:horizontal { +border: 1px solid #bbb; +background: lightgrey; +height: 20px; +border-radius: 4px; +} + +caSlider::handle:horizontal { +background: red; +border: 1px solid #777; +width: 13px; +margin-top: -2px; +margin-bottom: -2px; +border-radius: 2px; +} + + + + ++ ++ ++ ++ +81 +216 +350 +18 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).TINP ++ ++ +0 +0 +0 ++ ++ +187 +187 +187 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +string ++ +caLineEdit::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Timeout (sec): ++ +ESimpleLabel::WidthAndHeight ++ ++ +6 +43 +140 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +151 +43 +50 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).TMOT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ ++ +320 +43 +110 +20 ++ +$(P)$(R).TMOD ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Transfer: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +225 +43 +90 +20 ++ ++ +caGraphics::Rectangle ++ ++ +0 +5 +442 +29 ++ ++ +218 +218 +218 ++ +Filled ++ ++ +218 +218 +218 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +$(P)$(R) ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter ++ ++ +0 +9 +442 +21 ++ ++ ++ +78 +128 +350 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).AOUT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +string ++ ++ +QFrame::NoFrame ++ ++ +88 +147 +255 ++ ++ +88 +147 +255 ++ +Output ++ +ESimpleLabel::WidthAndHeight ++ ++ +13 +99 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Format: ++ +ESimpleLabel::WidthAndHeight ++ ++ +91 +99 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +166 +99 +80 +20 ++ +$(P)$(R).OFMT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +ASCII: ++ +ESimpleLabel::WidthAndHeight ++ ++ +13 +126 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +caGraphics::Rectangle ++ ++ +6 +92 +430 +85 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Terminator: ++ +ESimpleLabel::WidthAndHeight ++ ++ +256 +99 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +371 +99 +60 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).OEOS ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +string ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Requested: ++ +ESimpleLabel::WidthAndHeight ++ ++ +88 +152 +100 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Length: ++ +ESimpleLabel::WidthAndHeight ++ ++ +10 +152 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Actual: ++ +ESimpleLabel::WidthAndHeight ++ ++ +280 +152 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +355 +152 +56 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).NAWT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +decimal ++ +caLineEdit::Static ++ ++ ++ +193 +152 +70 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).NOWT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +I/O Status: ++ +ESimpleLabel::WidthAndHeight ++ ++ +10 +297 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +I/O Severity: ++ +ESimpleLabel::WidthAndHeight ++ ++ +217 +297 +130 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +122 +297 +85 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).STAT ++ ++ +0 +0 +0 ++ ++ +218 +218 +218 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +string ++ +caLineEdit::Alarm_Static ++ ++ ++ +349 +297 +85 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).SEVR ++ ++ +0 +0 +0 ++ ++ +218 +218 +218 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +string ++ +caLineEdit::Alarm_Static ++ ++ +caGraphics::Rectangle ++ ++ +6 +292 +430 +25 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Scan: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +9 +323 +50 +20 ++ ++ ++ +64 +323 +110 +20 ++ +$(P)$(R).SCAN ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ ++ +179 +323 +80 +20 ++ +EPushButton::WidthAndHeight ++ +$(P)$(R).PROC ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Process ++ +1 ++ +caMessageButton::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Terminator: ++ +ESimpleLabel::WidthAndHeight ++ ++ +253 +189 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +368 +189 +60 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).IEOS ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +string ++ ++ +caGraphics::Rectangle ++ ++ +74 +213 +360 +21 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +88 +147 +255 ++ ++ +88 +147 +255 ++ +Input ++ +ESimpleLabel::WidthAndHeight ++ ++ +16 +189 +50 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Format: ++ +ESimpleLabel::WidthAndHeight ++ ++ +86 +191 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +161 +189 +80 +20 ++ +$(P)$(R).IFMT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +ASCII: ++ +ESimpleLabel::WidthAndHeight ++ ++ +13 +215 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +caGraphics::Rectangle ++ ++ +6 +182 +430 +105 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Requested: ++ +ESimpleLabel::WidthAndHeight ++ ++ +88 +242 +100 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Length: ++ +ESimpleLabel::WidthAndHeight ++ ++ +10 +242 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Actual: ++ +ESimpleLabel::WidthAndHeight ++ ++ +280 +242 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +355 +242 +56 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).NORD ++ ++ +0 +0 +0 ++ ++ +187 +187 +187 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +decimal ++ +caLineEdit::Static ++ ++ ++ +193 +242 +70 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).NRRD ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +EOM reason: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +77 +265 +110 +20 ++ ++ ++ +193 +265 +70 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).EOMR ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +string ++ +caLineEdit::Static ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::IfNotZero ++ +$(P)$(R).OCTETIV ++ +Supported ++ +ESimpleLabel::WidthAndHeight ++ ++ +220 +66 +90 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::IfZero ++ +$(P)$(R).OCTETIV ++ +Unsupported ++ +ESimpleLabel::WidthAndHeight ++ ++ +210 +66 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +asynOctet interface: ++ +ESimpleLabel::WidthAndHeight ++ ++ +6 +66 +200 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::Calc ++ +A=0 ++ +$(P)$(R).IFACE ++ +Active ++ +ESimpleLabel::WidthAndHeight ++ ++ +344 +66 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::Calc ++ +!(A=0) ++ +$(P)$(R).IFACE ++ +Inactive ++ +ESimpleLabel::WidthAndHeight ++ ++ +334 +66 +80 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +More... ++ +ESimpleLabel::WidthAndHeight ++ ++ +300 +323 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +375 +323 +56 +20 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Menu ++ +Record parameters;Register interfaces I/O;Serial port parameters;GPIB parameters ++ +asynRecord.adl;asynRegister.adl;asynSerialPortSetup.adl;asynGPIBSetup.adl ++ +P=$(P),R=$(R);P=$(P),R=$(R);P=$(P),R=$(R);P=$(P),R=$(R) ++ +false;false;false;false +caLabel_0 +caLabel_1 +caRectangle_0 +caLabel_2 +caLabel_3 +caLabel_4 +caLabel_5 +caRectangle_1 +caLabel_6 +caLabel_7 +caLabel_8 +caLabel_9 +caLabel_10 +caLabel_11 +caRectangle_2 +caLabel_12 +caLabel_13 +caRectangle_3 +caLabel_14 +caLabel_15 +caLabel_16 +caRectangle_4 +caLabel_17 +caLabel_18 +caLabel_19 +caLabel_20 +caLabel_21 +caLabel_22 +caLabel_23 +caLabel_24 +caLabel_25 +caLabel_26 +caLineEdit_0 +caTextEntry_0 +caMenu_0 +caTextEntry_1 +caMenu_1 +caTextEntry_2 +caLineEdit_1 +caTextEntry_3 +caLineEdit_2 +caLineEdit_3 +caMenu_2 +caMessageButton_0 +caTextEntry_4 +caMenu_3 +caLineEdit_4 +caTextEntry_5 +caLineEdit_5 +caRelatedDisplay_0 ++ \ No newline at end of file diff --git a/opi/caqtdm/autoconvert/asynRegister.ui b/opi/caqtdm/autoconvert/asynRegister.ui new file mode 100644 index 0000000..8691d20 --- /dev/null +++ b/opi/caqtdm/autoconvert/asynRegister.ui @@ -0,0 +1,2231 @@ + +MainWindow ++ ++ ++ +72 +61 +440 +589 ++ ++ +QWidget#centralWidget {background: rgba(187, 187, 187, 255);} + +caTable { + font: 10pt; + background: cornsilk; + alternate-background-color: wheat; +} + +caLineEdit { + border-radius: 1px; + background: lightyellow; + color: black; + } + +caTextEntry { + color: rgb(127, 0, 63); + background-color: cornsilk; + selection-color: #0a214c; + selection-background-color: wheat; + border: 1px groove black; + border-radius: 1px; + padding: 1px; +} + +caTextEntry:focus { + padding: 0px; + border: 2px groove darkred; + border-radius: 1px; +} + +QPushButton { + border-color: #00b; + border-radius: 2px; + padding: 3px; + border-width: 1px; + + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(224, 239, 255, 255), + stop:0.5 rgba(199, 215, 230, 255), + stop:1 rgba(184, 214, 236, 255)); +} +QPushButton:hover { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(201, 226, 255, 255), + stop:0.5 rgba(177, 204, 230, 255), + stop:1 rgba(163, 205, 236, 255)); +} +QPushButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +QPushButton:disabled { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +caChoice { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, + stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); +} + +caChoice > QPushButton { + text-align: left; + padding: 1px; +} + +caSlider::groove:horizontal { +border: 1px solid #bbb; +background: lightgrey; +height: 20px; +border-radius: 4px; +} + +caSlider::handle:horizontal { +background: red; +border: 1px solid #777; +width: 13px; +margin-top: -2px; +margin-bottom: -2px; +border-radius: 2px; +} + + + + ++ ++ ++ +caGraphics::Rectangle ++ ++ +0 +8 +440 +29 ++ ++ +218 +218 +218 ++ +Filled ++ ++ +218 +218 +218 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +$(P)$(R) ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter ++ ++ +0 +12 +440 +21 ++ ++ ++ +75 +182 +359 +16 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).ERRS ++ ++ +0 +0 +0 ++ ++ +218 +218 +218 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +string ++ +caLineEdit::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Error: ++ +ESimpleLabel::WidthAndHeight ++ ++ +10 +181 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +caGraphics::Rectangle ++ ++ +6 +178 +430 +25 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +251 +243 +74 ++ ++ +251 +243 +74 ++ +caLabel::IfZero ++ +$(P)$(R).AUCT ++ +noAutoConnect ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +300 +212 +130 +20 ++ ++ +QFrame::NoFrame ++ ++ +60 +180 +32 ++ ++ +60 +180 +32 ++ +caLabel::IfNotZero ++ +$(P)$(R).AUCT ++ +autoConnect ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +310 +212 +110 +20 ++ ++ ++ +305 +233 +120 +20 ++ +$(P)$(R).AUCT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +60 +180 +32 ++ ++ +60 +180 +32 ++ +caLabel::IfNotZero ++ +$(P)$(R).ENBL ++ +Enabled ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +180 +212 +70 +20 ++ ++ +QFrame::NoFrame ++ ++ +253 +0 +0 ++ ++ +253 +0 +0 ++ +caLabel::IfZero ++ +$(P)$(R).ENBL ++ +Disabled ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +175 +212 +80 +20 ++ ++ ++ +155 +234 +120 +20 ++ +$(P)$(R).ENBL ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +caGraphics::Rectangle ++ ++ +6 +210 +430 +49 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceError ++ +ESimpleLabel::WidthAndHeight ++ ++ +68 +316 +80 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceIODriver ++ +ESimpleLabel::WidthAndHeight ++ ++ +68 +385 +104 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceIOFilter ++ +ESimpleLabel::WidthAndHeight ++ ++ +68 +362 +104 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceIODevice ++ +ESimpleLabel::WidthAndHeight ++ ++ +68 +339 +104 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceMask ++ +ESimpleLabel::WidthAndHeight ++ ++ +9 +269 +90 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceIOHex ++ +ESimpleLabel::WidthAndHeight ++ ++ +242 +362 +80 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +9 +316 +55 +18 ++ +$(P)$(R).TB0 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ ++ +9 +385 +55 +18 ++ +$(P)$(R).TB3 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ ++ +9 +362 +55 +18 ++ +$(P)$(R).TB2 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ ++ +9 +339 +55 +18 ++ +$(P)$(R).TB1 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ ++ +183 +362 +55 +18 ++ +$(P)$(R).TIB2 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Truncate size ++ +ESimpleLabel::WidthAndHeight ++ ++ +242 +385 +104 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +183 +385 +50 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).TSIZ ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ +caGraphics::Rectangle ++ ++ +5 +267 +430 +315 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Solid ++ ++ ++ +9 +293 +70 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).TMSK ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +hexadecimal ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +drvInfo: ++ +ESimpleLabel::WidthAndHeight ++ ++ +6 +97 +80 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +88 +97 +150 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).DRVINFO ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +string ++ ++ ++ +111 +122 +130 +20 ++ +$(P)$(R).IFACE ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Interface: ++ +ESimpleLabel::WidthAndHeight ++ ++ +6 +122 +100 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +6 +147 +150 +20 ++ +EPushButton::WidthAndHeight ++ +$(P)$(R).AQR ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Cancel queueRequest ++ +1 ++ +caMessageButton::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Reason: ++ +ESimpleLabel::WidthAndHeight ++ ++ +244 +97 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +318 +97 +50 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).REASON ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ +QFrame::NoFrame ++ ++ +60 +180 +32 ++ ++ +60 +180 +32 ++ +caLabel::IfNotZero ++ +$(P)$(R).CNCT ++ +Connected ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +25 +212 +90 +20 ++ ++ +QFrame::NoFrame ++ ++ +253 +0 +0 ++ ++ +253 +0 +0 ++ +caLabel::IfZero ++ +$(P)$(R).CNCT ++ +Disconnected ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +10 +212 +120 +20 ++ ++ ++ +10 +234 +120 +20 ++ +$(P)$(R).CNCT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Port: ++ +ESimpleLabel::WidthAndHeight ++ ++ +6 +47 +50 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +61 +47 +150 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).PORT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +string ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Address: ++ +ESimpleLabel::WidthAndHeight ++ ++ +228 +47 +80 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +318 +47 +110 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).ADDR ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ ++ +61 +72 +120 +20 ++ +$(P)$(R).PCNCT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +60 +180 +32 ++ ++ +60 +180 +32 ++ +caLabel::IfNotZero ++ +$(P)$(R).PCNCT ++ +Connected ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +243 +72 +90 +20 ++ ++ +QFrame::NoFrame ++ ++ +253 +0 +0 ++ ++ +253 +0 +0 ++ +caLabel::IfZero ++ +$(P)$(R).PCNCT ++ +Disconnected ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +228 +72 +120 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +More... ++ +ESimpleLabel::WidthAndHeight ++ ++ +291 +147 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +366 +147 +56 +20 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Menu ++ +asynOctet Interface I/O;Register interfaces I/O;Serial port parameters;IP port parameters;GPIB parameters ++ +asynOctet.adl;asynRegister.adl;asynSerialPortSetup.adl;asynIPPortSetup.adl;asynGPIBSetup.adl ++ +P=$(P),R=$(R);P=$(P),R=$(R);P=$(P),R=$(R);P=$(P),R=$(R);P=$(P),R=$(R) ++ +false;false;false;false;false ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceIOMask ++ +ESimpleLabel::WidthAndHeight ++ ++ +183 +269 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceIOASCII ++ +ESimpleLabel::WidthAndHeight ++ ++ +242 +316 +96 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceIOEscape ++ +ESimpleLabel::WidthAndHeight ++ ++ +242 +339 +104 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +183 +316 +55 +18 ++ +$(P)$(R).TIB0 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ ++ +183 +339 +55 +18 ++ +$(P)$(R).TIB1 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ ++ +183 +293 +70 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).TIOM ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +hexadecimal ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceInfoMask ++ +ESimpleLabel::WidthAndHeight ++ ++ +183 +415 +130 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +183 +439 +70 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).TINM ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +hexadecimal ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Trace file: ++ +ESimpleLabel::WidthAndHeight ++ ++ +9 +557 +88 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +99 +555 +330 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).TFIL ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +string ++ ++ ++ +9 +408 +55 +18 ++ +$(P)$(R).TB4 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceFlow ++ +ESimpleLabel::WidthAndHeight ++ ++ +68 +408 +72 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +9 +431 +55 +18 ++ +$(P)$(R).TB5 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceWarning ++ +ESimpleLabel::WidthAndHeight ++ ++ +68 +431 +96 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceInfoPort ++ +ESimpleLabel::WidthAndHeight ++ ++ +242 +485 +104 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +183 +485 +55 +18 ++ +$(P)$(R).TINB1 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceInfoSource ++ +ESimpleLabel::WidthAndHeight ++ ++ +242 +508 +120 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +183 +508 +55 +18 ++ +$(P)$(R).TINB2 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceInfoTime ++ +ESimpleLabel::WidthAndHeight ++ ++ +242 +462 +104 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +183 +462 +55 +18 ++ +$(P)$(R).TINB0 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ ++ +183 +531 +55 +18 ++ +$(P)$(R).TINB3 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Column ++ +caChoice::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +traceInfoThread ++ +ESimpleLabel::WidthAndHeight ++ ++ +242 +531 +120 +18 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter +caRectangle_0 +caLabel_0 +caLabel_1 +caRectangle_1 +caLabel_2 +caLabel_3 +caLabel_4 +caLabel_5 +caRectangle_2 +caLabel_6 +caLabel_7 +caLabel_8 +caLabel_9 +caLabel_10 +caLabel_11 +caLabel_12 +caRectangle_3 +caLabel_13 +caLabel_14 +caLabel_15 +caLabel_16 +caLabel_17 +caLabel_18 +caLabel_19 +caLabel_20 +caLabel_21 +caLabel_22 +caLabel_23 +caLabel_24 +caLabel_25 +caLabel_26 +caLabel_27 +caLabel_28 +caLabel_29 +caLabel_30 +caLabel_31 +caLabel_32 +caLabel_33 +caLineEdit_0 +caMenu_0 +caMenu_1 +caChoice_0 +caChoice_1 +caChoice_2 +caChoice_3 +caChoice_4 +caTextEntry_0 +caTextEntry_1 +caTextEntry_2 +caMenu_2 +caMessageButton_0 +caTextEntry_3 +caMenu_3 +caTextEntry_4 +caTextEntry_5 +caMenu_4 +caRelatedDisplay_0 +caChoice_5 +caChoice_6 +caTextEntry_6 +caTextEntry_7 +caTextEntry_8 +caChoice_7 +caChoice_8 +caChoice_9 +caChoice_10 +caChoice_11 +caChoice_12 ++ \ No newline at end of file diff --git a/opi/caqtdm/autoconvert/asynSerialPortSetup.ui b/opi/caqtdm/autoconvert/asynSerialPortSetup.ui new file mode 100644 index 0000000..e74afe8 --- /dev/null +++ b/opi/caqtdm/autoconvert/asynSerialPortSetup.ui @@ -0,0 +1,1006 @@ + +MainWindow ++ ++ ++ +344 +142 +510 +345 ++ ++ +QWidget#centralWidget {background: rgba(187, 187, 187, 255);} + +caTable { + font: 10pt; + background: cornsilk; + alternate-background-color: wheat; +} + +caLineEdit { + border-radius: 1px; + background: lightyellow; + color: black; + } + +caTextEntry { + color: rgb(127, 0, 63); + background-color: cornsilk; + selection-color: #0a214c; + selection-background-color: wheat; + border: 1px groove black; + border-radius: 1px; + padding: 1px; +} + +caTextEntry:focus { + padding: 0px; + border: 2px groove darkred; + border-radius: 1px; +} + +QPushButton { + border-color: #00b; + border-radius: 2px; + padding: 3px; + border-width: 1px; + + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(224, 239, 255, 255), + stop:0.5 rgba(199, 215, 230, 255), + stop:1 rgba(184, 214, 236, 255)); +} +QPushButton:hover { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(201, 226, 255, 255), + stop:0.5 rgba(177, 204, 230, 255), + stop:1 rgba(163, 205, 236, 255)); +} +QPushButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +QPushButton:disabled { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +caChoice { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, + stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); +} + +caChoice > QPushButton { + text-align: left; + padding: 1px; +} + +caSlider::groove:horizontal { +border: 1px solid #bbb; +background: lightgrey; +height: 20px; +border-radius: 4px; +} + +caSlider::handle:horizontal { +background: red; +border: 1px solid #777; +width: 13px; +margin-top: -2px; +margin-bottom: -2px; +border-radius: 2px; +} + + + + ++ ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Timeout (sec): ++ +ESimpleLabel::WidthAndHeight ++ ++ +6 +43 +140 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +151 +43 +50 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).TMOT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ ++ +320 +43 +110 +20 ++ +$(P)$(R).TMOD ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Transfer: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +225 +43 +90 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +I/O Status: ++ +ESimpleLabel::WidthAndHeight ++ ++ +10 +284 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +I/O Severity: ++ +ESimpleLabel::WidthAndHeight ++ ++ +217 +284 +130 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +122 +284 +85 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).STAT ++ ++ +0 +0 +0 ++ ++ +218 +218 +218 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +string ++ +caLineEdit::Alarm_Static ++ ++ ++ +349 +284 +85 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).SEVR ++ ++ +0 +0 +0 ++ ++ +218 +218 +218 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +string ++ +caLineEdit::Alarm_Static ++ ++ +caGraphics::Rectangle ++ ++ +6 +279 +430 +25 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Scan: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +9 +310 +50 +20 ++ ++ ++ +64 +310 +110 +20 ++ +$(P)$(R).SCAN ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ ++ +179 +310 +80 +20 ++ +EPushButton::WidthAndHeight ++ +$(P)$(R).PROC ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Process ++ +1 ++ +caMessageButton::Static ++ ++ +caGraphics::Rectangle ++ ++ +0 +5 +510 +29 ++ ++ +218 +218 +218 ++ +Filled ++ ++ +218 +218 +218 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +$(P)$(R) ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter ++ ++ +0 +9 +510 +21 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Mask (hex): ++ +ESimpleLabel::WidthAndHeight ++ ++ +27 +251 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Input (hex): ++ +ESimpleLabel::WidthAndHeight ++ ++ +17 +226 +120 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Input: ++ +ESimpleLabel::WidthAndHeight ++ ++ +77 +201 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Output (hex): ++ +ESimpleLabel::WidthAndHeight ++ ++ +7 +176 +130 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Output: ++ +ESimpleLabel::WidthAndHeight ++ ++ +67 +151 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +5 +101 +130 +20 ++ +$(P)$(R).IFACE ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Interface: ++ +ESimpleLabel::WidthAndHeight ++ ++ +37 +76 +100 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +147 +226 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).I32INP ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +hexadecimal ++ +caLineEdit::Static ++ ++ ++ +147 +201 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).I32INP ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +decimal ++ +caLineEdit::Static ++ ++ ++ +147 +176 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).I32OUT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +hexadecimal ++ ++ ++ +147 +151 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).I32OUT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::Calc ++ +A=1 ++ +$(P)$(R).IFACE ++ +Active ++ +ESimpleLabel::WidthAndHeight ++ ++ +167 +126 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::Calc ++ +!(A=1) ++ +$(P)$(R).IFACE ++ +Inactive ++ +ESimpleLabel::WidthAndHeight ++ ++ +157 +126 +80 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::IfNotZero ++ +$(P)$(R).I32IV ++ +Supported ++ +ESimpleLabel::WidthAndHeight ++ ++ +152 +101 +90 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::IfZero ++ +$(P)$(R).I32IV ++ +Unsupported ++ +ESimpleLabel::WidthAndHeight ++ ++ +142 +101 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Int32 ++ +ESimpleLabel::WidthAndHeight ++ ++ +172 +76 +50 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +272 +251 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).UI32MASK ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +hexadecimal ++ ++ ++ +272 +226 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).UI32INP ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +hexadecimal ++ +caLineEdit::Static ++ ++ ++ +272 +201 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).UI32INP ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +decimal ++ +caLineEdit::Static ++ ++ ++ +272 +176 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).UI32OUT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +hexadecimal ++ ++ ++ +272 +151 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).UI32OUT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::Calc ++ +A=2 ++ +$(P)$(R).IFACE ++ +Active ++ +ESimpleLabel::WidthAndHeight ++ ++ +292 +126 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::Calc ++ +!(A=2) ++ +$(P)$(R).IFACE ++ +Inactive ++ +ESimpleLabel::WidthAndHeight ++ ++ +282 +126 +80 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::IfZero ++ +$(P)$(R).UI32IV ++ +Unsupported ++ +ESimpleLabel::WidthAndHeight ++ ++ +267 +101 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::IfNotZero ++ +$(P)$(R).UI32IV ++ +Supported ++ +ESimpleLabel::WidthAndHeight ++ ++ +277 +101 +90 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +UInt32Digital ++ +ESimpleLabel::WidthAndHeight ++ ++ +257 +76 +130 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +397 +201 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).F64INP ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ +decimal ++ +caLineEdit::Static ++ ++ ++ +397 +151 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).F64OUT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::Calc ++ +A=3 ++ +$(P)$(R).IFACE ++ +Active ++ +ESimpleLabel::WidthAndHeight ++ ++ +417 +126 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::Calc ++ +!(A=3) ++ +$(P)$(R).IFACE ++ +Inactive ++ +ESimpleLabel::WidthAndHeight ++ ++ +407 +126 +80 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::IfZero ++ +$(P)$(R).F64IV ++ +Unsupported ++ +ESimpleLabel::WidthAndHeight ++ ++ +392 +101 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::IfNotZero ++ +$(P)$(R).F64IV ++ +Supported ++ +ESimpleLabel::WidthAndHeight ++ ++ +402 +101 +90 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Float64 ++ +ESimpleLabel::WidthAndHeight ++ ++ +412 +76 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +More... ++ +ESimpleLabel::WidthAndHeight ++ ++ +364 +310 +70 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +439 +310 +56 +20 ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Menu ++ +Record parameters;Register interfaces I/O;Serial port parameters;GPIB parameters ++ +asynRecord.adl;asynRegister.adl;asynSerialPortSetup.adl;asynGPIBSetup.adl ++ +P=$(P),R=$(R);P=$(P),R=$(R);P=$(P),R=$(R);P=$(P),R=$(R) ++ +false;false;false;false +caLabel_0 +caLabel_1 +caLabel_2 +caLabel_3 +caRectangle_0 +caLabel_4 +caRectangle_1 +caLabel_5 +caLabel_6 +caLabel_7 +caLabel_8 +caLabel_9 +caLabel_10 +caLabel_11 +caLabel_12 +caLabel_13 +caLabel_14 +caLabel_15 +caLabel_16 +caLabel_17 +caLabel_18 +caLabel_19 +caLabel_20 +caLabel_21 +caLabel_22 +caLabel_23 +caLabel_24 +caLabel_25 +caLabel_26 +caLabel_27 +caTextEntry_0 +caMenu_0 +caLineEdit_0 +caLineEdit_1 +caMenu_1 +caMessageButton_0 +caMenu_2 +caLineEdit_2 +caLineEdit_3 +caTextEntry_1 +caTextEntry_2 +caTextEntry_3 +caLineEdit_4 +caLineEdit_5 +caTextEntry_4 +caTextEntry_5 +caLineEdit_6 +caTextEntry_6 +caRelatedDisplay_0 ++ \ No newline at end of file diff --git a/opi/caqtdm/autoconvert/asynTimeSeries.ui b/opi/caqtdm/autoconvert/asynTimeSeries.ui new file mode 100644 index 0000000..5f5c456 --- /dev/null +++ b/opi/caqtdm/autoconvert/asynTimeSeries.ui @@ -0,0 +1,709 @@ + +MainWindow ++ ++ ++ +228 +79 +260 +300 ++ ++ +QWidget#centralWidget {background: rgba(187, 187, 187, 255);} + +caTable { + font: 10pt; + background: cornsilk; + alternate-background-color: wheat; +} + +caLineEdit { + border-radius: 1px; + background: lightyellow; + color: black; + } + +caTextEntry { + color: rgb(127, 0, 63); + background-color: cornsilk; + selection-color: #0a214c; + selection-background-color: wheat; + border: 1px groove black; + border-radius: 1px; + padding: 1px; +} + +caTextEntry:focus { + padding: 0px; + border: 2px groove darkred; + border-radius: 1px; +} + +QPushButton { + border-color: #00b; + border-radius: 2px; + padding: 3px; + border-width: 1px; + + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(224, 239, 255, 255), + stop:0.5 rgba(199, 215, 230, 255), + stop:1 rgba(184, 214, 236, 255)); +} +QPushButton:hover { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(201, 226, 255, 255), + stop:0.5 rgba(177, 204, 230, 255), + stop:1 rgba(163, 205, 236, 255)); +} +QPushButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +QPushButton:disabled { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +caChoice { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, + stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); +} + +caChoice > QPushButton { + text-align: left; + padding: 1px; +} + +caSlider::groove:horizontal { +border: 1px solid #bbb; +background: lightgrey; +height: 20px; +border-radius: 4px; +} + +caSlider::handle:horizontal { +background: red; +border: 1px solid #777; +width: 13px; +margin-top: -2px; +margin-bottom: -2px; +border-radius: 2px; +} + + + + ++ ++ ++ +caGraphics::Rectangle ++ ++ +0 +2 +260 +16 ++ ++ +218 +218 +218 ++ +Filled ++ ++ +218 +218 +218 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +$(P)$(R) ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter ++ ++ +0 +2 +260 +16 ++ ++ +QFrame::NoFrame ++ ++ +51 +153 +0 ++ ++ +51 +153 +0 ++ +caLabel::IfNotZero ++ +$(P)$(R).OPTIONIV ++ +Supported ++ +ESimpleLabel::WidthAndHeight ++ ++ +148 +25 +90 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::IfZero ++ +$(P)$(R).OPTIONIV ++ +Unsupported ++ +ESimpleLabel::WidthAndHeight ++ ++ +138 +25 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +asynOption: ++ +ESimpleLabel::WidthAndHeight ++ ++ +8 +25 +110 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Baud rate: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +43 +51 +100 +20 ++ ++ ++ +150 +51 +102 +20 ++ +$(P)$(R).BAUD ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Baud rate: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +43 +76 +100 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Data bits: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +43 +101 +100 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Stop bits: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +43 +126 +100 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Modem control: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +3 +176 +140 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Parity: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +73 +151 +70 +20 ++ ++ ++ +150 +101 +102 +20 ++ +$(P)$(R).DBIT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ ++ +150 +126 +102 +20 ++ +$(P)$(R).SBIT ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ ++ +150 +151 +102 +20 ++ +$(P)$(R).PRTY ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ ++ +150 +176 +102 +20 ++ +$(P)$(R).MCTL ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Flow control: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +13 +201 +130 +20 ++ ++ ++ +150 +201 +102 +20 ++ +$(P)$(R).FCTL ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +XOFF output: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +23 +226 +120 +20 ++ ++ ++ +150 +226 +102 +20 ++ +$(P)$(R).IXON ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +XOFF input: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +33 +251 +110 +20 ++ ++ ++ +150 +251 +102 +20 ++ +$(P)$(R).IXOFF ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +XON=any: ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ ++ +63 +276 +80 +20 ++ ++ ++ +150 +276 +102 +20 ++ +$(P)$(R).IXANY ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ ++ +150 +76 +102 +18 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).LBAUD ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +caLineEdit::Static ++ +decimal +caRectangle_0 +caLabel_0 +caLabel_1 +caLabel_2 +caLabel_3 +caLabel_4 +caLabel_5 +caLabel_6 +caLabel_7 +caLabel_8 +caLabel_9 +caLabel_10 +caLabel_11 +caLabel_12 +caLabel_13 +caMenu_0 +caMenu_1 +caMenu_2 +caMenu_3 +caMenu_4 +caMenu_5 +caMenu_6 +caMenu_7 +caMenu_8 +caTextEntry_0 ++ \ No newline at end of file diff --git a/opi/edm/autoconvert/asynGPIBSetup.edl b/opi/edm/autoconvert/asynGPIBSetup.edl new file mode 100644 index 0000000..d3aecc1 --- /dev/null +++ b/opi/edm/autoconvert/asynGPIBSetup.edl @@ -0,0 +1,284 @@ +4 0 0 +beginScreenProperties +major 4 +minor 0 +release 0 +x 456 +y 239 +w 375 +h 185 +font "helvetica-medium-r-18.0" +ctlFont "helvetica-medium-r-8.0" +btnFont "helvetica-medium-r-18.0" +fgColor index 14 +bgColor index 4 +textColor index 14 +ctlFgColor1 index 30 +ctlFgColor2 index 32 +ctlBgColor1 index 34 +ctlBgColor2 index 35 +topShadowColor index 37 +botShadowColor index 44 +snapToGrid +gridSize 5 +endScreenProperties + + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 8 +w 374 +h 28 +lineColor index 2 +fill +fillColor index 2 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 12 +w 375 +h 25 +font "helvetica-medium-r-8.0" +fontAlign "center" +fgColor index 14 +useDisplayBg +value { + "$(P)$(R)" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 4 +y 68 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "GPIB address:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 139 +y 68 +w 75 +h 20 +controlPv "$(P)$(R).ADDR" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 4 +y 97 +w 210 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Serial poll response:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 224 +y 97 +w 56 +h 20 +controlPv "$(P)$(R).SPR" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +autoHeight +format "hex" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 4 +y 126 +w 170 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Universal Command" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 4 +y 151 +w 170 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Addressed Command" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 218 +y 42 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Supported" +} +visPv "CALC\\\{(A)\}($(P)$(R).GPIBIV)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 208 +y 42 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Unsupported" +} +visPv "CALC\\\{(A)\}($(P)$(R).GPIBIV)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 4 +y 42 +w 190 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "asynGpib interface:" +} +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 179 +y 126 +w 180 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).UCMD" +indicatorPv "$(P)$(R).UCMD" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 179 +y 151 +w 180 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).ACMD" +indicatorPv "$(P)$(R).ACMD" +font "helvetica-medium-r-10.0" +endObjectProperties + diff --git a/opi/edm/autoconvert/asynIPPortSetup.edl b/opi/edm/autoconvert/asynIPPortSetup.edl new file mode 100644 index 0000000..5e95576 --- /dev/null +++ b/opi/edm/autoconvert/asynIPPortSetup.edl @@ -0,0 +1,620 @@ +4 0 0 +beginScreenProperties +major 4 +minor 0 +release 0 +x 405 +y 149 +w 260 +h 410 +font "helvetica-medium-r-18.0" +ctlFont "helvetica-medium-r-8.0" +btnFont "helvetica-medium-r-18.0" +fgColor index 14 +bgColor index 4 +textColor index 14 +ctlFgColor1 index 30 +ctlFgColor2 index 32 +ctlBgColor1 index 34 +ctlBgColor2 index 35 +topShadowColor index 37 +botShadowColor index 44 +snapToGrid +gridSize 5 +endScreenProperties + + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 2 +w 259 +h 15 +lineColor index 2 +fill +fillColor index 2 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 2 +w 260 +h 16 +font "helvetica-medium-r-8.0" +fontAlign "center" +fgColor index 14 +useDisplayBg +value { + "$(P)$(R)" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 148 +y 25 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Supported" +} +visPv "CALC\\\{(A)\}($(P)$(R).OPTIONIV)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 138 +y 25 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Unsupported" +} +visPv "CALC\\\{(A)\}($(P)$(R).OPTIONIV)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 8 +y 25 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "asynOption:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 13 +y 51 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Disconnect on" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 13 +y 76 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "read timeout:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 43 +y 101 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Host info:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 101 +w 102 +h 18 +controlPv "$(P)$(R).HOSTINFO" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "string" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 43 +y 206 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Data bits:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 43 +y 231 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Stop bits:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 3 +y 281 +w 140 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Modem control:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 73 +y 256 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Parity:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 13 +y 306 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Flow control:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 23 +y 331 +w 120 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "XOFF output:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 33 +y 356 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "XOFF input:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 63 +y 381 +w 80 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "XON=any:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 43 +y 181 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Baud rate:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 181 +w 102 +h 18 +controlPv "$(P)$(R).LBAUD" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 15 +y 151 +w 230 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "COM (RFC 2217) protocol" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 5 +y 130 +w 250 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Parameters for ports with" +} +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 76 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).DRTO" +indicatorPv "$(P)$(R).DRTO" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 206 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).DBIT" +indicatorPv "$(P)$(R).DBIT" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 231 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).SBIT" +indicatorPv "$(P)$(R).SBIT" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 256 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).PRTY" +indicatorPv "$(P)$(R).PRTY" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 281 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).MCTL" +indicatorPv "$(P)$(R).MCTL" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 306 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).FCTL" +indicatorPv "$(P)$(R).FCTL" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 331 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).IXON" +indicatorPv "$(P)$(R).IXON" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 356 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).IXOFF" +indicatorPv "$(P)$(R).IXOFF" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 381 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).IXANY" +indicatorPv "$(P)$(R).IXANY" +font "helvetica-medium-r-10.0" +endObjectProperties + diff --git a/opi/edm/autoconvert/asynOctet.edl b/opi/edm/autoconvert/asynOctet.edl new file mode 100644 index 0000000..af89d7b --- /dev/null +++ b/opi/edm/autoconvert/asynOctet.edl @@ -0,0 +1,1038 @@ +4 0 0 +beginScreenProperties +major 4 +minor 0 +release 0 +x 457 +y 494 +w 442 +h 350 +font "helvetica-medium-r-18.0" +ctlFont "helvetica-medium-r-8.0" +btnFont "helvetica-medium-r-18.0" +fgColor index 14 +bgColor index 4 +textColor index 14 +ctlFgColor1 index 30 +ctlFgColor2 index 32 +ctlBgColor1 index 34 +ctlBgColor2 index 35 +topShadowColor index 37 +botShadowColor index 44 +snapToGrid +gridSize 5 +endScreenProperties + + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 81 +y 216 +w 350 +h 18 +controlPv "$(P)$(R).TINP" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 4 +autoHeight +format "string" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 43 +w 140 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Timeout (sec):" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 151 +y 43 +w 50 +h 20 +controlPv "$(P)$(R).TMOT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 225 +y 43 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Transfer:" +} +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 5 +w 441 +h 28 +lineColor index 2 +fill +fillColor index 2 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 9 +w 442 +h 21 +font "helvetica-medium-r-8.0" +fontAlign "center" +fgColor index 14 +useDisplayBg +value { + "$(P)$(R)" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 78 +y 128 +w 350 +h 20 +controlPv "$(P)$(R).AOUT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "string" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 13 +y 99 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 25 +useDisplayBg +value { + "Output" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 91 +y 99 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Format:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 13 +y 126 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "ASCII:" +} +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 92 +w 430 +h 85 +lineColor index 14 +fillColor index 14 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 256 +y 99 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Terminator:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 371 +y 99 +w 60 +h 20 +controlPv "$(P)$(R).OEOS" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "string" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 88 +y 152 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Requested:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 10 +y 152 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Length:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 280 +y 152 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Actual:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 355 +y 152 +w 56 +h 20 +controlPv "$(P)$(R).NAWT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +autoHeight +format decimal +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 193 +y 152 +w 70 +h 20 +controlPv "$(P)$(R).NOWT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 10 +y 297 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "I/O Status:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 217 +y 297 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "I/O Severity:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 122 +y 297 +w 85 +h 20 +controlPv "$(P)$(R).STAT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +fgAlarm +bgColor index 2 +autoHeight +format "string" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 349 +y 297 +w 85 +h 20 +controlPv "$(P)$(R).SEVR" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +fgAlarm +bgColor index 2 +autoHeight +format "string" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 292 +w 430 +h 25 +lineColor index 14 +fillColor index 14 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 323 +w 50 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Scan:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 253 +y 189 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Terminator:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 368 +y 189 +w 60 +h 20 +controlPv "$(P)$(R).IEOS" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "string" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 74 +y 213 +w 360 +h 21 +lineColor index 14 +fillColor index 14 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 16 +y 189 +w 50 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 25 +useDisplayBg +value { + "Input" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 86 +y 191 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Format:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 13 +y 215 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "ASCII:" +} +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 182 +w 430 +h 105 +lineColor index 14 +fillColor index 14 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 88 +y 242 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Requested:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 10 +y 242 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Length:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 280 +y 242 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Actual:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 355 +y 242 +w 56 +h 20 +controlPv "$(P)$(R).NORD" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 4 +autoHeight +format decimal +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 193 +y 242 +w 70 +h 20 +controlPv "$(P)$(R).NRRD" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 77 +y 265 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "EOM reason:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 193 +y 265 +w 70 +h 20 +controlPv "$(P)$(R).EOMR" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +autoHeight +format "string" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 220 +y 66 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Supported" +} +visPv "CALC\\\{(A)\}($(P)$(R).OCTETIV)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 210 +y 66 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Unsupported" +} +visPv "CALC\\\{(A)\}($(P)$(R).OCTETIV)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 66 +w 200 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "asynOctet interface:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 344 +y 66 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Active" +} +visPv "CALC\\\{(A=0)\}($(P)$(R).IFACE)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 334 +y 66 +w 80 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Inactive" +} +visPv "CALC\\\{(!(A=0))\}($(P)$(R).IFACE)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 300 +y 323 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "More..." +} +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 320 +y 43 +w 110 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).TMOD" +indicatorPv "$(P)$(R).TMOD" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 166 +y 99 +w 80 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).OFMT" +indicatorPv "$(P)$(R).OFMT" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 64 +y 323 +w 110 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).SCAN" +indicatorPv "$(P)$(R).SCAN" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Message Button) +object activeMessageButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 179 +y 323 +w 80 +h 20 +fgColor index 14 +onColor index 51 +offColor index 51 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).PROC" +pressValue "1" +releaseValue +onLabel "Process" +offLabel "Process" +3d +useEnumNumeric +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 161 +y 189 +w 80 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).IFMT" +indicatorPv "$(P)$(R).IFMT" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Related Display) +object relatedDisplayClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 375 +y 323 +w 56 +h 20 +fgColor index 14 +bgColor index 51 +topShadowColor index 2 +botShadowColor index 12 +font "helvetica-medium-r-10.0" +icon +numPvs 0 +numDsps 0 +displayFileName { +} +menuLabel { +} +endObjectProperties + diff --git a/opi/edm/autoconvert/asynRecord.edl b/opi/edm/autoconvert/asynRecord.edl new file mode 100644 index 0000000..39bbb0e --- /dev/null +++ b/opi/edm/autoconvert/asynRecord.edl @@ -0,0 +1,1416 @@ +4 0 0 +beginScreenProperties +major 4 +minor 0 +release 0 +x 72 +y 61 +w 440 +h 589 +font "helvetica-medium-r-18.0" +ctlFont "helvetica-medium-r-8.0" +btnFont "helvetica-medium-r-18.0" +fgColor index 14 +bgColor index 4 +textColor index 14 +ctlFgColor1 index 30 +ctlFgColor2 index 32 +ctlBgColor1 index 34 +ctlBgColor2 index 35 +topShadowColor index 37 +botShadowColor index 44 +snapToGrid +gridSize 5 +endScreenProperties + + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 8 +w 439 +h 28 +lineColor index 2 +fill +fillColor index 2 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 12 +w 440 +h 21 +font "helvetica-medium-r-8.0" +fontAlign "center" +fgColor index 14 +useDisplayBg +value { + "$(P)$(R)" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 75 +y 182 +w 359 +h 16 +controlPv "$(P)$(R).ERRS" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 2 +autoHeight +format "string" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 10 +y 181 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Error:" +} +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 178 +w 430 +h 25 +lineColor index 14 +fillColor index 14 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 300 +y 212 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 30 +useDisplayBg +value { + "noAutoConnect" +} +visPv "CALC\\\{(A)\}($(P)$(R).AUCT)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 310 +y 212 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 62 +useDisplayBg +value { + "autoConnect" +} +visPv "CALC\\\{(A)\}($(P)$(R).AUCT)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 180 +y 212 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 62 +useDisplayBg +value { + "Enabled" +} +visPv "CALC\\\{(A)\}($(P)$(R).ENBL)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 175 +y 212 +w 80 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 20 +useDisplayBg +value { + "Disabled" +} +visPv "CALC\\\{(A)\}($(P)$(R).ENBL)" +visMin 0 +visMax 1 +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 210 +w 430 +h 49 +lineColor index 14 +fillColor index 14 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 68 +y 316 +w 80 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceError" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 68 +y 385 +w 104 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceIODriver" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 68 +y 362 +w 104 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceIOFilter" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 68 +y 339 +w 104 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceIODevice" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 269 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceMask" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 242 +y 362 +w 80 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceIOHex" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 242 +y 385 +w 104 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Truncate size" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 385 +w 50 +h 20 +controlPv "$(P)$(R).TSIZ" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 5 +y 267 +w 430 +h 315 +lineColor index 14 +fillColor index 14 +lineWidth 0 +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 293 +w 70 +h 20 +controlPv "$(P)$(R).TMSK" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "hex" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 97 +w 80 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "drvInfo:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 88 +y 97 +w 150 +h 20 +controlPv "$(P)$(R).DRVINFO" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "string" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 122 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Interface:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 244 +y 97 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Reason:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 318 +y 97 +w 50 +h 20 +controlPv "$(P)$(R).REASON" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 25 +y 212 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 62 +useDisplayBg +value { + "Connected" +} +visPv "CALC\\\{(A)\}($(P)$(R).CNCT)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 10 +y 212 +w 120 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 20 +useDisplayBg +value { + "Disconnected" +} +visPv "CALC\\\{(A)\}($(P)$(R).CNCT)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 47 +w 50 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Port:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 61 +y 47 +w 150 +h 20 +controlPv "$(P)$(R).PORT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "string" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 228 +y 47 +w 80 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Address:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 318 +y 47 +w 110 +h 20 +controlPv "$(P)$(R).ADDR" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 243 +y 72 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 62 +useDisplayBg +value { + "Connected" +} +visPv "CALC\\\{(A)\}($(P)$(R).PCNCT)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 228 +y 72 +w 120 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 20 +useDisplayBg +value { + "Disconnected" +} +visPv "CALC\\\{(A)\}($(P)$(R).PCNCT)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 291 +y 147 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "More..." +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 269 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceIOMask" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 242 +y 316 +w 96 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceIOASCII" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 242 +y 339 +w 104 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceIOEscape" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 293 +w 70 +h 20 +controlPv "$(P)$(R).TIOM" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "hex" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 415 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceInfoMask" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 439 +w 70 +h 20 +controlPv "$(P)$(R).TINM" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "hex" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 557 +w 88 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Trace file:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 99 +y 555 +w 330 +h 20 +controlPv "$(P)$(R).TFIL" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "string" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 68 +y 408 +w 72 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceFlow" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 68 +y 431 +w 96 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceWarning" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 242 +y 485 +w 104 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceInfoPort" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 242 +y 508 +w 120 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceInfoSource" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 242 +y 462 +w 104 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceInfoTime" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 242 +y 531 +w 120 +h 18 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "traceInfoThread" +} +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 305 +y 233 +w 120 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).AUCT" +indicatorPv "$(P)$(R).AUCT" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 155 +y 234 +w 120 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).ENBL" +indicatorPv "$(P)$(R).ENBL" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 316 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TB0" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 385 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TB3" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 362 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TB2" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 339 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TB1" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 362 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TIB2" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 111 +y 122 +w 130 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).IFACE" +indicatorPv "$(P)$(R).IFACE" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Message Button) +object activeMessageButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 147 +w 150 +h 20 +fgColor index 14 +onColor index 51 +offColor index 51 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).AQR" +pressValue "1" +releaseValue +onLabel "Cancel queueRequest" +offLabel "Cancel queueRequest" +3d +useEnumNumeric +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 10 +y 234 +w 120 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).CNCT" +indicatorPv "$(P)$(R).CNCT" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 61 +y 72 +w 120 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).PCNCT" +indicatorPv "$(P)$(R).PCNCT" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Related Display) +object relatedDisplayClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 366 +y 147 +w 56 +h 20 +fgColor index 14 +bgColor index 51 +topShadowColor index 2 +botShadowColor index 12 +font "helvetica-medium-r-10.0" +icon +numPvs 0 +numDsps 0 +displayFileName { +} +menuLabel { +} +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 316 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TIB0" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 339 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TIB1" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 408 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TB4" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 431 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TB5" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 485 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TINB1" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 508 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TINB2" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 462 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TINB0" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + +# (Choice Button) +object activeChoiceButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 183 +y 531 +w 55 +h 18 +fgColor index 14 +bgColor index 51 +selectColor index 51 +inconsistentColor index 14 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).TINB3" +font "helvetica-medium-r-10.0" +orientation "horizontal" +endObjectProperties + diff --git a/opi/edm/autoconvert/asynRegister.edl b/opi/edm/autoconvert/asynRegister.edl new file mode 100644 index 0000000..034f398 --- /dev/null +++ b/opi/edm/autoconvert/asynRegister.edl @@ -0,0 +1,1070 @@ +4 0 0 +beginScreenProperties +major 4 +minor 0 +release 0 +x 344 +y 142 +w 510 +h 345 +font "helvetica-medium-r-18.0" +ctlFont "helvetica-medium-r-8.0" +btnFont "helvetica-medium-r-18.0" +fgColor index 14 +bgColor index 4 +textColor index 14 +ctlFgColor1 index 30 +ctlFgColor2 index 32 +ctlBgColor1 index 34 +ctlBgColor2 index 35 +topShadowColor index 37 +botShadowColor index 44 +snapToGrid +gridSize 5 +endScreenProperties + + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 43 +w 140 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Timeout (sec):" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 151 +y 43 +w 50 +h 20 +controlPv "$(P)$(R).TMOT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 225 +y 43 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Transfer:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 10 +y 284 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "I/O Status:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 217 +y 284 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "I/O Severity:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 122 +y 284 +w 85 +h 20 +controlPv "$(P)$(R).STAT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +fgAlarm +bgColor index 2 +autoHeight +format "string" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 349 +y 284 +w 85 +h 20 +controlPv "$(P)$(R).SEVR" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +fgAlarm +bgColor index 2 +autoHeight +format "string" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 6 +y 279 +w 430 +h 25 +lineColor index 14 +fillColor index 14 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 9 +y 310 +w 50 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Scan:" +} +endObjectProperties + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 5 +w 509 +h 28 +lineColor index 2 +fill +fillColor index 2 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 9 +w 510 +h 21 +font "helvetica-medium-r-8.0" +fontAlign "center" +fgColor index 14 +useDisplayBg +value { + "$(P)$(R)" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 27 +y 251 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Mask (hex):" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 17 +y 226 +w 120 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Input (hex):" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 77 +y 201 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Input:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 7 +y 176 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Output (hex):" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 67 +y 151 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Output:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 37 +y 76 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Interface:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 147 +y 226 +w 100 +h 20 +controlPv "$(P)$(R).I32INP" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +autoHeight +format "hex" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 147 +y 201 +w 100 +h 20 +controlPv "$(P)$(R).I32INP" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +autoHeight +format decimal +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 147 +y 176 +w 100 +h 20 +controlPv "$(P)$(R).I32OUT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "hex" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 147 +y 151 +w 100 +h 20 +controlPv "$(P)$(R).I32OUT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 167 +y 126 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Active" +} +visPv "CALC\\\{(A=1)\}($(P)$(R).IFACE)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 157 +y 126 +w 80 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Inactive" +} +visPv "CALC\\\{(!(A=1))\}($(P)$(R).IFACE)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 152 +y 101 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Supported" +} +visPv "CALC\\\{(A)\}($(P)$(R).I32IV)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 142 +y 101 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Unsupported" +} +visPv "CALC\\\{(A)\}($(P)$(R).I32IV)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 172 +y 76 +w 50 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Int32" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 272 +y 251 +w 100 +h 20 +controlPv "$(P)$(R).UI32MASK" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "hex" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 272 +y 226 +w 100 +h 20 +controlPv "$(P)$(R).UI32INP" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +autoHeight +format "hex" +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 272 +y 201 +w 100 +h 20 +controlPv "$(P)$(R).UI32INP" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +autoHeight +format decimal +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 272 +y 176 +w 100 +h 20 +controlPv "$(P)$(R).UI32OUT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format "hex" +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 272 +y 151 +w 100 +h 20 +controlPv "$(P)$(R).UI32OUT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 292 +y 126 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Active" +} +visPv "CALC\\\{(A=2)\}($(P)$(R).IFACE)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 282 +y 126 +w 80 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Inactive" +} +visPv "CALC\\\{(!(A=2))\}($(P)$(R).IFACE)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 267 +y 101 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Unsupported" +} +visPv "CALC\\\{(A)\}($(P)$(R).UI32IV)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 277 +y 101 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Supported" +} +visPv "CALC\\\{(A)\}($(P)$(R).UI32IV)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 257 +y 76 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "UInt32Digital" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 397 +y 201 +w 100 +h 20 +controlPv "$(P)$(R).F64INP" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +autoHeight +format decimal +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 397 +y 151 +w 100 +h 20 +controlPv "$(P)$(R).F64OUT" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 417 +y 126 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Active" +} +visPv "CALC\\\{(A=3)\}($(P)$(R).IFACE)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 407 +y 126 +w 80 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Inactive" +} +visPv "CALC\\\{(!(A=3))\}($(P)$(R).IFACE)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 392 +y 101 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Unsupported" +} +visPv "CALC\\\{(A)\}($(P)$(R).F64IV)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 402 +y 101 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Supported" +} +visPv "CALC\\\{(A)\}($(P)$(R).F64IV)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 412 +y 76 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Float64" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 364 +y 310 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "More..." +} +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 320 +y 43 +w 110 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).TMOD" +indicatorPv "$(P)$(R).TMOD" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 64 +y 310 +w 110 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).SCAN" +indicatorPv "$(P)$(R).SCAN" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Message Button) +object activeMessageButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 179 +y 310 +w 80 +h 20 +fgColor index 14 +onColor index 51 +offColor index 51 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).PROC" +pressValue "1" +releaseValue +onLabel "Process" +offLabel "Process" +3d +useEnumNumeric +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 5 +y 101 +w 130 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).IFACE" +indicatorPv "$(P)$(R).IFACE" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Related Display) +object relatedDisplayClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 439 +y 310 +w 56 +h 20 +fgColor index 14 +bgColor index 51 +topShadowColor index 2 +botShadowColor index 12 +font "helvetica-medium-r-10.0" +icon +numPvs 0 +numDsps 0 +displayFileName { +} +menuLabel { +} +endObjectProperties + diff --git a/opi/edm/autoconvert/asynSerialPortSetup.edl b/opi/edm/autoconvert/asynSerialPortSetup.edl new file mode 100644 index 0000000..a895df4 --- /dev/null +++ b/opi/edm/autoconvert/asynSerialPortSetup.edl @@ -0,0 +1,518 @@ +4 0 0 +beginScreenProperties +major 4 +minor 0 +release 0 +x 228 +y 79 +w 260 +h 300 +font "helvetica-medium-r-18.0" +ctlFont "helvetica-medium-r-8.0" +btnFont "helvetica-medium-r-18.0" +fgColor index 14 +bgColor index 4 +textColor index 14 +ctlFgColor1 index 30 +ctlFgColor2 index 32 +ctlBgColor1 index 34 +ctlBgColor2 index 35 +topShadowColor index 37 +botShadowColor index 44 +snapToGrid +gridSize 5 +endScreenProperties + + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 2 +w 259 +h 15 +lineColor index 2 +fill +fillColor index 2 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 2 +w 260 +h 16 +font "helvetica-medium-r-8.0" +fontAlign "center" +fgColor index 14 +useDisplayBg +value { + "$(P)$(R)" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 148 +y 25 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 17 +useDisplayBg +value { + "Supported" +} +visPv "CALC\\\{(A)\}($(P)$(R).OPTIONIV)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 138 +y 25 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 21 +useDisplayBg +value { + "Unsupported" +} +visPv "CALC\\\{(A)\}($(P)$(R).OPTIONIV)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 8 +y 25 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "asynOption:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 43 +y 51 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Baud rate:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 43 +y 76 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Baud rate:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 43 +y 101 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Data bits:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 43 +y 126 +w 100 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Stop bits:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 3 +y 176 +w 140 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Modem control:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 73 +y 151 +w 70 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Parity:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 13 +y 201 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "Flow control:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 23 +y 226 +w 120 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "XOFF output:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 33 +y 251 +w 110 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "XOFF input:" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 63 +y 276 +w 80 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "right" +fgColor index 14 +useDisplayBg +value { + "XON=any:" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 76 +w 102 +h 18 +controlPv "$(P)$(R).LBAUD" +font "helvetica-medium-r-8.0" +smartRefresh +fastUpdate +fgColor index 14 +bgColor index 51 +editable +autoHeight +format decimal +motifWidget +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 51 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).BAUD" +indicatorPv "$(P)$(R).BAUD" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 101 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).DBIT" +indicatorPv "$(P)$(R).DBIT" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 126 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).SBIT" +indicatorPv "$(P)$(R).SBIT" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 151 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).PRTY" +indicatorPv "$(P)$(R).PRTY" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 176 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).MCTL" +indicatorPv "$(P)$(R).MCTL" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 201 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).FCTL" +indicatorPv "$(P)$(R).FCTL" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 226 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).IXON" +indicatorPv "$(P)$(R).IXON" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 251 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).IXOFF" +indicatorPv "$(P)$(R).IXOFF" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 150 +y 276 +w 102 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R).IXANY" +indicatorPv "$(P)$(R).IXANY" +font "helvetica-medium-r-10.0" +endObjectProperties + diff --git a/opi/edm/autoconvert/asynTimeSeries.edl b/opi/edm/autoconvert/asynTimeSeries.edl new file mode 100644 index 0000000..df63c15 --- /dev/null +++ b/opi/edm/autoconvert/asynTimeSeries.edl @@ -0,0 +1,353 @@ +4 0 0 +beginScreenProperties +major 4 +minor 0 +release 0 +x 326 +y 179 +w 500 +h 360 +font "helvetica-medium-r-18.0" +ctlFont "helvetica-medium-r-8.0" +btnFont "helvetica-medium-r-18.0" +fgColor index 14 +bgColor index 4 +textColor index 14 +ctlFgColor1 index 30 +ctlFgColor2 index 32 +ctlBgColor1 index 34 +ctlBgColor2 index 35 +topShadowColor index 37 +botShadowColor index 44 +snapToGrid +gridSize 5 +endScreenProperties + + +# (Rectangle) +object activeRectangleClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 5 +w 499 +h 24 +lineColor index 54 +fill +fillColor index 54 +lineWidth 0 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 0 +y 5 +w 500 +h 25 +font "helvetica-medium-r-8.0" +fontAlign "center" +fgColor index 0 +useDisplayBg +value { + "$(P)$(R)" +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 42 +y 40 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "center" +fgColor index 18 +useDisplayBg +value { + "Acquiring" +} +visPv "CALC\\\{(A)\}($(P)$(R).BUSY)" +visInvert +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 95 +y 40 +w 40 +h 20 +font "helvetica-medium-r-8.0" +fontAlign "center" +fgColor index 21 +useDisplayBg +value { + "Done" +} +visPv "CALC\\\{(A)\}($(P)$(R).BUSY)" +visMin 0 +visMax 1 +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 142 +y 40 +w 60 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Status" +} +endObjectProperties + +# (Text Control) +object activeXTextDspClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 224 +y 40 +w 100 +h 20 +controlPv "$(P)$(R).NORD" +font "helvetica-medium-r-8.0" +fontAlign "right" +smartRefresh +fastUpdate +fgColor index 54 +bgColor index 4 +autoHeight +format decimal +nullColor index 32 +useHexPrefix +objType "controls" +newPos +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 329 +y 40 +w 130 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Current point" +} +endObjectProperties + +# (X-Y Graph) +object xyGraphClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 10 +y 92 +w 480 +h 230 +# Appearance +border +graphTitle "$(P)$(R)" +xLabel "Time point" +yLabel "Value" +fgColor index 14 +bgColor index 2 +gridColor index 14 +font "helvetica-medium-r-10.0" +# Operating Modes +plotMode "plotLastNPts" +nPts 1 +# X axis properties +showXAxis +xAxisSrc "AutoScale" +xLablePrecision 1 +# Y axis properties +showYAxis +yAxisSrc "AutoScale" +# Trace Properties +numTraces 1 +yPv { + 0 "$(P)$(R).VAL" +} +plotStyle { + 0 "line" +} +plotUpdateMode { + 0 "x" +} +plotSymbolType { + 0 "circle" +} +plotColor { + 0 index 27 +} +endObjectProperties + +# (Static Text) +object activeXTextClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 117 +y 329 +w 90 +h 20 +font "helvetica-medium-r-8.0" +fgColor index 14 +useDisplayBg +value { + "Read rate" +} +endObjectProperties + +# (Message Button) +object activeMessageButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 15 +y 65 +w 90 +h 20 +fgColor index 14 +onColor index 51 +offColor index 51 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).RARM" +pressValue "1" +releaseValue +onLabel "Erase/Start" +offLabel "Erase/Start" +3d +useEnumNumeric +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Message Button) +object activeMessageButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 110 +y 65 +w 90 +h 20 +fgColor index 14 +onColor index 51 +offColor index 51 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).RARM" +pressValue "3" +releaseValue +onLabel "Start" +offLabel "Start" +3d +useEnumNumeric +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Message Button) +object activeMessageButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 205 +y 65 +w 90 +h 20 +fgColor index 14 +onColor index 51 +offColor index 51 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R).RARM" +pressValue "2" +releaseValue +onLabel "Stop" +offLabel "Stop" +3d +useEnumNumeric +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Menu Button) +object activeMenuButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 10 +y 329 +w 100 +h 20 +fgColor index 14 +bgColor index 51 +inconsistentColor index 12 +topShadowColor index 2 +botShadowColor index 12 +controlPv "$(P)$(R)Read.SCAN" +indicatorPv "$(P)$(R)Read.SCAN" +font "helvetica-medium-r-10.0" +endObjectProperties + +# (Message Button) +object activeMessageButtonClass +beginObjectProperties +major 4 +minor 0 +release 0 +x 217 +y 329 +w 50 +h 20 +fgColor index 14 +onColor index 51 +offColor index 51 +topShadowColor index 0 +botShadowColor index 14 +controlPv "$(P)$(R)Read.PROC" +pressValue "1" +releaseValue +onLabel "Read" +offLabel "Read" +3d +useEnumNumeric +font "helvetica-medium-r-10.0" +endObjectProperties + diff --git a/opi/medm/asynGPIBSetup.adl b/opi/medm/asynGPIBSetup.adl index 12446ce..c682840 100644 --- a/opi/medm/asynGPIBSetup.adl +++ b/opi/medm/asynGPIBSetup.adl @@ -1,12 +1,12 @@ file { - name="C:\Program Files\EPICS\adls\asynGPIBSetup.adl" - version=020306 + name="/home/epics/devel/asyn-4-33/opi/medm/asynGPIBSetup.adl" + version=030109 } display { object { - x=288 - y=334 + x=456 + y=239 width=375 height=185 } @@ -87,77 +87,55 @@ display { 1a7309, } } -composite { +rectangle { object { - x=86 + x=0 y=8 - width=203 + width=375 height=29 } - "composite name"="" - children { - rectangle { - object { - x=86 - y=8 - width=203 - height=29 - } - "basic attribute" { - clr=2 - } - } - text { - object { - x=89 - y=12 - width=199 - height=21 - } - "basic attribute" { - clr=14 - } - textix="$(P)$(R)" - align="horiz. centered" - } + "basic attribute" { + clr=2 + } +} +text { + object { + x=0 + y=12 + width=375 + height=25 + } + "basic attribute" { + clr=14 } + textix="$(P)$(R)" + align="horiz. centered" } -composite { +text { object { x=4 y=68 - width=210 + width=130 height=20 } - "composite name"="" - children { - text { - object { - x=4 - y=68 - width=130 - height=20 - } - "basic attribute" { - clr=14 - } - textix="GPIB address:" - } - "text entry" { - object { - x=139 - y=68 - width=75 - height=20 - } - control { - chan="$(P)$(R).ADDR" - clr=14 - bclr=51 - } - limits { - } - } + "basic attribute" { + clr=14 + } + textix="GPIB address:" +} +"text entry" { + object { + x=139 + y=68 + width=75 + height=20 + } + control { + chan="$(P)$(R).ADDR" + clr=14 + bclr=51 + } + limits { } } text { @@ -188,76 +166,54 @@ text { limits { } } -composite { +text { object { x=4 y=126 - width=355 + width=170 height=20 } - "composite name"="" - children { - text { - object { - x=4 - y=126 - width=170 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Universal Command" - } - menu { - object { - x=179 - y=126 - width=180 - height=20 - } - control { - chan="$(P)$(R).UCMD" - clr=14 - bclr=51 - } - } + "basic attribute" { + clr=14 } + textix="Universal Command" } -composite { +menu { + object { + x=179 + y=126 + width=180 + height=20 + } + control { + chan="$(P)$(R).UCMD" + clr=14 + bclr=51 + } +} +text { object { x=4 y=151 - width=355 + width=170 height=20 } - "composite name"="" - children { - text { - object { - x=4 - y=151 - width=170 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Addressed Command" - } - menu { - object { - x=179 - y=151 - width=180 - height=20 - } - control { - chan="$(P)$(R).ACMD" - clr=14 - bclr=51 - } - } + "basic attribute" { + clr=14 + } + textix="Addressed Command" +} +menu { + object { + x=179 + y=151 + width=180 + height=20 + } + control { + chan="$(P)$(R).ACMD" + clr=14 + bclr=51 } } text { @@ -296,7 +252,7 @@ text { object { x=4 y=42 - width=200 + width=190 height=20 } "basic attribute" { diff --git a/opi/medm/asynIPPortSetup.adl b/opi/medm/asynIPPortSetup.adl index 682e358..fdd62ab 100644 --- a/opi/medm/asynIPPortSetup.adl +++ b/opi/medm/asynIPPortSetup.adl @@ -1,12 +1,12 @@ file { - name="/home/epics/devel/asyn-4-28/opi/medm/asynIPPortSetup.adl" - version=030107 + name="/home/epics/devel/asyn-4-33/opi/medm/asynIPPortSetup.adl" + version=030109 } display { object { - x=500 - y=77 + x=405 + y=149 width=260 height=410 } @@ -89,9 +89,9 @@ display { } rectangle { object { - x=29 + x=0 y=2 - width=203 + width=260 height=16 } "basic attribute" { @@ -100,9 +100,9 @@ rectangle { } text { object { - x=35 + x=0 y=2 - width=190 + width=260 height=16 } "basic attribute" { @@ -157,9 +157,9 @@ text { } text { object { - x=8 + x=13 y=51 - width=135 + width=130 height=20 } "basic attribute" { @@ -170,9 +170,9 @@ text { } text { object { - x=8 + x=13 y=76 - width=135 + width=130 height=20 } "basic attribute" { @@ -183,9 +183,9 @@ text { } text { object { - x=8 + x=43 y=101 - width=135 + width=100 height=20 } "basic attribute" { @@ -194,326 +194,294 @@ text { textix="Host info:" align="horiz. right" } -composite { +"text entry" { + object { + x=150 + y=101 + width=102 + height=18 + } + control { + chan="$(P)$(R).HOSTINFO" + clr=14 + bclr=51 + } + format="string" + limits { + } +} +menu { object { x=150 y=76 width=102 - height=43 - } - "composite name"="" - children { - "text entry" { - object { - x=150 - y=101 - width=102 - height=18 - } - control { - chan="$(P)$(R).HOSTINFO" - clr=14 - bclr=51 - } - limits { - } - } - menu { - object { - x=150 - y=76 - width=102 - height=20 - } - control { - chan="$(P)$(R).DRTO" - clr=14 - bclr=51 - } - } - } -} -composite { + height=20 + } + control { + chan="$(P)$(R).DRTO" + clr=14 + bclr=51 + } +} +text { + object { + x=43 + y=206 + width=100 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Data bits:" + align="horiz. right" +} +text { + object { + x=43 + y=231 + width=100 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Stop bits:" + align="horiz. right" +} +text { + object { + x=3 + y=281 + width=140 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Modem control:" + align="horiz. right" +} +text { + object { + x=73 + y=256 + width=70 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Parity:" + align="horiz. right" +} +menu { + object { + x=150 + y=206 + width=102 + height=20 + } + control { + chan="$(P)$(R).DBIT" + clr=14 + bclr=51 + } +} +menu { + object { + x=150 + y=231 + width=102 + height=20 + } + control { + chan="$(P)$(R).SBIT" + clr=14 + bclr=51 + } +} +menu { + object { + x=150 + y=256 + width=102 + height=20 + } + control { + chan="$(P)$(R).PRTY" + clr=14 + bclr=51 + } +} +menu { + object { + x=150 + y=281 + width=102 + height=20 + } + control { + chan="$(P)$(R).MCTL" + clr=14 + bclr=51 + } +} +text { + object { + x=13 + y=306 + width=130 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Flow control:" + align="horiz. right" +} +menu { + object { + x=150 + y=306 + width=102 + height=20 + } + control { + chan="$(P)$(R).FCTL" + clr=14 + bclr=51 + } +} +text { + object { + x=23 + y=331 + width=120 + height=20 + } + "basic attribute" { + clr=14 + } + textix="XOFF output:" + align="horiz. right" +} +menu { + object { + x=150 + y=331 + width=102 + height=20 + } + control { + chan="$(P)$(R).IXON" + clr=14 + bclr=51 + } +} +text { + object { + x=33 + y=356 + width=110 + height=20 + } + "basic attribute" { + clr=14 + } + textix="XOFF input:" + align="horiz. right" +} +menu { + object { + x=150 + y=356 + width=102 + height=20 + } + control { + chan="$(P)$(R).IXOFF" + clr=14 + bclr=51 + } +} +text { + object { + x=63 + y=381 + width=80 + height=20 + } + "basic attribute" { + clr=14 + } + textix="XON=any:" + align="horiz. right" +} +menu { + object { + x=150 + y=381 + width=102 + height=20 + } + control { + chan="$(P)$(R).IXANY" + clr=14 + bclr=51 + } +} +text { + object { + x=43 + y=181 + width=100 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Baud rate:" + align="horiz. right" +} +"text entry" { + object { + x=150 + y=181 + width=102 + height=18 + } + control { + chan="$(P)$(R).LBAUD" + clr=14 + bclr=51 + } + limits { + } +} +text { + object { + x=15 + y=151 + width=230 + height=20 + } + "basic attribute" { + clr=14 + } + textix="COM (RFC 2217) protocol" + align="horiz. right" +} +text { object { x=5 y=130 width=250 - height=271 - } - "composite name"="" - children { - composite { - object { - x=8 - y=181 - width=244 - height=220 - } - "composite name"="" - children { - text { - object { - x=8 - y=206 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Data bits:" - align="horiz. right" - } - text { - object { - x=8 - y=231 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Stop bits:" - align="horiz. right" - } - text { - object { - x=8 - y=281 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Modem control:" - align="horiz. right" - } - text { - object { - x=8 - y=256 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Parity:" - align="horiz. right" - } - menu { - object { - x=150 - y=206 - width=102 - height=20 - } - control { - chan="$(P)$(R).DBIT" - clr=14 - bclr=51 - } - } - menu { - object { - x=150 - y=231 - width=102 - height=20 - } - control { - chan="$(P)$(R).SBIT" - clr=14 - bclr=51 - } - } - menu { - object { - x=150 - y=256 - width=102 - height=20 - } - control { - chan="$(P)$(R).PRTY" - clr=14 - bclr=51 - } - } - menu { - object { - x=150 - y=281 - width=102 - height=20 - } - control { - chan="$(P)$(R).MCTL" - clr=14 - bclr=51 - } - } - text { - object { - x=8 - y=306 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Flow control:" - align="horiz. right" - } - menu { - object { - x=150 - y=306 - width=102 - height=20 - } - control { - chan="$(P)$(R).FCTL" - clr=14 - bclr=51 - } - } - text { - object { - x=8 - y=331 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="XOFF output:" - align="horiz. right" - } - menu { - object { - x=150 - y=331 - width=102 - height=20 - } - control { - chan="$(P)$(R).IXON" - clr=14 - bclr=51 - } - } - text { - object { - x=8 - y=356 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="XOFF input:" - align="horiz. right" - } - menu { - object { - x=150 - y=356 - width=102 - height=20 - } - control { - chan="$(P)$(R).IXOFF" - clr=14 - bclr=51 - } - } - text { - object { - x=8 - y=381 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="XON=any:" - align="horiz. right" - } - menu { - object { - x=150 - y=381 - width=102 - height=20 - } - control { - chan="$(P)$(R).IXANY" - clr=14 - bclr=51 - } - } - text { - object { - x=8 - y=181 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Baud rate:" - align="horiz. right" - } - "text entry" { - object { - x=150 - y=181 - width=102 - height=18 - } - control { - chan="$(P)$(R).LBAUD" - clr=14 - bclr=51 - } - limits { - } - } - } - } - text { - object { - x=15 - y=151 - width=230 - height=20 - } - "basic attribute" { - clr=14 - } - textix="COM (RFC 2217) protocol" - align="horiz. right" - } - text { - object { - x=5 - y=130 - width=250 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Parameters for ports with" - align="horiz. right" - } + height=20 } + "basic attribute" { + clr=14 + } + textix="Parameters for ports with" + align="horiz. right" } diff --git a/opi/medm/asynOctet.adl b/opi/medm/asynOctet.adl index efad08b..2d192b5 100755 --- a/opi/medm/asynOctet.adl +++ b/opi/medm/asynOctet.adl @@ -1,12 +1,12 @@ file { - name="/home/epics/devel/asyn/medm/asynOctet.adl" - version=030102 + name="/home/epics/devel/asyn-4-33/opi/medm/asynOctet.adl" + version=030109 } display { object { - x=514 - y=515 + x=457 + y=494 width=442 height=350 } @@ -103,116 +103,83 @@ display { limits { } } -composite { +text { object { x=6 y=43 - width=424 - height=20 - } - "composite name"="" - children { - text { - object { - x=6 - y=43 - width=140 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Timeout (sec):" - } - "text entry" { - object { - x=151 - y=43 - width=50 - height=20 - } - control { - chan="$(P)$(R).TMOT" - clr=14 - bclr=51 - } - limits { - } - } - composite { - object { - x=225 - y=43 - width=205 - height=20 - } - "composite name"="" - children { - menu { - object { - x=320 - y=43 - width=110 - height=20 - } - control { - chan="$(P)$(R).TMOD" - clr=14 - bclr=51 - } - } - text { - object { - x=225 - y=43 - width=90 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Transfer:" - align="horiz. right" - } - } - } - } -} -composite { - object { - x=109 + width=140 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Timeout (sec):" +} +"text entry" { + object { + x=151 + y=43 + width=50 + height=20 + } + control { + chan="$(P)$(R).TMOT" + clr=14 + bclr=51 + } + limits { + } +} +menu { + object { + x=320 + y=43 + width=110 + height=20 + } + control { + chan="$(P)$(R).TMOD" + clr=14 + bclr=51 + } +} +text { + object { + x=225 + y=43 + width=90 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Transfer:" + align="horiz. right" +} +rectangle { + object { + x=0 y=5 - width=241 + width=442 height=29 } - "composite name"="" - children { - rectangle { - object { - x=109 - y=5 - width=241 - height=29 - } - "basic attribute" { - clr=2 - } - } - text { - object { - x=113 - y=9 - width=236 - height=21 - } - "basic attribute" { - clr=14 - } - textix="$(P)$(R)" - align="horiz. centered" - } + "basic attribute" { + clr=2 } } +text { + object { + x=0 + y=9 + width=442 + height=21 + } + "basic attribute" { + clr=14 + } + textix="$(P)$(R)" + align="horiz. centered" +} "text entry" { object { x=78 @@ -225,6 +192,7 @@ composite { clr=14 bclr=51 } + format="string" limits { } } @@ -313,6 +281,7 @@ text { clr=14 bclr=51 } + format="string" limits { } } @@ -386,7 +355,7 @@ text { object { x=10 y=297 - width=70 + width=110 height=20 } "basic attribute" { @@ -398,7 +367,7 @@ text { object { x=217 y=297 - width=90 + width=130 height=20 } "basic attribute" { @@ -419,6 +388,7 @@ text { bclr=2 } clrmod="alarm" + format="string" limits { } } @@ -435,6 +405,7 @@ text { bclr=2 } clrmod="alarm" + format="string" limits { } } @@ -450,57 +421,46 @@ rectangle { fill="outline" } } -composite { +text { object { x=9 y=323 - width=250 - height=20 - } - "composite name"="" - children { - text { - object { - x=9 - y=323 - width=50 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Scan:" - align="horiz. right" - } - menu { - object { - x=64 - y=323 - width=110 - height=20 - } - control { - chan="$(P)$(R).SCAN" - clr=14 - bclr=51 - } - } - "message button" { - object { - x=179 - y=323 - width=80 - height=20 - } - control { - chan="$(P)$(R).PROC" - clr=14 - bclr=51 - } - label="Process" - press_msg="1" - } + width=50 + height=20 } + "basic attribute" { + clr=14 + } + textix="Scan:" + align="horiz. right" +} +menu { + object { + x=64 + y=323 + width=110 + height=20 + } + control { + chan="$(P)$(R).SCAN" + clr=14 + bclr=51 + } +} +"message button" { + object { + x=179 + y=323 + width=80 + height=20 + } + control { + chan="$(P)$(R).PROC" + clr=14 + bclr=51 + } + label="Process" + press_msg="1" } text { object { @@ -526,6 +486,7 @@ text { clr=14 bclr=51 } + format="string" limits { } } diff --git a/opi/medm/asynRecord.adl b/opi/medm/asynRecord.adl index 516c26b..4f71072 100644 --- a/opi/medm/asynRecord.adl +++ b/opi/medm/asynRecord.adl @@ -1,7 +1,7 @@ file { - name="/home/epics/devel/asyn/opi/medm/asynRecord.adl" - version=030107 + name="/home/epics/devel/asyn-4-33/opi/medm/asynRecord.adl" + version=030109 } display { object { @@ -87,41 +87,30 @@ display { 1a7309, } } -composite { +rectangle { object { - x=100 + x=0 y=8 - width=241 + width=440 height=29 } - "composite name"="" - children { - rectangle { - object { - x=100 - y=8 - width=241 - height=29 - } - "basic attribute" { - clr=2 - } - } - text { - object { - x=104 - y=12 - width=236 - height=21 - } - "basic attribute" { - clr=14 - } - textix="$(P)$(R)" - align="horiz. centered" - } + "basic attribute" { + clr=2 } } +text { + object { + x=0 + y=12 + width=440 + height=21 + } + "basic attribute" { + clr=14 + } + textix="$(P)$(R)" + align="horiz. centered" +} "text update" { object { x=75 @@ -142,7 +131,7 @@ text { object { x=10 y=181 - width=70 + width=60 height=20 } "basic attribute" { @@ -272,7 +261,7 @@ text { object { x=68 y=316 - width=96 + width=80 height=18 } "basic attribute" { @@ -284,7 +273,7 @@ text { object { x=68 y=385 - width=96 + width=104 height=18 } "basic attribute" { @@ -296,7 +285,7 @@ text { object { x=68 y=362 - width=96 + width=104 height=18 } "basic attribute" { @@ -308,7 +297,7 @@ text { object { x=68 y=339 - width=96 + width=104 height=18 } "basic attribute" { @@ -320,7 +309,7 @@ text { object { x=9 y=269 - width=100 + width=90 height=20 } "basic attribute" { @@ -332,7 +321,7 @@ text { object { x=242 y=362 - width=100 + width=80 height=18 } "basic attribute" { @@ -465,80 +454,59 @@ rectangle { limits { } } -composite { +text { object { x=6 y=97 - width=232 + width=80 height=20 } - "composite name"="" - children { - text { - object { - x=6 - y=97 - width=80 - height=20 - } - "basic attribute" { - clr=14 - } - textix="drvInfo:" - } - "text entry" { - object { - x=88 - y=97 - width=150 - height=20 - } - control { - chan="$(P)$(R).DRVINFO" - clr=14 - bclr=51 - } - limits { - } - } - } -} -composite { + "basic attribute" { + clr=14 + } + textix="drvInfo:" +} +"text entry" { + object { + x=88 + y=97 + width=150 + height=20 + } + control { + chan="$(P)$(R).DRVINFO" + clr=14 + bclr=51 + } + format="string" + limits { + } +} +menu { + object { + x=111 + y=122 + width=130 + height=20 + } + control { + chan="$(P)$(R).IFACE" + clr=14 + bclr=51 + } +} +text { object { x=6 y=122 - width=235 + width=100 height=20 } - "composite name"="" - children { - menu { - object { - x=111 - y=122 - width=130 - height=20 - } - control { - chan="$(P)$(R).IFACE" - clr=14 - bclr=51 - } - } - text { - object { - x=6 - y=122 - width=100 - height=20 - } - "basic attribute" { - clr=14 - fill="outline" - } - textix="Interface:" - } + "basic attribute" { + clr=14 + fill="outline" } + textix="Interface:" } "message button" { object { @@ -582,197 +550,154 @@ text { limits { } } -composite { +text { + object { + x=25 + y=212 + width=90 + height=20 + } + "basic attribute" { + clr=62 + } + "dynamic attribute" { + vis="if not zero" + chan="$(P)$(R).CNCT" + } + textix="Connected" + align="horiz. right" +} +text { object { x=10 y=212 width=120 - height=42 - } - "composite name"="" - children { - text { - object { - x=25 - y=212 - width=90 - height=20 - } - "basic attribute" { - clr=62 - } - "dynamic attribute" { - vis="if not zero" - chan="$(P)$(R).CNCT" - } - textix="Connected" - align="horiz. right" - } - text { - object { - x=10 - y=212 - width=120 - height=20 - } - "basic attribute" { - clr=20 - } - "dynamic attribute" { - vis="if zero" - chan="$(P)$(R).CNCT" - } - textix="Disconnected" - align="horiz. right" - } - menu { - object { - x=10 - y=234 - width=120 - height=20 - } - control { - chan="$(P)$(R).CNCT" - clr=14 - bclr=51 - } - } - } -} -composite { + height=20 + } + "basic attribute" { + clr=20 + } + "dynamic attribute" { + vis="if zero" + chan="$(P)$(R).CNCT" + } + textix="Disconnected" + align="horiz. right" +} +menu { + object { + x=10 + y=234 + width=120 + height=20 + } + control { + chan="$(P)$(R).CNCT" + clr=14 + bclr=51 + } +} +text { object { x=6 y=47 - width=422 + width=50 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Port:" +} +"text entry" { + object { + x=61 + y=47 + width=150 + height=20 + } + control { + chan="$(P)$(R).PORT" + clr=14 + bclr=51 + } + format="string" + limits { + } +} +text { + object { + x=228 + y=47 + width=80 height=20 } - "composite name"="" - children { - text { - object { - x=6 - y=47 - width=50 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Port:" - } - "text entry" { - object { - x=61 - y=47 - width=150 - height=20 - } - control { - chan="$(P)$(R).PORT" - clr=14 - bclr=51 - } - limits { - } - } - text { - object { - x=228 - y=47 - width=80 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Address:" - } - "text entry" { - object { - x=318 - y=47 - width=110 - height=20 - } - control { - chan="$(P)$(R).ADDR" - clr=14 - bclr=51 - } - limits { - } - } - } -} -composite { + "basic attribute" { + clr=14 + } + textix="Address:" +} +"text entry" { + object { + x=318 + y=47 + width=110 + height=20 + } + control { + chan="$(P)$(R).ADDR" + clr=14 + bclr=51 + } + limits { + } +} +menu { object { x=61 y=72 - width=287 + width=120 + height=20 + } + control { + chan="$(P)$(R).PCNCT" + clr=14 + bclr=51 + } +} +text { + object { + x=243 + y=72 + width=90 + height=20 + } + "basic attribute" { + clr=62 + } + "dynamic attribute" { + vis="if not zero" + chan="$(P)$(R).PCNCT" + } + textix="Connected" + align="horiz. right" +} +text { + object { + x=228 + y=72 + width=120 height=20 } - "composite name"="" - children { - menu { - object { - x=61 - y=72 - width=120 - height=20 - } - control { - chan="$(P)$(R).PCNCT" - clr=14 - bclr=51 - } - } - composite { - object { - x=228 - y=72 - width=120 - height=20 - } - "composite name"="" - children { - text { - object { - x=243 - y=72 - width=90 - height=20 - } - "basic attribute" { - clr=62 - } - "dynamic attribute" { - vis="if not zero" - chan="$(P)$(R).PCNCT" - } - textix="Connected" - align="horiz. right" - } - text { - object { - x=228 - y=72 - width=120 - height=20 - } - "basic attribute" { - clr=20 - } - "dynamic attribute" { - vis="if zero" - chan="$(P)$(R).PCNCT" - } - textix="Disconnected" - align="horiz. right" - } - } - } + "basic attribute" { + clr=20 } + "dynamic attribute" { + vis="if zero" + chan="$(P)$(R).PCNCT" + } + textix="Disconnected" + align="horiz. right" } text { object { @@ -826,7 +751,7 @@ text { object { x=183 y=269 - width=100 + width=110 height=20 } "basic attribute" { @@ -838,7 +763,7 @@ text { object { x=242 y=316 - width=100 + width=96 height=18 } "basic attribute" { @@ -850,7 +775,7 @@ text { object { x=242 y=339 - width=100 + width=104 height=18 } "basic attribute" { @@ -906,7 +831,7 @@ text { object { x=183 y=415 - width=100 + width=130 height=20 } "basic attribute" { @@ -930,42 +855,32 @@ text { limits { } } -composite { +text { object { x=9 + y=557 + width=88 + height=18 + } + "basic attribute" { + clr=14 + } + textix="Trace file:" +} +"text entry" { + object { + x=99 y=555 - width=420 + width=330 height=20 } - "composite name"="" - children { - text { - object { - x=9 - y=557 - width=80 - height=18 - } - "basic attribute" { - clr=14 - } - textix="Trace file:" - } - "text entry" { - object { - x=99 - y=555 - width=330 - height=20 - } - control { - chan="$(P)$(R).TFIL" - clr=14 - bclr=51 - } - limits { - } - } + control { + chan="$(P)$(R).TFIL" + clr=14 + bclr=51 + } + format="string" + limits { } } "choice button" { @@ -986,7 +901,7 @@ text { object { x=68 y=408 - width=96 + width=72 height=18 } "basic attribute" { @@ -1024,7 +939,7 @@ text { object { x=242 y=485 - width=100 + width=104 height=18 } "basic attribute" { @@ -1050,7 +965,7 @@ text { object { x=242 y=508 - width=100 + width=120 height=18 } "basic attribute" { @@ -1076,7 +991,7 @@ text { object { x=242 y=462 - width=100 + width=104 height=18 } "basic attribute" { @@ -1116,7 +1031,7 @@ text { object { x=242 y=531 - width=100 + width=120 height=18 } "basic attribute" { diff --git a/opi/medm/asynRegister.adl b/opi/medm/asynRegister.adl index d70ff82..790b485 100755 --- a/opi/medm/asynRegister.adl +++ b/opi/medm/asynRegister.adl @@ -1,12 +1,12 @@ file { - name="/home/epics/devel/asyn/medm/asynRegister.adl" - version=030102 + name="/home/epics/devel/asyn-4-33/opi/medm/asynRegister.adl" + version=030109 } display { object { - x=570 - y=110 + x=344 + y=142 width=510 height=345 } @@ -87,80 +87,58 @@ display { 1a7309, } } -composite { +text { object { x=6 y=43 - width=424 - height=20 - } - "composite name"="" - children { - text { - object { - x=6 - y=43 - width=140 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Timeout (sec):" - } - "text entry" { - object { - x=151 - y=43 - width=50 - height=20 - } - control { - chan="$(P)$(R).TMOT" - clr=14 - bclr=51 - } - limits { - } - } - composite { - object { - x=225 - y=43 - width=205 - height=20 - } - "composite name"="" - children { - menu { - object { - x=320 - y=43 - width=110 - height=20 - } - control { - chan="$(P)$(R).TMOD" - clr=14 - bclr=51 - } - } - text { - object { - x=225 - y=43 - width=90 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Transfer:" - align="horiz. right" - } - } - } + width=140 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Timeout (sec):" +} +"text entry" { + object { + x=151 + y=43 + width=50 + height=20 + } + control { + chan="$(P)$(R).TMOT" + clr=14 + bclr=51 + } + limits { + } +} +menu { + object { + x=320 + y=43 + width=110 + height=20 + } + control { + chan="$(P)$(R).TMOD" + clr=14 + bclr=51 + } +} +text { + object { + x=225 + y=43 + width=90 + height=20 } + "basic attribute" { + clr=14 + } + textix="Transfer:" + align="horiz. right" } text { object { @@ -199,6 +177,7 @@ text { bclr=2 } clrmod="alarm" + format="string" limits { } } @@ -215,6 +194,7 @@ text { bclr=2 } clrmod="alarm" + format="string" limits { } } @@ -230,92 +210,70 @@ rectangle { fill="outline" } } -composite { +text { object { x=9 y=310 - width=250 - height=20 - } - "composite name"="" - children { - text { - object { - x=9 - y=310 - width=50 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Scan:" - align="horiz. right" - } - menu { - object { - x=64 - y=310 - width=110 - height=20 - } - control { - chan="$(P)$(R).SCAN" - clr=14 - bclr=51 - } - } - "message button" { - object { - x=179 - y=310 - width=80 - height=20 - } - control { - chan="$(P)$(R).PROC" - clr=14 - bclr=51 - } - label="Process" - press_msg="1" - } - } -} -composite { - object { - x=135 + width=50 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Scan:" + align="horiz. right" +} +menu { + object { + x=64 + y=310 + width=110 + height=20 + } + control { + chan="$(P)$(R).SCAN" + clr=14 + bclr=51 + } +} +"message button" { + object { + x=179 + y=310 + width=80 + height=20 + } + control { + chan="$(P)$(R).PROC" + clr=14 + bclr=51 + } + label="Process" + press_msg="1" +} +rectangle { + object { + x=0 y=5 - width=241 + width=510 height=29 } - "composite name"="" - children { - rectangle { - object { - x=135 - y=5 - width=241 - height=29 - } - "basic attribute" { - clr=2 - } - } - text { - object { - x=139 - y=9 - width=236 - height=21 - } - "basic attribute" { - clr=14 - } - textix="$(P)$(R)" - align="horiz. centered" - } + "basic attribute" { + clr=2 + } +} +text { + object { + x=0 + y=9 + width=510 + height=21 + } + "basic attribute" { + clr=14 } + textix="$(P)$(R)" + align="horiz. centered" } text { object { diff --git a/opi/medm/asynSerialPortSetup.adl b/opi/medm/asynSerialPortSetup.adl index e1b8503..3e5043a 100644 --- a/opi/medm/asynSerialPortSetup.adl +++ b/opi/medm/asynSerialPortSetup.adl @@ -1,430 +1,419 @@ - -file { - name="/home/epics/devel/asyn-4-28/opi/medm/asynSerialPortSetup.adl" - version=030107 -} -display { - object { - x=154 - y=74 - width=260 - height=300 - } - clr=14 - bclr=4 - cmap="" - gridSpacing=5 - gridOn=0 - snapToGrid=0 -} -"color map" { - ncolors=65 - colors { - ffffff, - ececec, - dadada, - c8c8c8, - bbbbbb, - aeaeae, - 9e9e9e, - 919191, - 858585, - 787878, - 696969, - 5a5a5a, - 464646, - 2d2d2d, - 000000, - 00d800, - 1ebb00, - 339900, - 2d7f00, - 216c00, - fd0000, - de1309, - be190b, - a01207, - 820400, - 5893ff, - 597ee1, - 4b6ec7, - 3a5eab, - 27548d, - fbf34a, - f9da3c, - eeb62b, - e19015, - cd6100, - ffb0ff, - d67fe2, - ae4ebc, - 8b1a96, - 610a75, - a4aaff, - 8793e2, - 6a73c1, - 4d52a4, - 343386, - c7bb6d, - b79d5c, - a47e3c, - 7d5627, - 58340f, - 99ffff, - 73dfff, - 4ea5f9, - 2a63e4, - 0a00b8, - ebf1b5, - d4db9d, - bbc187, - a6a462, - 8b8239, - 73ff6b, - 52da3b, - 3cb420, - 289315, - 1a7309, - } -} -rectangle { - object { - x=29 - y=2 - width=203 - height=16 - } - "basic attribute" { - clr=2 - } -} -text { - object { - x=35 - y=2 - width=190 - height=16 - } - "basic attribute" { - clr=14 - } - textix="$(P)$(R)" - align="horiz. centered" -} -text { - object { - x=148 - y=25 - width=90 - height=20 - } - "basic attribute" { - clr=17 - } - "dynamic attribute" { - vis="if not zero" - chan="$(P)$(R).OPTIONIV" - } - textix="Supported" -} -text { - object { - x=138 - y=25 - width=110 - height=20 - } - "basic attribute" { - clr=21 - } - "dynamic attribute" { - vis="if zero" - chan="$(P)$(R).OPTIONIV" - } - textix="Unsupported" -} -text { - object { - x=8 - y=25 - width=110 - height=20 - } - "basic attribute" { - clr=14 - } - textix="asynOption:" -} -text { - object { - x=8 - y=51 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Baud rate:" - align="horiz. right" -} -menu { - object { - x=150 - y=51 - width=102 - height=20 - } - control { - chan="$(P)$(R).BAUD" - clr=14 - bclr=51 - } -} -text { - object { - x=8 - y=76 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Baud rate:" - align="horiz. right" -} -composite { - object { - x=8 - y=101 - width=244 - height=195 - } - "composite name"="" - children { - text { - object { - x=8 - y=101 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Data bits:" - align="horiz. right" - } - text { - object { - x=8 - y=126 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Stop bits:" - align="horiz. right" - } - text { - object { - x=8 - y=176 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Modem control:" - align="horiz. right" - } - text { - object { - x=8 - y=151 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Parity:" - align="horiz. right" - } - menu { - object { - x=150 - y=101 - width=102 - height=20 - } - control { - chan="$(P)$(R).DBIT" - clr=14 - bclr=51 - } - } - menu { - object { - x=150 - y=126 - width=102 - height=20 - } - control { - chan="$(P)$(R).SBIT" - clr=14 - bclr=51 - } - } - menu { - object { - x=150 - y=151 - width=102 - height=20 - } - control { - chan="$(P)$(R).PRTY" - clr=14 - bclr=51 - } - } - menu { - object { - x=150 - y=176 - width=102 - height=20 - } - control { - chan="$(P)$(R).MCTL" - clr=14 - bclr=51 - } - } - text { - object { - x=8 - y=201 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Flow control:" - align="horiz. right" - } - menu { - object { - x=150 - y=201 - width=102 - height=20 - } - control { - chan="$(P)$(R).FCTL" - clr=14 - bclr=51 - } - } - text { - object { - x=8 - y=226 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="XOFF output:" - align="horiz. right" - } - menu { - object { - x=150 - y=226 - width=102 - height=20 - } - control { - chan="$(P)$(R).IXON" - clr=14 - bclr=51 - } - } - text { - object { - x=8 - y=251 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="XOFF input:" - align="horiz. right" - } - menu { - object { - x=150 - y=251 - width=102 - height=20 - } - control { - chan="$(P)$(R).IXOFF" - clr=14 - bclr=51 - } - } - text { - object { - x=8 - y=276 - width=135 - height=20 - } - "basic attribute" { - clr=14 - } - textix="XON=any:" - align="horiz. right" - } - menu { - object { - x=150 - y=276 - width=102 - height=20 - } - control { - chan="$(P)$(R).IXANY" - clr=14 - bclr=51 - } - } - } -} -"text entry" { - object { - x=150 - y=76 - width=102 - height=18 - } - control { - chan="$(P)$(R).LBAUD" - clr=14 - bclr=51 - } - limits { - } -} + +file { + name="/home/epics/devel/asyn-4-33/opi/medm/asynSerialPortSetup.adl" + version=030109 +} +display { + object { + x=228 + y=79 + width=260 + height=300 + } + clr=14 + bclr=4 + cmap="" + gridSpacing=5 + gridOn=0 + snapToGrid=0 +} +"color map" { + ncolors=65 + colors { + ffffff, + ececec, + dadada, + c8c8c8, + bbbbbb, + aeaeae, + 9e9e9e, + 919191, + 858585, + 787878, + 696969, + 5a5a5a, + 464646, + 2d2d2d, + 000000, + 00d800, + 1ebb00, + 339900, + 2d7f00, + 216c00, + fd0000, + de1309, + be190b, + a01207, + 820400, + 5893ff, + 597ee1, + 4b6ec7, + 3a5eab, + 27548d, + fbf34a, + f9da3c, + eeb62b, + e19015, + cd6100, + ffb0ff, + d67fe2, + ae4ebc, + 8b1a96, + 610a75, + a4aaff, + 8793e2, + 6a73c1, + 4d52a4, + 343386, + c7bb6d, + b79d5c, + a47e3c, + 7d5627, + 58340f, + 99ffff, + 73dfff, + 4ea5f9, + 2a63e4, + 0a00b8, + ebf1b5, + d4db9d, + bbc187, + a6a462, + 8b8239, + 73ff6b, + 52da3b, + 3cb420, + 289315, + 1a7309, + } +} +rectangle { + object { + x=0 + y=2 + width=260 + height=16 + } + "basic attribute" { + clr=2 + } +} +text { + object { + x=0 + y=2 + width=260 + height=16 + } + "basic attribute" { + clr=14 + } + textix="$(P)$(R)" + align="horiz. centered" +} +text { + object { + x=148 + y=25 + width=90 + height=20 + } + "basic attribute" { + clr=17 + } + "dynamic attribute" { + vis="if not zero" + chan="$(P)$(R).OPTIONIV" + } + textix="Supported" +} +text { + object { + x=138 + y=25 + width=110 + height=20 + } + "basic attribute" { + clr=21 + } + "dynamic attribute" { + vis="if zero" + chan="$(P)$(R).OPTIONIV" + } + textix="Unsupported" +} +text { + object { + x=8 + y=25 + width=110 + height=20 + } + "basic attribute" { + clr=14 + } + textix="asynOption:" +} +text { + object { + x=43 + y=51 + width=100 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Baud rate:" + align="horiz. right" +} +menu { + object { + x=150 + y=51 + width=102 + height=20 + } + control { + chan="$(P)$(R).BAUD" + clr=14 + bclr=51 + } +} +text { + object { + x=43 + y=76 + width=100 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Baud rate:" + align="horiz. right" +} +text { + object { + x=43 + y=101 + width=100 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Data bits:" + align="horiz. right" +} +text { + object { + x=43 + y=126 + width=100 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Stop bits:" + align="horiz. right" +} +text { + object { + x=3 + y=176 + width=140 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Modem control:" + align="horiz. right" +} +text { + object { + x=73 + y=151 + width=70 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Parity:" + align="horiz. right" +} +menu { + object { + x=150 + y=101 + width=102 + height=20 + } + control { + chan="$(P)$(R).DBIT" + clr=14 + bclr=51 + } +} +menu { + object { + x=150 + y=126 + width=102 + height=20 + } + control { + chan="$(P)$(R).SBIT" + clr=14 + bclr=51 + } +} +menu { + object { + x=150 + y=151 + width=102 + height=20 + } + control { + chan="$(P)$(R).PRTY" + clr=14 + bclr=51 + } +} +menu { + object { + x=150 + y=176 + width=102 + height=20 + } + control { + chan="$(P)$(R).MCTL" + clr=14 + bclr=51 + } +} +text { + object { + x=13 + y=201 + width=130 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Flow control:" + align="horiz. right" +} +menu { + object { + x=150 + y=201 + width=102 + height=20 + } + control { + chan="$(P)$(R).FCTL" + clr=14 + bclr=51 + } +} +text { + object { + x=23 + y=226 + width=120 + height=20 + } + "basic attribute" { + clr=14 + } + textix="XOFF output:" + align="horiz. right" +} +menu { + object { + x=150 + y=226 + width=102 + height=20 + } + control { + chan="$(P)$(R).IXON" + clr=14 + bclr=51 + } +} +text { + object { + x=33 + y=251 + width=110 + height=20 + } + "basic attribute" { + clr=14 + } + textix="XOFF input:" + align="horiz. right" +} +menu { + object { + x=150 + y=251 + width=102 + height=20 + } + control { + chan="$(P)$(R).IXOFF" + clr=14 + bclr=51 + } +} +text { + object { + x=63 + y=276 + width=80 + height=20 + } + "basic attribute" { + clr=14 + } + textix="XON=any:" + align="horiz. right" +} +menu { + object { + x=150 + y=276 + width=102 + height=20 + } + control { + chan="$(P)$(R).IXANY" + clr=14 + bclr=51 + } +} +"text entry" { + object { + x=150 + y=76 + width=102 + height=18 + } + control { + chan="$(P)$(R).LBAUD" + clr=14 + bclr=51 + } + limits { + } +} diff --git a/opi/medm/asynTimeSeries.adl b/opi/medm/asynTimeSeries.adl index 5a35d65..eaced44 100644 --- a/opi/medm/asynTimeSeries.adl +++ b/opi/medm/asynTimeSeries.adl @@ -1,12 +1,12 @@ file { - name="/home/epics/devel/asyn/opi/medm/asynTimeSeries.adl" - version=030105 + name="/home/epics/devel/asyn-4-33/opi/medm/asynTimeSeries.adl" + version=030109 } display { object { - x=469 - y=198 + x=326 + y=179 width=500 height=360 } @@ -89,9 +89,9 @@ display { } rectangle { object { - x=25 + x=0 y=5 - width=450 + width=500 height=25 } "basic attribute" { @@ -100,9 +100,9 @@ rectangle { } text { object { - x=205 + x=0 y=5 - width=96 + width=500 height=25 } "basic attribute" { @@ -111,101 +111,79 @@ text { textix="$(P)$(R)" align="horiz. centered" } -composite { +text { object { x=42 y=40 - width=160 + width=90 + height=20 + } + "basic attribute" { + clr=18 + } + "dynamic attribute" { + vis="if not zero" + chan="$(P)$(R).BUSY" + } + textix="Acquiring" + align="horiz. centered" +} +text { + object { + x=95 + y=40 + width=40 height=20 } - "composite name"="" - children { - text { - object { - x=42 - y=40 - width=90 - height=20 - } - "basic attribute" { - clr=18 - } - "dynamic attribute" { - vis="if not zero" - chan="$(P)$(R).BUSY" - } - textix="Acquiring" - align="horiz. centered" - } - text { - object { - x=95 - y=40 - width=40 - height=20 - } - "basic attribute" { - clr=21 - } - "dynamic attribute" { - vis="if zero" - chan="$(P)$(R).BUSY" - } - textix="Done" - align="horiz. centered" - } - text { - object { - x=142 - y=40 - width=60 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Status" - } + "basic attribute" { + clr=21 + } + "dynamic attribute" { + vis="if zero" + chan="$(P)$(R).BUSY" } + textix="Done" + align="horiz. centered" } -composite { +text { + object { + x=142 + y=40 + width=60 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Status" +} +"text update" { object { x=224 y=40 - width=235 + width=100 height=20 } - "composite name"="" - children { - "text update" { - object { - x=224 - y=40 - width=100 - height=20 - } - monitor { - chan="$(P)$(R).NORD" - clr=54 - bclr=4 - } - align="horiz. right" - limits { - } - } - text { - object { - x=329 - y=40 - width=130 - height=20 - } - "basic attribute" { - clr=14 - } - textix="Current point" - } + monitor { + chan="$(P)$(R).NORD" + clr=54 + bclr=4 + } + align="horiz. right" + limits { + } +} +text { + object { + x=329 + y=40 + width=130 + height=20 + } + "basic attribute" { + clr=14 } + textix="Current point" } "cartesian plot" { object { @@ -226,6 +204,7 @@ composite { trace[0] { ydata="$(P)$(R).VAL" data_clr=27 + yaxis=0 } x_axis { rangeStyle="auto-scale" diff --git a/testErrorsApp/src/testErrors.cpp b/testErrorsApp/src/testErrors.cpp index 216e476..f45cc1a 100644 --- a/testErrorsApp/src/testErrors.cpp +++ b/testErrorsApp/src/testErrors.cpp @@ -59,7 +59,7 @@ static void callbackTask(void *drvPvt); /** Constructor for the testErrors class. * Calls constructor for the asynPortDriver base class. * \param[in] portName The name of the asyn port driver to be created. */ -testErrors::testErrors(const char *portName) +testErrors::testErrors(const char *portName, int canBlock) : asynPortDriver(portName, 1, /* maxAddr */ /* Interface mask */ @@ -70,7 +70,7 @@ testErrors::testErrors(const char *portName) asynInt32Mask | asynFloat64Mask | asynUInt32DigitalMask | asynOctetMask | asynInt8ArrayMask | asynInt16ArrayMask | asynInt32ArrayMask | asynFloat32ArrayMask | asynFloat64ArrayMask | asynEnumMask, - 0, /* asynFlags. This driver does not block and it is not multi-device, so flag is 0 */ + canBlock ? ASYN_CANBLOCK : 0, /* asynFlags */ 1, /* Autoconnect */ 0, /* Default priority */ 0) /* Default stack size*/ @@ -289,6 +289,18 @@ void testErrors::setEnums() MAX_UINT32_ENUMS, P_MultibitUInt32DigitalValue, 0); } +asynStatus testErrors::setStatusAndSeverity(asynUser *pasynUser) +{ + int status; + + getIntegerParam(P_StatusReturn, &status); + getIntegerParam(P_AlarmStatus, &pasynUser->alarmStatus); + getIntegerParam(P_AlarmSeverity, &pasynUser->alarmSeverity); + setParamStatus(pasynUser->reason, (asynStatus) status); + setParamAlarmStatus(pasynUser->reason, pasynUser->alarmStatus); + setParamAlarmSeverity(pasynUser->reason, pasynUser->alarmSeverity); + return (asynStatus) status; +} /** Called when asyn clients call pasynInt32->write(). * This function sends a signal to the simTask thread if the value of P_Run has changed. * For all parameters it sets the value in the parameter library and calls any registered callbacks.. @@ -298,7 +310,6 @@ asynStatus testErrors::writeInt32(asynUser *pasynUser, epicsInt32 value) { int function = pasynUser->reason; asynStatus status = asynSuccess; - epicsInt32 itemp; const char *paramName; const char* functionName = "writeInt32"; @@ -317,10 +328,8 @@ asynStatus testErrors::writeInt32(asynUser *pasynUser, epicsInt32 value) setEnums(); } else { - /* Set the parameter status in the parameter library except for the above commands with always return OK */ - /* Get the current error status */ - getIntegerParam(P_StatusReturn, &itemp); status = (asynStatus)itemp; - setParamStatus(function, status); + /* Set the parameter status in the parameter library except for the above commands which always return OK */ + status = setStatusAndSeverity(pasynUser); } /* Do callbacks so higher layers see any changes */ @@ -344,20 +353,17 @@ asynStatus testErrors::writeFloat64(asynUser *pasynUser, epicsFloat64 value) { int function = pasynUser->reason; asynStatus status = asynSuccess; - epicsInt32 itemp; const char *paramName; const char* functionName = "writeFloat64"; - /* Get the current error status */ - getIntegerParam(P_StatusReturn, &itemp); status = (asynStatus)itemp; - /* Fetch the parameter string name for use in debugging */ getParamName(function, ¶mName); /* Set the parameter in the parameter library. */ setDoubleParam(function, value); - /* Set the parameter status in the parameter library. */ - setParamStatus(function, status); + + /* Set the parameter status in the parameter library */ + status = setStatusAndSeverity(pasynUser); /* Do callbacks so higher layers see any changes */ callParamCallbacks(); @@ -381,20 +387,17 @@ asynStatus testErrors::writeUInt32Digital(asynUser *pasynUser, epicsUInt32 value { int function = pasynUser->reason; asynStatus status = asynSuccess; - epicsInt32 itemp; const char *paramName; const char* functionName = "writeUInt32D"; - /* Get the current error status */ - getIntegerParam(P_StatusReturn, &itemp); status = (asynStatus)itemp; - /* Fetch the parameter string name for use in debugging */ getParamName(function, ¶mName); /* Set the parameter value in the parameter library. */ setUIntDigitalParam(function, value, mask); - /* Set the parameter status in the parameter library. */ - setParamStatus(function, status); + + /* Set the parameter status in the parameter library */ + status = setStatusAndSeverity(pasynUser); /* Do callbacks so higher layers see any changes */ callParamCallbacks(); @@ -422,28 +425,28 @@ asynStatus testErrors::writeOctet(asynUser *pasynUser, const char *value, { int function = pasynUser->reason; asynStatus status = asynSuccess; - epicsInt32 itemp; + const char *paramName; const char *functionName = "writeOctet"; - /* Get the current error status */ - getIntegerParam(P_StatusReturn, &itemp); status = (asynStatus)itemp; + /* Fetch the parameter string name for use in debugging */ + getParamName(function, ¶mName); /* Set the parameter in the parameter library. */ setStringParam(function, (char *)value); - /* Set the parameter status in the parameter library. */ - setParamStatus(function, status); + /* Set the parameter status in the parameter library */ + status = setStatusAndSeverity(pasynUser); /* Do callbacks so higher layers see any changes */ callParamCallbacks(); if (status) epicsSnprintf(pasynUser->errorMessage, pasynUser->errorMessageSize, - "%s:%s: status=%d, function=%d, value=%s", - driverName, functionName, status, function, value); + "%s:%s: status=%d, function=%d, name=%s, value=%s", + driverName, functionName, status, function, paramName, value); else asynPrint(pasynUser, ASYN_TRACEIO_DRIVER, - "%s:%s: function=%d, value=%s\n", - driverName, functionName, function, value); + "%s:%s: function=%d, name=%s, value=%s\n", + driverName, functionName, function, paramName, value); *nActual = nChars; return status; } @@ -541,14 +544,12 @@ asynStatus testErrors::doReadArray(asynUser *pasynUser, epicsType *value, epicsTimeStamp timestamp; const char *functionName = "doReadArray"; - /* Get the current error status */ - getIntegerParam(P_StatusReturn, &status); - /* Get the current timestamp */ getTimeStamp(×tamp); pasynUser->timestamp = timestamp; - getParamAlarmStatus(function, &pasynUser->alarmStatus); - getParamAlarmSeverity(function, &pasynUser->alarmSeverity); + + /* Set the parameter status in the parameter library */ + status = setStatusAndSeverity(pasynUser); if (nElements < ncopy) ncopy = nElements; if (function == paramIndex) { @@ -610,21 +611,22 @@ extern "C" { /** EPICS iocsh callable function to call constructor for the testErrors class. * \param[in] portName The name of the asyn port driver to be created. */ -int testErrorsConfigure(const char *portName) +int testErrorsConfigure(const char *portName, int canBlock) { - new testErrors(portName); - return(asynSuccess); + new testErrors(portName, canBlock); + return asynSuccess; } /* EPICS iocsh shell commands */ -static const iocshArg initArg0 = { "portName",iocshArgString}; -static const iocshArg * const initArgs[] = {&initArg0}; -static const iocshFuncDef initFuncDef = {"testErrorsConfigure",1,initArgs}; +static const iocshArg initArg0 = { "portName", iocshArgString}; +static const iocshArg initArg1 = { "canBlock", iocshArgInt}; +static const iocshArg * const initArgs[] = {&initArg0, &initArg1}; +static const iocshFuncDef initFuncDef = {"testErrorsConfigure", 2, initArgs}; static void initCallFunc(const iocshArgBuf *args) { - testErrorsConfigure(args[0].sval); + testErrorsConfigure(args[0].sval, args[1].ival); } void testErrorsRegister(void) diff --git a/testErrorsApp/src/testErrors.h b/testErrorsApp/src/testErrors.h index 7518aac..d79cf8e 100644 --- a/testErrorsApp/src/testErrors.h +++ b/testErrorsApp/src/testErrors.h @@ -44,7 +44,7 @@ * scanned records. */ class testErrors : public asynPortDriver { public: - testErrors(const char *portName); + testErrors(const char *portName, int canBlock); /* These are the methods that we override from asynPortDriver */ virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value); @@ -101,6 +101,7 @@ class testErrors : public asynPortDriver { int uint32EnumSeverities_[MAX_UINT32_ENUMS]; epicsEventId eventId_; void setEnums(); + asynStatus setStatusAndSeverity(asynUser *pasynUser); epicsInt8 int8ArrayValue_ [MAX_ARRAY_POINTS]; epicsInt16 int16ArrayValue_ [MAX_ARRAY_POINTS]; epicsInt32 int32ArrayValue_ [MAX_ARRAY_POINTS]; diff --git a/testIPServerApp/Db/Makefile b/testIPServerApp/Db/Makefile index e3d7750..83fb72c 100644 --- a/testIPServerApp/Db/Makefile +++ b/testIPServerApp/Db/Makefile @@ -1,5 +1,6 @@ TOP=../.. include $(TOP)/configure/CONFIG DB += testIPServer.db +DB += testIPServer1.db DB += asynPortTest.db include $(TOP)/configure/RULES diff --git a/testIPServerApp/Db/testIPServer1.db b/testIPServerApp/Db/testIPServer1.db new file mode 100644 index 0000000..c4e4381 --- /dev/null +++ b/testIPServerApp/Db/testIPServer1.db @@ -0,0 +1,9 @@ +record(stringin,"$(P)stringInput") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn($(PORT),0,1)") +} +record(stringout,"$(P)stringOutput") { + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn($(PORT),0,1)") +} + diff --git a/testOutputCallbackApp/Db/Makefile b/testOutputCallbackApp/Db/Makefile new file mode 100644 index 0000000..50b0b56 --- /dev/null +++ b/testOutputCallbackApp/Db/Makefile @@ -0,0 +1,4 @@ +TOP=../.. +include $(TOP)/configure/CONFIG +DB += testOutputCallback.db +include $(TOP)/configure/RULES diff --git a/testOutputCallbackApp/Db/testOutputCallback.db b/testOutputCallbackApp/Db/testOutputCallback.db new file mode 100644 index 0000000..89d8af2 --- /dev/null +++ b/testOutputCallbackApp/Db/testOutputCallback.db @@ -0,0 +1,106 @@ +record(longout, "$(P)LongoutInt32") +{ + field(PINI, "$(PINI)") + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))INT32_VALUE") + info(asyn:READBACK,"1") +} + +record(longin, "$(P)LonginInt32") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))INT32_VALUE") + field(SCAN, "I/O Intr") +} + +record(bo, "$(P)BoInt32") +{ + field(PINI, "$(PINI)") + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))INT32_BINARY_VALUE") + field(ZNAM, "Zero") + field(ONAM, "One") + info(asyn:READBACK,"1") +} + +record(bi, "$(P)BiInt32") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))INT32_BINARY_VALUE") + field(ZNAM, "Zero") + field(ONAM, "One") + field(SCAN, "I/O Intr") +} + +record(longout, "$(P)LongoutUInt32D") +{ + field(PINI, "$(PINI)") + field(DTYP, "asynUInt32Digital") + field(OUT, "@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))UINT32D_VALUE") + info(asyn:READBACK,"1") +} + +record(longin, "$(P)LonginUInt32D") +{ + field(DTYP, "asynUInt32Digital") + field(INP, "@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))UINT32D_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "$(P)AoFloat64") +{ + field(PINI, "$(PINI)") + field(DTYP, "asynFloat64") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FLOAT64_VALUE") + field(PREC, "1") + info(asyn:READBACK,"1") +} + +record(ai, "$(P)AiFloat64") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FLOAT64_VALUE") + field(SCAN, "I/O Intr") +} + +record(stringout, "$(P)Stringout") +{ + field(PINI, "$(PINI)") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))OCTET_VALUE") + field(VAL, "test") + info(asyn:READBACK,"1") + info(asyn:FIFO, "10") +} + +record(stringin, "$(P)Stringin") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))OCTET_VALUE") + field(SCAN, "I/O Intr") + info(asyn:FIFO, "10") +} + +record(longout, "$(P)NumCallbacks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))NUM_CALLBACKS") + field(VAL, "1") +} + +record(ao, "$(P)SleepTime") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SLEEP_TIME") + field(PREC, "3") + field(VAL, "0.") +} + +record(bo, "$(P)TriggerCallbacks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TRIGGER_CALLBACKS") + field(VAL, "1") +} + + diff --git a/testOutputCallbackApp/Makefile b/testOutputCallbackApp/Makefile new file mode 100644 index 0000000..daafed6 --- /dev/null +++ b/testOutputCallbackApp/Makefile @@ -0,0 +1,5 @@ +TOP = .. +include $(TOP)/configure/CONFIG +DIRS += src +DIRS += Db +include $(TOP)/configure/RULES_DIRS diff --git a/testOutputCallbackApp/adl/testOutputCallback.adl b/testOutputCallbackApp/adl/testOutputCallback.adl new file mode 100644 index 0000000..440fb48 --- /dev/null +++ b/testOutputCallbackApp/adl/testOutputCallback.adl @@ -0,0 +1,631 @@ + +file { + name="/home/epics/devel/asyn/testOutputCallbackApp/adl/testOutputCallback.adl" + version=030109 +} +display { + object { + x=140 + y=123 + width=530 + height=300 + } + clr=14 + bclr=4 + cmap="" + gridSpacing=5 + gridOn=0 + snapToGrid=0 +} +"color map" { + ncolors=65 + colors { + ffffff, + ececec, + dadada, + c8c8c8, + bbbbbb, + aeaeae, + 9e9e9e, + 919191, + 858585, + 787878, + 696969, + 5a5a5a, + 464646, + 2d2d2d, + 000000, + 00d800, + 1ebb00, + 339900, + 2d7f00, + 216c00, + fd0000, + de1309, + be190b, + a01207, + 820400, + 5893ff, + 597ee1, + 4b6ec7, + 3a5eab, + 27548d, + fbf34a, + f9da3c, + eeb62b, + e19015, + cd6100, + ffb0ff, + d67fe2, + ae4ebc, + 8b1a96, + 610a75, + a4aaff, + 8793e2, + 6a73c1, + 4d52a4, + 343386, + c7bb6d, + b79d5c, + a47e3c, + 7d5627, + 58340f, + 99ffff, + 73dfff, + 4ea5f9, + 2a63e4, + 0a00b8, + ebf1b5, + d4db9d, + bbc187, + a6a462, + 8b8239, + 73ff6b, + 52da3b, + 3cb420, + 289315, + 1a7309, + } +} +text { + object { + x=109 + y=5 + width=312 + height=25 + } + "basic attribute" { + clr=14 + } + textix="asyn Output Callback Tests" + align="horiz. centered" +} +composite { + object { + x=90 + y=55 + width=421 + height=20 + } + "composite name"="" + children { + text { + object { + x=90 + y=55 + width=90 + height=20 + } + "basic attribute" { + clr=54 + } + textix="asynInt32" + } + text { + object { + x=205 + y=55 + width=70 + height=20 + } + "basic attribute" { + clr=14 + } + textix="longout" + align="horiz. right" + } + "text entry" { + object { + x=280 + y=55 + width=80 + height=20 + } + control { + chan="$(P)LongoutInt32" + clr=14 + bclr=2 + } + limits { + } + } + text { + object { + x=385 + y=55 + width=60 + height=20 + } + "basic attribute" { + clr=14 + } + textix="longin" + align="horiz. right" + } + "text update" { + object { + x=450 + y=56 + width=61 + height=18 + } + monitor { + chan="$(P)LonginInt32" + clr=54 + bclr=2 + } + align="horiz. centered" + limits { + } + } + } +} +composite { + object { + x=205 + y=80 + width=306 + height=20 + } + "composite name"="" + children { + text { + object { + x=205 + y=80 + width=70 + height=20 + } + "basic attribute" { + clr=14 + } + textix="bo" + align="horiz. right" + } + "text entry" { + object { + x=280 + y=80 + width=80 + height=20 + } + control { + chan="$(P)BoInt32" + clr=14 + bclr=2 + } + limits { + } + } + text { + object { + x=425 + y=80 + width=20 + height=20 + } + "basic attribute" { + clr=14 + } + textix="bi" + align="horiz. right" + } + "text update" { + object { + x=450 + y=81 + width=61 + height=18 + } + monitor { + chan="$(P)BiInt32" + clr=54 + bclr=2 + } + align="horiz. centered" + limits { + } + } + } +} +composite { + object { + x=10 + y=105 + width=501 + height=20 + } + "composite name"="" + children { + text { + object { + x=205 + y=105 + width=70 + height=20 + } + "basic attribute" { + clr=14 + } + textix="longout" + align="horiz. right" + } + "text entry" { + object { + x=280 + y=105 + width=80 + height=20 + } + control { + chan="$(P)LongoutUInt32D" + clr=14 + bclr=2 + } + format="hexadecimal" + limits { + } + } + text { + object { + x=385 + y=105 + width=60 + height=20 + } + "basic attribute" { + clr=14 + } + textix="longin" + align="horiz. right" + } + "text update" { + object { + x=450 + y=106 + width=61 + height=18 + } + monitor { + chan="$(P)LonginUInt32D" + clr=54 + bclr=2 + } + align="horiz. centered" + format="hexadecimal" + limits { + } + } + text { + object { + x=10 + y=105 + width=170 + height=20 + } + "basic attribute" { + clr=54 + } + textix="asynUInt32Digital" + align="horiz. centered" + } + } +} +composite { + object { + x=70 + y=130 + width=441 + height=20 + } + "composite name"="" + children { + text { + object { + x=70 + y=130 + width=110 + height=20 + } + "basic attribute" { + clr=54 + } + textix="asynFloat64" + } + text { + object { + x=255 + y=130 + width=20 + height=20 + } + "basic attribute" { + clr=14 + } + textix="ao" + align="horiz. right" + } + "text entry" { + object { + x=280 + y=130 + width=80 + height=20 + } + control { + chan="$(P)AoFloat64" + clr=14 + bclr=2 + } + limits { + } + } + text { + object { + x=425 + y=130 + width=20 + height=20 + } + "basic attribute" { + clr=14 + } + textix="ai" + align="horiz. right" + } + "text update" { + object { + x=450 + y=131 + width=61 + height=18 + } + monitor { + chan="$(P)AiFloat64" + clr=54 + bclr=2 + } + align="horiz. centered" + limits { + } + } + } +} +text { + object { + x=90 + y=155 + width=90 + height=20 + } + "basic attribute" { + clr=54 + } + textix="asynOctet" + align="horiz. centered" +} +text { + object { + x=185 + y=155 + width=90 + height=20 + } + "basic attribute" { + clr=14 + } + textix="stringout" + align="horiz. right" +} +"text entry" { + object { + x=280 + y=155 + width=80 + height=20 + } + control { + chan="$(P)Stringout" + clr=14 + bclr=2 + } + format="hexadecimal" + limits { + } +} +text { + object { + x=365 + y=155 + width=80 + height=20 + } + "basic attribute" { + clr=14 + } + textix="stringin" + align="horiz. right" +} +"text update" { + object { + x=450 + y=156 + width=61 + height=18 + } + monitor { + chan="$(P)Stringin" + clr=54 + bclr=2 + } + align="horiz. centered" + format="hexadecimal" + limits { + } +} +composite { + object { + x=46 + y=247 + width=313 + height=20 + } + "composite name"="" + children { + text { + object { + x=46 + y=247 + width=170 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Trigger callbacks" + align="horiz. right" + } + "message button" { + object { + x=221 + y=247 + width=138 + height=20 + } + control { + chan="$(P)TriggerCallbacks" + clr=14 + bclr=51 + } + label="Trigger callbacks" + press_msg="1" + } + } +} +composite { + object { + x=174 + y=222 + width=185 + height=20 + } + "composite name"="" + children { + text { + object { + x=174 + y=222 + width=100 + height=20 + } + "basic attribute" { + clr=14 + } + textix="Sleep time" + align="horiz. right" + } + "text entry" { + object { + x=279 + y=222 + width=80 + height=20 + } + control { + chan="$(P)SleepTime" + clr=14 + bclr=2 + } + limits { + } + } + } +} +composite { + object { + x=164 + y=197 + width=195 + height=20 + } + "composite name"="" + children { + text { + object { + x=164 + y=197 + width=110 + height=20 + } + "basic attribute" { + clr=14 + } + textix="# callbacks" + align="horiz. right" + } + "text entry" { + object { + x=279 + y=197 + width=80 + height=20 + } + control { + chan="$(P)NumCallbacks" + clr=14 + bclr=2 + } + limits { + } + } + } +} +"related display" { + object { + x=259 + y=272 + width=100 + height=20 + } + display[0] { + label="asyn record" + name="asynRecord.adl" + args="P=testOutputCallback:,R=asyn1" + } + clr=14 + bclr=51 + label="asyn record" +} +text { + object { + x=144 + y=272 + width=110 + height=20 + } + "basic attribute" { + clr=14 + } + textix="asyn record" + align="horiz. right" +} diff --git a/testOutputCallbackApp/adl/testOutputCallbackTop.adl b/testOutputCallbackApp/adl/testOutputCallbackTop.adl new file mode 100644 index 0000000..c4df49a --- /dev/null +++ b/testOutputCallbackApp/adl/testOutputCallbackTop.adl @@ -0,0 +1,121 @@ + +file { + name="/home/epics/devel/asyn-4-32/testOutputCallbackApp/adl/testOutputCallbackTop.adl" + version=030109 +} +display { + object { + x=555 + y=59 + width=300 + height=50 + } + clr=14 + bclr=4 + cmap="" + gridSpacing=5 + gridOn=0 + snapToGrid=0 +} +"color map" { + ncolors=65 + colors { + ffffff, + ececec, + dadada, + c8c8c8, + bbbbbb, + aeaeae, + 9e9e9e, + 919191, + 858585, + 787878, + 696969, + 5a5a5a, + 464646, + 2d2d2d, + 000000, + 00d800, + 1ebb00, + 339900, + 2d7f00, + 216c00, + fd0000, + de1309, + be190b, + a01207, + 820400, + 5893ff, + 597ee1, + 4b6ec7, + 3a5eab, + 27548d, + fbf34a, + f9da3c, + eeb62b, + e19015, + cd6100, + ffb0ff, + d67fe2, + ae4ebc, + 8b1a96, + 610a75, + a4aaff, + 8793e2, + 6a73c1, + 4d52a4, + 343386, + c7bb6d, + b79d5c, + a47e3c, + 7d5627, + 58340f, + 99ffff, + 73dfff, + 4ea5f9, + 2a63e4, + 0a00b8, + ebf1b5, + d4db9d, + bbc187, + a6a462, + 8b8239, + 73ff6b, + 52da3b, + 3cb420, + 289315, + 1a7309, + } +} +"related display" { + object { + x=195 + y=13 + width=80 + height=20 + } + display[0] { + label="testOutputCallback" + name="testOutputCallback.adl" + args="P=testOutputCallback:" + } + display[1] { + label="asynRecord debug" + name="asynRecord.adl" + args="P=testOutputCallback:, R=asyn1" + } + clr=14 + bclr=51 +} +text { + object { + x=6 + y=12 + width=180 + height=20 + } + "basic attribute" { + clr=14 + } + textix="testOutputCallback" +} diff --git a/testOutputCallbackApp/src/Makefile b/testOutputCallbackApp/src/Makefile new file mode 100644 index 0000000..0d18b57 --- /dev/null +++ b/testOutputCallbackApp/src/Makefile @@ -0,0 +1,31 @@ +TOP=../.. + +include $(TOP)/configure/CONFIG +#---------------------------------------- +# ADD MACRO DEFINITIONS AFTER THIS LINE +#============================= + +DBD += testOutputCallback.dbd + +LIBRARY_IOC += testOutputCallbackSupport +testOutputCallbackSupport_SRCS += testOutputCallback.cpp +testOutputCallbackSupport_LIBS += asyn +testOutputCallbackSupport_LIBS += $(EPICS_BASE_IOC_LIBS) + +#============================= + +PROD_IOC += testOutputCallback + +#MainWindow ++ ++ ++ +326 +179 +500 +360 ++ ++ +QWidget#centralWidget {background: rgba(187, 187, 187, 255);} + +caTable { + font: 10pt; + background: cornsilk; + alternate-background-color: wheat; +} + +caLineEdit { + border-radius: 1px; + background: lightyellow; + color: black; + } + +caTextEntry { + color: rgb(127, 0, 63); + background-color: cornsilk; + selection-color: #0a214c; + selection-background-color: wheat; + border: 1px groove black; + border-radius: 1px; + padding: 1px; +} + +caTextEntry:focus { + padding: 0px; + border: 2px groove darkred; + border-radius: 1px; +} + +QPushButton { + border-color: #00b; + border-radius: 2px; + padding: 3px; + border-width: 1px; + + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(224, 239, 255, 255), + stop:0.5 rgba(199, 215, 230, 255), + stop:1 rgba(184, 214, 236, 255)); +} +QPushButton:hover { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(201, 226, 255, 255), + stop:0.5 rgba(177, 204, 230, 255), + stop:1 rgba(163, 205, 236, 255)); +} +QPushButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +QPushButton:disabled { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +caChoice { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, + stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); +} + +caChoice > QPushButton { + text-align: left; + padding: 1px; +} + +caSlider::groove:horizontal { +border: 1px solid #bbb; +background: lightgrey; +height: 20px; +border-radius: 4px; +} + +caSlider::handle:horizontal { +background: red; +border: 1px solid #777; +width: 13px; +margin-top: -2px; +margin-bottom: -2px; +border-radius: 2px; +} + + + + ++ ++ ++ +caGraphics::Rectangle ++ ++ +0 +5 +500 +25 ++ ++ +10 +0 +184 ++ +Filled ++ ++ +10 +0 +184 ++ +Solid ++ ++ +QFrame::NoFrame ++ ++ +255 +255 +255 ++ ++ +255 +255 +255 ++ +$(P)$(R) ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter ++ ++ +0 +5 +500 +25 ++ ++ +QFrame::NoFrame ++ ++ +45 +127 +0 ++ ++ +45 +127 +0 ++ +caLabel::IfNotZero ++ +$(P)$(R).BUSY ++ +Acquiring ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter ++ ++ +42 +40 +90 +20 ++ ++ +QFrame::NoFrame ++ ++ +222 +19 +9 ++ ++ +222 +19 +9 ++ +caLabel::IfZero ++ +$(P)$(R).BUSY ++ +Done ++ +ESimpleLabel::WidthAndHeight ++ +Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter ++ ++ +95 +40 +40 +20 ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Status ++ +ESimpleLabel::WidthAndHeight ++ ++ +142 +40 +60 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +224 +40 +100 +20 ++ +caLineEdit::WidthAndHeight ++ +$(P)$(R).NORD ++ ++ +10 +0 +184 ++ ++ +187 +187 +187 ++ +Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +caLineEdit::Channel ++ +0.0 ++ +1.0 ++ +decimal ++ +caLineEdit::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Current point ++ +ESimpleLabel::WidthAndHeight ++ ++ +329 +40 +130 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +10 +92 +480 +230 ++ +$(P)$(R) ++ +Time point ++ +Value ++ ++ +0 +0 +0 ++ ++ +218 +218 +218 ++ ++ +218 +218 +218 ++ +caCartesianPlot::Lines ++ +caCartesianPlot::Lines ++ +caCartesianPlot::Lines ++ +caCartesianPlot::NoSymbol ++ +caCartesianPlot::Rect ++ +caCartesianPlot::Triangle ++ +caCartesianPlot::PlotLastNPoints ++ ++ +75 +110 +199 ++ +;$(P)$(R).VAL ++ +caCartesianPlot::Auto ++ +0;1 ++ +caCartesianPlot::Auto ++ +0;1 ++ ++ ++ +15 +65 +90 +20 ++ +EPushButton::WidthAndHeight ++ +$(P)$(R).RARM ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Erase/Start ++ +1 ++ +caMessageButton::Static ++ ++ ++ +110 +65 +90 +20 ++ +EPushButton::WidthAndHeight ++ +$(P)$(R).RARM ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Start ++ +3 ++ +caMessageButton::Static ++ ++ ++ +205 +65 +90 +20 ++ +EPushButton::WidthAndHeight ++ +$(P)$(R).RARM ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Stop ++ +2 ++ +caMessageButton::Static ++ ++ ++ +10 +329 +100 +20 ++ +$(P)$(R)Read.SCAN ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +caMenu::Static ++ ++ +QFrame::NoFrame ++ ++ +0 +0 +0 ++ ++ +0 +0 +0 ++ +Read rate ++ +ESimpleLabel::WidthAndHeight ++ ++ +117 +329 +90 +20 ++ +Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter ++ ++ ++ +217 +329 +50 +20 ++ +EPushButton::WidthAndHeight ++ +$(P)$(R)Read.PROC ++ ++ +0 +0 +0 ++ ++ +115 +223 +255 ++ +Read ++ +1 ++ +caMessageButton::Static +caRectangle_0 +caLabel_0 +caLabel_1 +caLabel_2 +caLabel_3 +caLabel_4 +caLabel_5 +caLineEdit_0 +caCartesianPlot_0 +caMessageButton_0 +caMessageButton_1 +caMessageButton_2 +caMenu_0 +caMessageButton_3 +_registerRecordDeviceDriver.cpp will be created from .dbd +testOutputCallback_SRCS_DEFAULT += testOutputCallback_registerRecordDeviceDriver.cpp testOutputCallbackMain.cpp +testOutputCallbackVx_SRCS_vxWorks += testOutputCallback_registerRecordDeviceDriver.cpp +testOutputCallback_LIBS += testOutputCallbackSupport asyn +testOutputCallback_LIBS += $(EPICS_BASE_IOC_LIBS) + +testOutputCallback_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary + +#=========================== + +include $(TOP)/configure/RULES +#---------------------------------------- +# ADD RULES AFTER THIS LINE diff --git a/testOutputCallbackApp/src/testOutputCallback.cpp b/testOutputCallbackApp/src/testOutputCallback.cpp new file mode 100644 index 0000000..9b1b014 --- /dev/null +++ b/testOutputCallbackApp/src/testOutputCallback.cpp @@ -0,0 +1,229 @@ +/* + * testOutputCallback.cpp + * + * Asyn driver that inherits from the asynPortDriver class to test output records using callbacks + * The output records must have the info tag asyn:READBACK + * It tests the following: + * Callbacks done in immediately in the writeXXX function + * Callbacks done asynchronously in another driver thread + * Configuration parameters in the driver constructor control the following: + * If the driver is synchronous or asynchronous + * How many callbacks are done each time + * It does these tests on the asynInt32, asynUInt32Digital, asynFloat64, and asynOctet interfaces + * Author: Mark Rivers + * + * Created November 9, 2017 + */ + +#include +#include +#include +#include +#include + +#include + +#include +#include "testOutputCallback.h" + +//static const char *driverName="testOutputCallback"; + +#define UINT32_DIGITAL_MASK 0xFFFFFFFF + +static void callbackThreadC(void *pPvt) +{ + testOutputCallback *p = (testOutputCallback*)pPvt; + p->callbackThread(); +} + +/** Constructor for the testOutputCallback class. + * Calls constructor for the asynPortDriver base class. + * \param[in] portName The name of the asyn port driver to be created. */ +testOutputCallback::testOutputCallback(const char *portName, int canBlock) + : asynPortDriver(portName, + 1, /* maxAddr */ + /* Interface mask */ + asynInt32Mask | asynFloat64Mask | asynUInt32DigitalMask | asynOctetMask | asynDrvUserMask, + /* Interrupt mask */ + asynInt32Mask | asynFloat64Mask | asynUInt32DigitalMask | asynOctetMask, + canBlock ? ASYN_CANBLOCK : 0, /* asynFlags. canblock is passed to constructor and multi-device is 0 */ + 1, /* Autoconnect */ + 0, /* Default priority */ + 0) /* Default stack size*/, + numCallbacks_(1), sleepTime_(0.) +{ + createParam(P_Int32ValueString, asynParamInt32, &P_Int32Value); + createParam(P_Int32BinaryValueString, asynParamInt32, &P_Int32BinaryValue); + createParam(P_UInt32DigitalValueString, asynParamUInt32Digital, &P_UInt32DigitalValue); + createParam(P_Float64ValueString, asynParamFloat64, &P_Float64Value); + createParam(P_OctetValueString, asynParamOctet, &P_OctetValue); + createParam(P_NumCallbacksString, asynParamInt32, &P_NumCallbacks); + createParam(P_SleepTimeString, asynParamFloat64, &P_SleepTime); + createParam(P_TriggerCallbacksString, asynParamInt32, &P_TriggerCallbacks); + + setIntegerParam(P_NumCallbacks, numCallbacks_); + setDoubleParam(P_SleepTime, sleepTime_); + + callbackEvent_ = epicsEventCreate(epicsEventEmpty); + epicsThreadCreate("callbackThread", + epicsThreadPriorityMedium, + epicsThreadGetStackSize(epicsThreadStackSmall), + (EPICSTHREADFUNC)callbackThreadC, this); +} + +asynStatus testOutputCallback::writeInt32(asynUser *pasynUser, epicsInt32 value) +{ + int function=pasynUser->reason; + + setIntegerParam(function, value); + + if (function == P_Int32Value) { + doInt32Callbacks(); + } + else if (function == P_Int32BinaryValue) { + doInt32BinaryCallbacks(); + } + else if (function == P_NumCallbacks) { + numCallbacks_ = value; + } + else if (function == P_TriggerCallbacks) { + epicsEventSignal(callbackEvent_); + } + return asynSuccess; +} + +asynStatus testOutputCallback::writeUInt32Digital(asynUser *pasynUser, epicsUInt32 value, epicsUInt32 mask) +{ + int function=pasynUser->reason; + setUIntDigitalParam(function, value, mask); + doUInt32DigitalCallbacks(); + return asynSuccess; +} + +asynStatus testOutputCallback::writeFloat64(asynUser *pasynUser, epicsFloat64 value) +{ + int function=pasynUser->reason; + setDoubleParam(function, value); + if (function == P_Float64Value) { + doFloat64Callbacks(); + } + else if (function == P_SleepTime) { + sleepTime_ = value; + } + return asynSuccess; +} + +asynStatus testOutputCallback::writeOctet(asynUser *pasynUser, const char *value, size_t maxChars, size_t *nActual) +{ + int function=pasynUser->reason; + setStringParam(function, value); + *nActual = strlen(value); + doOctetCallbacks(); + return asynSuccess; +} + +void testOutputCallback::doInt32Callbacks() +{ + epicsInt32 value; + for (int i=0; i 0) epicsThreadSleep(sleepTime_); + } +} + +void testOutputCallback::doInt32BinaryCallbacks() +{ + epicsInt32 value; + for (int i=0; i 0) epicsThreadSleep(sleepTime_); + } +} + +void testOutputCallback::doUInt32DigitalCallbacks() +{ + epicsUInt32 value; + for (int i=0; i 0) epicsThreadSleep(sleepTime_); + } +} + +void testOutputCallback::doFloat64Callbacks() +{ + epicsFloat64 value; + for (int i=0; i 0) epicsThreadSleep(sleepTime_); + } +} + +void testOutputCallback::doOctetCallbacks() +{ + char value[100]; + static int counter; + for (int i=0; i 0) epicsThreadSleep(sleepTime_); + } +} + +void testOutputCallback::callbackThread() +{ + lock(); + while (1) { + unlock(); + (void)epicsEventWait(callbackEvent_); + lock(); + doInt32Callbacks(); + doInt32BinaryCallbacks(); + doUInt32DigitalCallbacks(); + doFloat64Callbacks(); + doOctetCallbacks(); + } +} + + +/* Configuration routine. Called directly, or from the iocsh function below */ +extern "C" { + +/** EPICS iocsh callable function to call constructor for the testOutputCallback class. + * \param[in] portName The name of the asyn port driver to be created. */ +int testOutputCallbackConfigure(const char *portName, int canBlock) +{ + new testOutputCallback(portName, canBlock); + return asynSuccess ; +} + + +/* EPICS iocsh shell commands */ + +static const iocshArg initArg0 = { "portName", iocshArgString}; +static const iocshArg initArg1 = { "canBlock", iocshArgInt}; +static const iocshArg * const initArgs[] = {&initArg0, &initArg1}; +static const iocshFuncDef initFuncDef = {"testOutputCallbackConfigure",2,initArgs}; +static void initCallFunc(const iocshArgBuf *args) +{ + testOutputCallbackConfigure(args[0].sval, args[1].ival); +} + +void testOutputCallbackRegister(void) +{ + iocshRegister(&initFuncDef,initCallFunc); +} + +epicsExportRegistrar(testOutputCallbackRegister); + +} + diff --git a/testOutputCallbackApp/src/testOutputCallback.h b/testOutputCallbackApp/src/testOutputCallback.h new file mode 100644 index 0000000..e6f1250 --- /dev/null +++ b/testOutputCallbackApp/src/testOutputCallback.h @@ -0,0 +1,55 @@ +/* + * testOutputCallback.h + * +* Asyn driver that inherits from the asynPortDriver class to test output records using callbacks + + * + * Author: Mark Rivers + * + * Created November 9, 2017 + */ + +#include +#include + +/* These are the drvInfo strings that are used to identify the parameters. + * They are used by asyn clients, including standard asyn device support */ +#define P_Int32ValueString "INT32_VALUE" /* asynInt32, r/w */ +#define P_Int32BinaryValueString "INT32_BINARY_VALUE" /* asynInt32, r/w */ +#define P_UInt32DigitalValueString "UINT32D_VALUE" /* asynUInt32Digital, r/w */ +#define P_Float64ValueString "FLOAT64_VALUE" /* asynFloat64, r/w */ +#define P_OctetValueString "OCTET_VALUE" /* asynOctet, r/w */ +#define P_NumCallbacksString "NUM_CALLBACKS" /* asynInt32, r/w */ +#define P_SleepTimeString "SLEEP_TIME" /* asynFloat64, r/w */ +#define P_TriggerCallbacksString "TRIGGER_CALLBACKS" /* asynInt32, r/w */ + +/** Class that tests error handing of the asynPortDriver base class using both normally scanned records and I/O Intr + * scanned records. */ +class testOutputCallback : public asynPortDriver { +public: + testOutputCallback(const char *portName, int canBlock); + asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value); + asynStatus writeUInt32Digital(asynUser *pasynUser, epicsUInt32 value, epicsUInt32 mask); + asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value); + asynStatus writeOctet(asynUser *pasynUser, const char *value, size_t maxChars, size_t *nActual); + void callbackThread(); + +private: + int P_Int32Value; + int P_Int32BinaryValue; + int P_UInt32DigitalValue; + int P_Float64Value; + int P_OctetValue; + int P_TriggerCallbacks; + int P_NumCallbacks; + int P_SleepTime; + + epicsEventId callbackEvent_; + int numCallbacks_; + epicsFloat64 sleepTime_; + void doInt32Callbacks(); + void doInt32BinaryCallbacks(); + void doUInt32DigitalCallbacks(); + void doFloat64Callbacks(); + void doOctetCallbacks(); +}; diff --git a/testOutputCallbackApp/src/testOutputCallbackInclude.dbd b/testOutputCallbackApp/src/testOutputCallbackInclude.dbd new file mode 100644 index 0000000..3b5c984 --- /dev/null +++ b/testOutputCallbackApp/src/testOutputCallbackInclude.dbd @@ -0,0 +1,3 @@ +include "base.dbd" +include "asyn.dbd" +registrar("testOutputCallbackRegister") diff --git a/testOutputCallbackApp/src/testOutputCallbackMain.cpp b/testOutputCallbackApp/src/testOutputCallbackMain.cpp new file mode 100644 index 0000000..ae0ecb6 --- /dev/null +++ b/testOutputCallbackApp/src/testOutputCallbackMain.cpp @@ -0,0 +1,23 @@ +/* _APPNAME_Main.cpp */ +/* Author: Marty Kraimer Date: 17MAR2000 */ + +#include +#include +#include +#include +#include + +#include "epicsExit.h" +#include "epicsThread.h" +#include "iocsh.h" + +int main(int argc,char *argv[]) +{ + if(argc>=2) { + iocsh(argv[1]); + epicsThreadSleep(.2); + } + iocsh(NULL); + epicsExit(0); + return(0); +}