Version 1.1.0 (07/14/05): Imcagui now uses a tabbed notebook layout with the following tabs: Beam - This tab corresponds to the original main window. The APS 17-BM version has added a beam position monitor display, shutter open/close controls, and new controls and display for the new monochromator feedback system. MAD - This tab contains the same displays as old MAD window. Optimize & Staff Optimize - These tabs contain the controls from the old optimize and optimize_auto programs. These tabs work by loading routines from the 'optimize' and 'optimize_auto' packages which _must_ be installed for the tabbed notebook version of Imcagui to work. Staff - This tab contains staff-only controls for changin the edge energy and buttons for starting the external 'mxgui', 's17bm', and 'motor' programs. In addition, there are buttons for accessing the storage ring status, steering status, and feedback control MEDM screens. Note that the old multiwindow version of Imcagui is still available by invoking Imcagui by the name 'old_imcagui'. Version 1.0.0 (04/26/04): The old shell script wrappers for Chooch have been replaced by newer wrappers written in Python. The SER-CAT version of Imcagui now manages a new enable flag for the sector 22-ID beamline called 'm_angle_enabled'. Also, the 22-ID version now explicitly opens the experimental shutter at the start of any scan and then returns the shutter to its prescan state at the end of the scan. Version 0.66.0 (08/15/03): Added support for A-slit control to the APS 17-BM version of Imcagui. The 17-BM version now also disables the focus, normal, and parallel motions during scans. Version 0.65.0 (04/01/03): The process_imcagui_callbacks procedure now embeds all of its interactions with the MX server inside a big 'catch' block. This is to help ensure that 'imcagui' will automatically recover when a remote MX server is restarted. 'imcagui' now generates the program name it sends to the remote MX server from argv0. This means that if 'imcagui' is installed under some other name such as 'sergui', then the program will show up in the MX server's list of clients as 'sergui' rather than as 'imcagui'. The 'make install' target in the makefile has been modified to make sure that all the directories used by 'imcagui' have been created before attempting to copy any files to them. Version 0.62.0 (12/03/02): Imcagui has been updated to work with the new dynamically loaded version of MxTcl. Imcagui no longer uses the external program 'process_state' to determine whether or not the external Chooch program is still running. Instead, it uses a new builtin function from the MxTcl package called Mx::process_exists. This eliminates the overhead from periodically invoking the external program. Minor bugfixes were made to the 'make install' makefile target. Version 0.60.1 (08/19/02): Merged in some minor changes for SER-CAT's version of 'imcagui'. Version 0.60.0 (08/13/02): The responsiveness of 'imcagui' to user input has been significantly improved. This was done by inserting calls to the 'update' function in the 'process_imcagui_callbacks' procedure. During benchmarking at IMCA-CAT's Sector 17-ID beamline, it was found that the 'process_imcagui_callbacks' procedure took around 1.7 seconds to complete. The problem was that 'imcagui' was not paying any attention to the user interface during this time, so it could take up to 1.7 seconds for user input to be acknowledged. Since it takes a total of 2.7 seconds for a complete 'imcagui' update cycle, this means that 'imcagui' was ignoring user input for around 60% of the time. Inserting a call to 'update' in the main processing loop of 'process_imcagui_callbacks' has reduced the maximum latency from 1.7 seconds down to a small fraction of a second. According to reports from IMCA-CAT and SER-CAT, users are much happier now with the responsiveness of 'imcagui'. The old awk versions of 'Chooch_fluorescence.sh' and 'Chooch_xafs.sh' have now been replaced by versions written in Python. There is now a new IMCAGui::show_slit_positions variable which controls whether or not slit positions are shown on the main window. At APS sector 17-ID, this reduces the processing time of 'process_imcagui_callbacks' from 1.7 seconds to 1.1 seconds. Version 0.56.1 (04/04/02): This version is a major revision to the 'imcagui' code motivated by the addition of support for SER-CAT's 22-ID beamline. The code has now been restructured such that beamline specific code has been moved to a subdirectory called 'beamline' containing files such as 'beamline/imca17bm.tcl' and 'beamline/ser22id.tcl'. 'imcagui' now figures out what beamline it is running on by consulting the value if the MX variable 'mx_beamline'. Thus, it is now no longer necessary to symbolically link 'imcagui' to the name of the beamline although it does not hurt anything if you do so. Also, the top level functions now decide whether to display undulator or filter based on the status of the variables IMCAGui::have_undulator and IMCAGui::have_filters. Another change is that the scan records for scans performed by 'imcagui' are now specified in an external file called /opt/mx/etc/imcagui.dat rather than being constructed directly in the Tcl code. This will make it easier for beamline staff to modify these scans as necessary. The imcagui scan file is located in the 'etc' subdirectory so that it will automatically be saved along with the other database files when the '/opt/mx/etc' hierarchy is copied to a new version of MX. The nawk scripts Chooch_fluorescence.sh and Chooch_xafs.sh are now bundled with the 'imcagui' source code. They are used to implement the interface between 'imcagui' and the Benny and Chooch programs. Version 0.55.0 (12/18/01): Minor tweaks have been made based on user feedback. Version 0.50.0 (08/15/01): The source code for 'imcagui' now untars into a subdirectory called 'imcagui' rather than the current directory. This is for compatibility with the new source tree layout of MX 0.50.0. Version 0.27.3 (07/19/01): Changed the color scheme for the GUI slightly. Now all motor move buttons are colored green. Version 0.27.2 (02/19/01): Changed the 'Optimize Intensity' button to a menubutton with selections both for the new Auto Optimization GUI and for the old Optimize GUI. Version 0.26.4 (05/05/00): This version incorporates a variety of changes made by Jim Fait. These changes include: Sector 17-ID has had some incidents where users were running with aluminum attenuators inserted, but the users were not aware that the attenuators were inserted. In order to make it harder for this to happen, the old attenuator controls window has been deleted and its contents have been moved into a frame on the main IMCAGUI window. A new variables menu has been added to the main IMCAGUI window. This makes it easier for beamline users to find and set the most important variables, namely, edge_energy, id_ev_enabled, id_ev_harmonic, and id_ev_params. Version 0.26.2 (03/16/00): Modified the IMCA GUI package to use the new 'mxwish' program as its interpreter rather than the old 'mxtclwish' program. Version 0.25.1 (11/10/99): Fixed the device polling routine so that errors in reading values from external control systems are caught and do not prevent the device polling routine from being rescheduled again. Modified the periodic table display to include a complete list of element edges. Also added support for selecting L1, L2, and M1 absorption edges. Added a menu bar item that allows the user to change the current printer destination. Added a button to print the plot generated by Chooch. Added support for a fluorescence detector saturation test. Version 0.25.0 (09/27/99): Updated the IMCA GUI package to work with version 0.25.0 of MX. Version 0.23.2 (05/10/99): Permission has been granted by IIT to make the source code freely available on the Internet. Added IIT copyright messages to all the source code files. There have been an extensive number of additions to the IMCA Sector 17 GUI. The package is now called "imcagui" and tailors it's behavior depending upon whether it is invoked by the name "imca17id" or the name "imca17bm". Essentially all of the menus and displays that were originally envisioned have been implemented. There are a variety of tweaks remaining to be done, but the package is now close to complete. Version 0.23.0 (01/27/99): This is the first test release of the IMCA Sector 17-ID specific GUI. Only part of the GUI is fully implemented, but at least the top level window is essentially fully functional. The GUI part of the Spectroscopy / MAD window has been implemented, but the actual functionality underneath has not yet been implemented.