EPICS sequencer update Greg White / William Lupton [email protected] / [email protected]...

10
EPICS sequencer update Greg White / William Lupton [email protected] / [email protected] EPICS ‘99 SLAC, May 27, 1999

Transcript of EPICS sequencer update Greg White / William Lupton [email protected] / [email protected]...

Page 1: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu EPICS ‘99 SLAC, May 27, 1999.

EPICS sequencer update

Greg White / William Lupton

[email protected] /

[email protected]

EPICS ‘99

SLAC, May 27, 1999

Page 2: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu 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

Page 3: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu EPICS ‘99 SLAC, May 27, 1999.

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

Page 4: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu EPICS ‘99 SLAC, May 27, 1999.

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

Page 5: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu EPICS ‘99 SLAC, May 27, 1999.

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

Page 6: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu EPICS ‘99 SLAC, May 27, 1999.

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

Page 7: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu EPICS ‘99 SLAC, May 27, 1999.

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

Page 8: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu EPICS ‘99 SLAC, May 27, 1999.

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 */

Page 9: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu EPICS ‘99 SLAC, May 27, 1999.

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?

Page 10: EPICS sequencer update Greg White / William Lupton greg@slac.stanford.edu / wlupton@keck.hawaii.edu EPICS ‘99 SLAC, May 27, 1999.

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?