Minutes from the 12/08/04 LCLS SLC IOC meetings. Next Meeting is 12/15/04, 9:30am, second floor. (1) Next Meeting Agenda: In the next meeting, we'll use the whiteboard to sketch data flow and tasks for the SLC IOC magnet message handling. We'll go through actions for just a few function codes listed here: http://www.slac.stanford.edu/grp/lcls/controls/global/sw/slc_ioc/requirements/funcReqts.html#MGNT (2) LCLS SLC Integration Work: No one appears to be coordinating the work needed for integration of LCLS into the SCP. In particular, the work needed to set up the Alpha SLC control system for the LCLS modelling applications. Other work includes database file generation, SCP panel additions/changes, timing pattern addition/changes, BPM group setup, etc. This work is currently outside the scope of the SLC-aware IOC project. Will all this work be dropped on the laps of ESD folks at the last minute? Is Patrick the coordinator? (3) README files: Everyone is asked to add a README file to directories they create and work in. We don't want to formalize the look and feel of README files but want to emphasize usefulness. Content should generally include: * brief description * reference to design documentation and home web page, if applicable * build information, if not a standard EPICS app * usage * for high level directories, maybe a list of subdirectories and how files are split between subdirectories What else do people recommend in README files? (4) Coding Standards: Standards are used on files we create. Any file that is copied and modified slightly must keep it's own copyright but a modification comment should be added. An attempt to stick to the style of the original author should be made. (5) Copyright: The standard file headers have been changed to include copyright_SLAC.h instead of inline comments. People who use these headers must copy the file copyright_SLAC.h to their package area so that the files compile. People may also choose to inline the copyright into the header (so Diane and Debbie - you don't need to change what you've done). I put copyright_SLAC.h here: http://www.slac.stanford.edu/grp/lcls/controls/global/sw/slc_ioc/requirements/copyright_SLAC.h The new files headers: http://www.slac.stanford.edu/grp/lcls/controls/global/standards/software/codeStdsCfile.header http://www.slac.stanford.edu/grp/lcls/controls/global/standards/software/codeStdsCinclude.header The previous headers with inlined copyright comments are in the same place and name but end in ".CR". (6) Setting up the EPICS_HOST_ARCH environment variable: Some people are setting EPICS_HOST_ARCH in their .login or .cshrc scripts assuming they will always login to a solaris machine. It's recommended that this env var be set based on uname as is done in this script: setenv EPICS_HOST_ARCH `/afs/slac/package/epics/script/EpicsHostArch` (warning - EpicsHostArch assumes the gnu compiler for solaris). (7) Using the LCLS setup scripts: It is recommended that people start using the LCLS epics setup script for testing their IOCs and running CA clients. These scripts are being regularly updated by Dayle and Stephanie (and at some point, Kristi too) as LCLS controls develops. If you want to reset your current (ie, ESD) environment: /afs/slac/g/lcls/epics/script/epicsReset.csh If you don't want to reset your current environment: /afs/slac/g/lcls/epics/script/epicsSetup.csh or .bash These scripts also set up for XAL and will setup for Matlab too at some point. Let me know of problems with these scripts. (8) Building with no setup: It's a good idea to periodically attempt to build with a minimum environment. Then you know that your configure files are set up correctly. To get a "minimum" environment, don't source any setup files in your .login or .cshrc and start a session. Source the SCS setup file and set EPICS_HOST_ARCH like this: if (-e /usr/local/bin/environ) eval `/usr/local/bin/environ -i0` setenv EPICS_HOST_ARCH `/afs/slac/package/epics/script/EpicsHostArch` (9) Adding the SCP function to get PNET history: We are adding support for the SCP function that gets a full second of PNET data history (where a full second is determined by checking for the "edge" bit in the PNET pattern) where the full-second to get is determined by the MPG. When the MPG puts out a special YY value, the full second that it occurs in is the one to return back to the SCP. The SCP compares the PNET data from the IOCs with the MPG and makes sure they are identical and outputs the pattern history to the user. We are assuming that all IOCs will get the PNET pattern at 360 Hz either via the PNET module (on the IOC with the EVG) or the EVR itself (on all other IOCs). In the reply back to the SCP, there is an additional unused 32 bits for each time slot (was used by the vetobus long ago). We could use those 32 bits to also send back part of the non-PNET part of the event pattern and change the SCP to also display that information. (10)Kristi's RTEMS report: Converting power supply control software from 3.13/vxWorks to 3.14/RTEMS. The TFTP server has limitations. Till has provided an rtems image that can be flashed in so that we can boot from NFS instead. We'll be needing more instruction on this procedure before other people start testing on RTEMS. (11)Diagnostics: For the message and database service diagnostics, the CSTR async task will periodically write values to EPICS records. Diane and Debbie will provide utilities that cstrAsync can call to get the values. IOC shell routines will be provided to output diagnostics from each (or all) services.