EPICS sequencer update Greg White / William Lupton [email protected] / [email protected]...
-
Upload
george-carr -
Category
Documents
-
view
218 -
download
0
Transcript of EPICS sequencer update Greg White / William Lupton [email protected] / [email protected]...
EPICS sequencer update
Greg White / William Lupton
EPICS ‘99
SLAC, May 27, 1999
27-May-99 EPICS sequencer update 2
Changes made in the last year
• Various minor bug fixes– applied in parallel to “base” and “local” versions
• “Local” version converted to work with makeBaseApp– in ANL CVS but not yet released to community
• Good progress on conversion to use Marty Kraimer’s OSI (operating system independent) layer
• Greg White (SLAC) will be working on syntax extensions
27-May-99 EPICS sequencer update 3
“Local” version
• In use at Keck for 3+ years
• Major change is support for monitor queues– don’t miss events, even when posted in rapid
succession
– useful for subsystem coordination and command completion
• Details at 1997 EPICS collaboration meeting
27-May-99 EPICS sequencer update 4
makeBaseApp version
• Contains the “local” version– NB, question mark over sequencer deletion (may
be broken in “base” version too?)
• Includes Andy Kozubal’s v1.9 manual– will be updated to describe new features
• Standard version will remain in base for some time? (eventually unbundled)– individual sites will be able to choose version
27-May-99 EPICS sequencer update 5
Running sequencers under Unix
• Sequencer run-time support code has been converted to use Marty Kraimer’s OSI layer– OSI has been implemented for POSIX under
Solaris and Linux
• Can run an EPICS sequence (with multiple state-sets) as a single Unix task– can debug and test using Unix tools– can deploy in either environment
27-May-99 EPICS sequencer update 6
Further details
• In sequencer run-time support code,– taskXxx() calls become OSIthreadXxx() calls– semXxx() calls become OSIsemXxx() calls (etc.)
• Under Unix, xxx.st becomes executable xxx– main thread supports command line input
(seqShow etc.)
• Code contains no #ifdef SOLARIS tests
27-May-99 EPICS sequencer update 7
To be done• Tidy up loose ends, e.g.
– Unix version of taskwd routines (in OSI?)– ca_import(), ca_import_cancel()– remove libCom.a dependence?
• Add CDEV support (c.f. medm and alh)• Add ability for sequencer to serve its own
channels?– larger issue; with OSI, entire IOC functionality
(except hardware access?) can be replaced by a single Unix task
• Document and make available to community
27-May-99 EPICS sequencer update 8
SNL syntax extensions (1)
• Entry and exit actions
• entry action before first “when”
• exit action after last “when”
state fred {entry {}/* when clauses */exit {}
}
• Option not to reset delay timer on transition to same state
• when enabled, delay is always measured from initial entry to the state
state fred {option +t;/* affects state */
}/* reverts to default */
27-May-99 EPICS sequencer update 9
SNL syntax extensions (2)
• Subroutines– if no args, can use macro
– if no PV-assigned names, can use regular C routine
– so only interesting case is where there at least one argument is a PV-assigned name
• Will require pre-declaration of such routines
• For exampleint xxx( pv, int );
• implies args are PV-assigned name and int
• code for xxx() must reside within same SNL module
• IS THIS WORTH IT?• IS IT WHAT IS
WANTED?
27-May-99 EPICS sequencer update 10
Other SNL additions (from 1997)
• snc error-reporting improvement
• ca_put_callback() support
• support more of C language (init, locals, “?:” etc.)
• several state-sets to share single task
• permit hierarchical states
• hooks for external C code to set and test event flags (from ISRs too)
• comprehensive test suite
• more?