Status and "to do" list for RunControl
-
error reporting in async record? report via alarm status, how to check?
-
snc compiler works, but no runtime If cas
and gdd
are removed from base/src/Makefile
, also remove them from configure/CONFIG_BASE
.
- mu_lib produces seg fault when called with invalid DAQ_SETUP
-
IOC for shw ready, test it in old runctrl
- Control and State of single modules works nicely, how to make larger entities? Statement: init and reset can be done completely in parallel, start and stop need some means of sequencing. Some kind of aggregation via dfanout/fanout may work, but strange to sequence. How to do error handling? Let a sequencer run in each crate.
- Seqencer for shw ready, tested with tcl-run-control.
- Things to discuss, find pros/cons:
- One sequencer for each crate? For the whole system?
- Use sequencer programs for "fan in/fan out" from crate/system to single module or use DB records.
- Sequencer breaks somewhat the idea, e.g. asyncronous processing / PACT status is not usable as in IOC.
- DB records need special record types for sequential fan out or status fan in.
- Next steps (which one first?)
- Make IOC/sequencer for more crates,
generalize it
- Do proper error handling
and reporting
-
Move syslog initialization from device support init to ioc init (main) Even better: Move it to function and register this with IOC shell.
- Epics Error logging via syslog basically works,
but rcState is the wrong place. Put it into *Main.cpp or make an iocsh command from it
- How to wait for completion of control command in crate
-
Success/Fail messages for standard functions are done in blubctrl.c, but not in ioc.
- IOC/Sequencer works verly nicely as replacement for *ctrl/script in shower.
Now generalize it so that it can work in different systems. Where to get parameters? Channel Access or Parameter Library?
- create function that gets list of units
- do dynamic assignment that uses this list
- Error reporting is solved, works via errorlog on epics and syslog outside, both go to syslog.
- Error handling still completely void
- Shower works with sequencer that is configured via Param, no second implementation yet.
- Complicated start procedure in trigconc crate. Make two "logical" systems out of it? Be careful, there is only one readout.
- "shw" IOC works also for trigconc by adding the proper DB files, so it's a matter of naming. But sequencer needs parametrization of sub system name (right now "SHW" is hardcoded)
- Switch on error logging from param and vme library in the proper place (where conLvme / conParam is called).
-
Create a record for the state of one complete crate (most probably via gensub). Was done with sub record.
- generate database files and adl files from module list. Probably via msi -V?