6/17/96 changes Fixed maximum length of filename on include line. Added global alarm acknowledgement. Thu Aug 22 14:59:41 CDT 1996 Bug fix: "Save as" now writes out ALARMCOUNTFILTER data Thu Jan 9 08:36:21 CST 1997 In this new alh version, the alarm log file has been changed to a circular log file with maximum records in the circular file defaulting to 2000. This means that after 2000 records exist in the alarm log file, the oldest alarm records will be overwritten when new alarms occur, thus keeping the file size a constant 2000 records. The maximum number of records can be changed using a command line option m, e.g. "alh -m 5000" will make the alarm log file a circular file with a maximum of 5000 records. The command "alh -m 0" can be used to allow the alarm log file to have an infinite number of records. Thu Jan 16 10:35:16 CST 1997 Bug fix to ALARMCOUNTFILTER Fri Feb 28 17:26:13 CST 1997 Fixed INCLUDE file bug which caused counts and alarms to be incorrect. Mon Mar 31 10:41:19 CST 1997 Bug fix to SEVRCOMMAND for UP_ANY and DOWN_ANY. Bug fix to ALARMCOUNTFILTER. Fri Sep 12 16:25:02 CDT 1997 Modified Help menu items. Removed libUnix dependancy (product description shell) Fixed calloc for SEVRCOMMAND string. Fixed calloc for treeSym. Bug fix for $BEEPSEVERITY line. Alarm Configuration Tool (alh -c ) changes Removed Undo from Edit menu - more confusing than helpful. Many changes to get properties window working. Changes to get cut/paste working. Bug fixes for Save and SaveAs. Bug fixes for tree and group window views. Mon Oct 27 12:28:36 CST 1997 Write of sevr to sevrPVs now done even if acknowledgement not necessary and now write is done only when sevr has changed. May - June 1998 Changes made to allow alh to build using Exceed on WIN95/NT Added new icon Removed references to getopt Created Makefile.Host and modified Makefile date: 1997/09/12 21:23:53 Bug fix for beep severity line placement. date: 1998/06/01 18:33:21 Modified the icon. date: 1998/06/02 19:40:43; author: evans; state: Exp; lines: +2 -1 Changed from using Fgmgr to using X to manage events and file descriptors. (Fdmgr didn't work on WIN32.) Uses XtAppMainLoop, XtAppAddInput, and XtAppAddTimeOut instead of Fdmgr routines. Updating areas is now in alCaUpdate, which is called every caDelay ms (currently 100 ms). Added a general error message routine (errMsg) and an exception handler (alCAException). Is working on Solaris and WIN32. date: 1998/06/04 17:31:58; Changed system("command &") to _spawnl("command") for WIN32 in processSpawn_callback. Added test.win32.alhConfig. date: 1998/06/09 17:10:48; author: evans; state: Exp; lines: +5 -1 Fixed a typo in the exception handler. Mon Jun 22 12:50:36 CDT 1998 Bug fixes for command line option handling. Modified debug options in Makefile.Host Mon Jun 22 13:34:09 CDT 1998 Merged the new alh-options created at DESY MKS group: -D Disable Writing --- allows running alh without creating/modifying alarmLog and alarmOpMod files. -S Passive Mode --- means that operator can't acknowledge alarms and can't save alarmLog and alarmOpMod files. -T AlarmLogDated --- 1) alarmLog files will have "date" extensions like YYYY-MM-DD, and automatical switching this files in midnight. 2) We add FSbox for search LogFiles in View->"Alarm Log File Window" and 3) We add search button for finding string at LogFile. 4) We add "Find from to with " widget, which allow search from all AlLog-files at some directory -P Printing --- simultaneously printing Alarm to TCP printer (socket connection and so on). Now we print it asynchronous, so we add additional task "alh_printer" and modificate Makefile.Unix. Wed Jul 1 15:02:21 CDT 1998 Bug fix for STATCOMMAND. date: 1998/07/07 20:49:01; author: jba; state: Exp; lines: +9 -2 Removed unused variable timeout. Added alh versioning file version.h. date: 1998/07/16 17:45:17; author: jba; state: Exp; lines: +2 -1 Moved productDescriptionShell code from libUnix to alh. (libUnix removed) Changed some XmStringCreateSimple to XmStringCreateLtoR in dialog.c. Allowed alh to startup with no filename on command line. date: 1998/07/23 18:22:34; author: jba; state: Exp; lines: +7 -6 Log the connection and access rights changes to alarm log file Exit routine changes for alarm configuration tool. Wed Jul 29 12:27:09 CDT 1998 Added "Unacknowledged Alarms Only" display filter. Mon Aug 3 13:04:40 CDT 1998 Increased config file max line size to 500 chars. Wed Aug 5 13:10:12 CDT 1998 Added silenceOneHour button. Moved silenceForever button to Setup menu. Added logging for operator silence changes. Reading config file modified to compare whole word of command (GROUP,CHANNEL,$GUIDANCE,...)instead of first letter. GUIDANCE modified to display urls. (on netscape browser). The alhConfig file specification is now either URL guidance - $GUIDANCE http://www.aps.anl.gov/asd/controls or text guidance - $GUIDANCE This is the first line of text guidance. This is the second line of text guidance. $END Fri Aug 7 17:30:14 CDT 1998 Alh now quits when invalid config file is specified on command line. Thu Sep 3 14:11:17 CDT 1998 Added new version of browser.c with WIN32 support. Removed unused variables from file.c. Made changes for WIN32 build (using Exceed5) Added url help. Initial version is 1.1.1, added Albert to credits Wed Sep 9 11:06:51 CDT 1998 Merged the new alh code changes from CEBAF: Removed the old -DACCESS_SECURITY tests (pre baseR3.11). Thu Jan 19 14:14:01 CST 1999 Start of code cleanup. No functional changes. Modified comments, removed unused code, used c beautifier, etc. Thu Jan 28 16:57:39 CST 1999 Added silenceForever command line option. Modified silenceForever menu item to actually silence forever instead of silencing only for current file. Modified the url help location. Thu Mar 11 10:12:06 CST 1999 Added the following alh modifications which were created at DESY MKS group. New alh-options: -D Disable Writing --- allows work with alh without possibility create/modify alarmLog and alarmOpMod files. -S Passive Mode --- means that operator can't acknowledge alarms and can't save alarmLog and alarmOpMod files. -T AlarmLogDated --- 1) alarmLog and OpMod files will have "date" extensions like YYYY-MM-DD, and automatical switching this files in midnight. 2) We add FSbox for search LogFiles in View->"Browser for Alarm Log" and 3) We add search button for finding string at LogFile. 4) We add "Find from to with " widget, which allow search from all AlLog-files at some directory -P Printing --- simultaneously printing Alarm to TCP printer (socket connection and so on). Now we print it asynchronous, so we add additional task "alh_printer" and modificate Makefile.Unix. -L locking --- allow multiple work with the same config files, only one process is real master and write to alhLog other is slave and they wait until master will not killed -0 Database(Oracle) --- simultaneously runtime add Alarm to Database. it works asynchronous, so we add additional task "alh_DB" -B - message broadcasting -- allow send messages between operators work with the same config file. Most important case: "REBOOT MESSAGE": allow don't save alarm during reboot time. (NOT IMPLEMENTED YET ;) ) Mon Mar 15 08:57:01 CST 1999 ANSI c changes to eliminate warning messages on Linux build. Tue May 18 10:24:41 CDT 1999 Bug fix for reversed parameters in alLogChanChangeMasks. Added Silence Forever status to message area. Fri May 28 15:08:18 CDT 1999 Bug fix for forcePV. Removed alInitialize.c. Wed Jun 2 13:16:33 CDT 1999 Bug fix for area reinitialization after a new config file opened which sometimes caused a core dump. Removed alAllocGroup/alAllocChan (alCreateGroup/alCreateChannel used). Current Alarm History data no longer global, now part of area structure. Mon Jun 7 09:20:02 CDT 1999 Modified definition of netscape path. date: 1999/07/08 14:35:02; author: lange; += CMLOG support Mon Jun 21 15:15:03 CDT 1999 Start cleanup of axRunW.c file. Tue Jun 22 11:12:51 CDT 1999 Some cleanup of line.h and line.c files. Wed Jul 14 16:24:06 CDT 1999 Updates to handle global acks and ackt fields and related changes. Created version 1.2.1 date:1999/07/21 23:02:10 Cdev and Exceed changes. Bug fixes for command line options. Corrected cmlog function names. date: 1999/07/22 21:30:42 Fixed usage text. Two CMLOG fixes Fixed the context setting for value. Force new alarm processing when channel is initally disconnected. date: 1999/07/23 14:38:52; author: lange; += -filter, -mainwindow; fixed cmdline option error output date: 1999/07/26 15:32:25; author: lange; Small CMLOG related changes Changed CMLOG browser call to allow args GetChannelLine() bugfix Update current mask string date: 1999/07/28 21:26:19; author: jba; Message area text changes. Don't log the initial connection. date: 1999/08/13 19:43:46; author: lange; cmlogrc.ALH changed host tag, added more tags date: 1998/06/01 18:33:24; author: evans; alh.ico Modified the icon. Wed Oct 6 16:13:50 CDT 1999 Process forcePV ca value event only if value has changed. Thu Oct 14 10:11:23 CDT 1999 Fixed alarm channel count for INCLUDE files. Fix for ca put of ACKT values when config file is read. Fix for alarm sevr of initially canceled and disabled channels. Created version 1.2.2 Tue Oct 26 09:14:53 CDT 1999 Run window now displays color of highest unack alarm. Process initial alarm event for ALARMCOUNTFILTER channels. Tue Nov 2 14:10:45 CST 1999 Don't do caput for acknowledgment if channel is not connected. Wait for a 1 second period with no connections before writing config file ackt settings. Fri Nov 12 16:27:37 CST 1999 Don't set unack global sevr from alarm events if curMask.Ack==true Created version 1.2.3 1999/12/08 19:41:11; author: jba Changed win32 compile option to start with slash for consistancy. Initialized parent_link to null. Mon Apr 24 09:40:43 CDT 2000 - V1.2.4 Simplified alHighestSystemSeverity calculation. Added new alarm event error checking. Created version 1.2.4 Wed Aug 9 09:16:57 CDT 2000 - V1.2.5 Fixed some memory leaks in scroll.c and dialog.c and file.c. Removed change to group curSevr in alView.c. Added CMLOG_BIN definition and added -R ld option for cmlog in Makefile.Host. Added acks and ackt fields to countFilter structure in alLib.h. Modified the handling of new events when a count Filter exists, see comment table in alLib.c (near line 630 ). Created version 1.2.5 2000/08/15 17:00:20; author: lange Added startup code for HP C++-Linker Tue Sep 26 10:30:55 CDT 2000 Added audio for WIN32 and fixed some memory leaks. Thu Oct 5 14:49:17 CDT 2000 - V1.2.6 Added audio for solaris. Created version 1.2.6 2000/10/09 21:06:33; author: jba Made changes for building with solaris 6. Tue Oct 17 14:08:17 CDT 2000 - V1.2.7 Change to build with baseR3.14. Created version 1.2.7 Tue Oct 24 16:01:07 CDT 2000 - V1.2.8 More changes to build with baseR3.14. Created version 1.2.8 Tue Feb 13 09:24:37 CST 2001 - V1.2.9 Fixed bug in new alarm event filtering. Removed update of current alarm history when window not displayed. Tue Feb 20 09:42:46 CST 2001 - V1.2.9 Reinstated update of current alarm history when window not displayed. Created version 1.2.9 2001/10/09 18:07:47; author: evans Fixed code to not use ALH_Pixmap as XmNiconPixmap for WIN32, since Exceed trashes it. 2002/01/17 22:00:04; author: jba Changed HOST_ARCH to OS_CLASS in Makefile.Host 2002/02/04 19:56:15; author: jba Set ellNext parm cast to ELLNODE* to avoid compiler warnings. 2002/05/17 20:51:09; author: jba Added const to avoid compiler warnings. Tue Jul 23 16:21:37 CDT 2002 Added license information to source files. Added LICENSE file. Created version 1.2.10 Wed Sep 11 10:20:10 CDT 2002 Added missing notes to alh.notes file. Initialized FILE fl and fo to zero to avoid compiler warnings. Mon Jan 20 09:18:18 CST 2003 Add ability to set and change beep severity for channels and groups. Tue Jan 21 15:53:59 CST 2003 Simplify Beep Severity dialog: set value immediately and remove Apply and Ok. Add ability to set group/channel ack/noAck masks to noAck for one hour. Add ability to disable a group/channel forcePV. Mon Jan 27 13:52:29 CST 2003 More changes for noAck for one hour timer. Allow "NE" for forcePV reset value ( NE forcePV force value). Tue Feb 11 15:28:34 CST 2003 ALH_1_2_11Beta1 More changes for noAck for one hour timer. New Action menu item "NoAck for One Hour". Channel have Ack mask set to reset value after one hour. Ability to permanently noAck/Ack a group or channel. Groups or channels with 1 hour timer will display an 'H' in Ack mask field. A new no-Ack timer will cancel existing timers in subgroups and channels. When timer expires it will not reset any subgroups or channels that have an existing (i.e. more recent) timer. The text "ALH" has been added to the old Setup Beep Severity menu item and to the Beep Severity line in the main window message area to show that it is not a group or channel beep severity. Now when a channel is enabled after being disabled and it is not in an alarm state but does have unacknowledged transient alarms, an automatic acknowlegment is sent to the channel and the auto acknowledge- ment is logged in the opMod file. Fri Feb 14 16:24:03 CST 2003 ALH_1_2_11Beta2 Added H indicator in mask for noAck 1hr timer Added a config file heartbeatPV. Thu Feb 27 10:59:56 CST 200 ALH_1_2_11Beta3 ForcePV variables removed grom gcData and forcePV structure created. Added NE as a valid value for forcePV resetValue. Added CALC facility to forcePV. This allows algebraic, relational, and logical operations on up to 6 pvs. The result of the operations is then compared to the forcePV forceValue and resetValue to determine whether to set group/channel masks to the forceMask or resetMask. Fri Feb 28 16:38:19 CST 2003 ALH_1_2_11Beta4 Changed opMod file output. Now contains top group name followed by group or channel name each followed by a colon or just a colon if the name is not available. Mon Mar 3 09:24:38 CST 2003 ALH_1_2_11Beta5 Moved channel beepSevr modified indicators to preceed possible return. Added code for display of highest existing beepSevr in sub groups and channels. Modified alarm log file output. Now calculate alarmLogFileStringLength. Changed fopen of alarm log file from r+ to w+(truncate or create). Modified forcePV opMod log messages text. Wed Sep ? 12:55:31 ALH_1_2_12 Created tag ALH_1_2_12 for a requested distribution tar file. Wed Oct 8 16:01:03 CDT 2003 ALH_1_2_13 Code changed to reduce warning messages. Write "N/A" to cmlog when blink string is missing. Fixes made to Force Mask popup. Removed old sccs id variable. Wed Feb 25 22:28:56 CDT 2004 ALH_1_2_14 Change conditional from WIN32 to HAVE_SYSV_IPC. Add appropriate conditional to alh.h to define HAVE_SYSV_IPC as appropriate. Ensure that alh.h is included before conditionals depending on HAVE_SYSV_IPC. Tue Jun 1 15:41:38 CDT 2004 ALH_1_2_15 Added -desc_field option. - Albert Kagarmanov Added acknowledge PV support - Albert Kagarmanov Portablility change for darwin-ppc - Eric Norum Fri Jul 16 16:22:32 CDT 2004 ALH_1_2_16 Added comments and void return value for getDescriptionRecord. Saved ca alarm event data and added a ca reconnection event (for R3.14.6). Thu Jul 22 11:02:33 CDT 2004 ALH_1_2_17 Removed menu tearoff feature. Tornoff menus cannot be closed. Mon Aug 2 09:24:36 CDT 2004 ALH_1_2_18 Modified save of ca alarm event data to save only at a disconnect event. Tue Aug 10 10:48:18 CDT 2004 ALH_1_2_19beta1 Skip restoring saved alarm data at initial connection. Popup error msg for unconnected SEVRPV, FORCEPV, ACKPV, HEARTBEATPV Popup error msg when no read access for FORCEPV Popup error msg when no write access for SEVRPV, ACKPV, HEARTBEATPV Popup error msg when no read or write access for alarm channels Added ca clear channel for Acknowledge PV. Popup error msg for invalid SEVRPV, FORCEPV, ACKPV, HEARTBEATPV input Fri Oct 29 14:54:00 CDT 2004 ALH_1_2_19beta2 Set main window background color pink if Silence For One Hour is active. Tue Apr 5 10:06:27 CDT 2005 Added "ALH" to popup dialogs and added timestamp to popup error dialog. Tue Jun 21 13:23:04 CDT 2005 ALH_1_2_20 Silence One Hour: Set color of newly created row widgets to color of parent widget. Change color of ALL widget children except ack button, sevr indicator, and name push button. Write errMsg text to opMod log file when errors occur. Remove extra carriage returns in opMod log file. Remove group and channel data from opMod log message if they do not exist. Print "Setup Config File" to opMod log before config file error messages. Open file for scroll window reading as r. Removed comments. Cleaned code. Set cursor position to last line written, even in circular files. Create new dialog when a dialog is requested. Destroy dialog when closed. Mon Dec 5 10:23:24 CST 2005 Added alh_printer libraries socket & nsl for R3.14.8 build to Makefile.Host. Fri Feb 23 09:31:05 CST 2007 ALH_1_2_21 Fixed core dump after pushing a Silence button on linux. (Initialized numChildren before getting XmNnumChildren.) Portability changes for darwin. Moved code for alCaCancel. Updated to R3.14 Makefiles. Tue Jun 26 10:27:36 CDT 2007 ALH_1_2_22 Merged the follwing sns modifications into alh code: alCA.c - sinclair Modified code in function description_callback change pend io time from 0.5 to 5.0 seconds add pend event poll after each pend io alLog.c, file.c - kasemir Added xml flag. Log file is more XML-ish alLog.c, file.c - sinclair added format specifier -xml awAlh.c, awView.c - sinclair modified code associated with clipboard copy operation on drag-and-drop operation, attempt to put pv name into primary selection buffer added code so a drag-and-drop operation displays the group name or pv name; this may be used to examine the pv name associated with an alias; to do this I needed to change user data associated with group and pv name buttons modified code to accommodate the above change in user data code cleanup axArea.h - axRunW.c - sinclair Environment variable ALHMAINFONT may be used to set top level button font e.g. export ALHMAINFONT='-*-utopia-bold-r-normal--0-720-75-75-p-0-*-*' Added code to display mask of top group in top level button label alLib.c - sinclair code cleanup added serveral NULL pointer checks alLib.c - axRunW.c - sinclair show force mask on top button only when at least one bit is set axRunW.c.c - sinclair code cleanup changed if/then test condition Enclose top level button mask info in < > process.c - sinclair Change action separator from "|" to "!" make command menu a child of topLevelShell add code to allow multiple commands to be specified for one command (corresponding to the old syntax) - execute when button is pressed multiple commands are designated using the following syntax cmd 1 name|cmd 1 string|cmd 2 name|cmd 2 string|...cmd n name|cmd n string for multiple commands, popup menu and execute the selected command scroll.c - sinclair remove static qualifier from Strncat change "/" to '/' in comparison code cleanup use configuration directory (if given) when building include file names set maximum config file line length to 1023 added code to recursively display contents of configuration include files Tue Jun 26 14:16:33 CDT 2007 ALH_1_2_23 Return val for calcPerform/postfix changed to long to match prototype For WIN32 set strtok_r to strtok_s Mon Nov 5 15:56:00 CST 2007 Bug fix. Initialized numChildren to zero in case the resource XmNnumChildren is not defined for some Widgets. Mon Nov 26 10:11:55 CST 2007 Put ALH User's Guide under CVS control in alh subdirectory documentation. Updated User's Guide with SNS changes. (see entry of Jun 26). Tue Feb 5 10:19:30 CST 2008 ALH_1_2_24 Portability changes for 64bit builds.