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 -t -p -c -s<1=scan on (default), 0=scan off> -ss<1=synchronous scan (default), 0=asynchronous scan>] -d Increased diagnostics messages with increasing debug level. Defaults to no messages. -t Specifies the duration that the server will run. Defaults to forever. -p 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 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.