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?