
The files in this directory build an example CA server. This code 
is meant to provide some examples of how the CA server library can 
be used but is not intended to be an example of exemplary code organization 
and therefore care should be taken when emulating what is found here. 

The example server exports the process variables (PVs) in the table below.

ScanPeriod  Name    HOPR    LOPR    Type        Asynchronous    Elements

.1          "jane"  10.0     0.0    DBR_DOUBLE  No              1
2.0         "fred"  10.0    -10.0   DBR_DOUBLE  No              1
.1          "janet" 10.0     0.0    DBR_DOUBLE  Yes             1
2.0         "freddy"10.0    -10.0   DBR_DOUBLE  Yes             1
2.0         "alan"  10.0    -10.0   DBR_DOUBLE  No              100
20.0        "albert"10.0    -10.0   DBR_DOUBLE  No              1000
-1.0        "boot"  10.0    -10.0   DBR_ENUM    No              1
-1.0        "booty" 10.0    -10.0   DBR_ENUM    Yes             1
-1.0        "bill"  10.0    -10.0   DBR_DOUBLE  No              1
-1.0        "billy" 10.0    -10.0   DBR_DOUBLE  Yes             1
-1.0        "bloaty"10.0    -10.0   DBR_DOUBLE  No              100000

Many ca servers will find that synchronous variables will meet 
their needs and will not require the increased complexity 
associated with asynchronous PVs. Asynchronous PVs are needed 
when read and write IO requests cant be completed immediately.

The PVs in the example server are updated periodically if the 
"ScanPeriod" column above contains a positive number. Some random 
"noise" is added to a PV's current value each time that it is 
updated.

usage: 

excas [-d<debug level> -t<execution time> -p<PV name prefix> 
-c<numbered alias count> -s<1=scan on (default), 0=scan off> 
-ss<1=synchronous scan (default), 0=asynchronous scan>]

-d<debug level> 
Increased diagnostics messages with increasing debug level. Defaults to no
messages.

-t<execution time>
Specifies the duration that the server will run. Defaults to forever.

-p<PV name prefix>
Specifies the prefix applied to all PV names. If you specify "-pxxx:"
then clients must specify PV names like "xxx:fred" or "xxx:jane".
This is useful when several example servers are running on the same 
IP subnet for testing purposes. Defaults to no prefix.

-c<numbered alias count>
Useful when you need lots of aliased PV names. The alias names are 
of the form "fred1", "fred2", etc. Defaults to no aliases.

-s<1=scan on (default), 0=scan off> 
Used to turn off updating of the PVs with random noise. Default is 
to update all PVs with a positive scan period.

-ss<1=synchronous scan (default), 0=asynchronous scan>
Controls updating of PVs from an asynchronous thread (tests thread
safety of the server library). Defaults to synchronous.

