From 3093d8f4f47bf60aad99fe41f4ba681207ed691c Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 3 Mar 2009 17:15:10 +0000 Subject: [PATCH] Reduce duplication of alarm strings. --- src/dbStatic/alarm.h | 195 +++++++++++++++---------------------- src/dbStatic/alarmString.h | 60 +++++++++--- 2 files changed, 122 insertions(+), 133 deletions(-) diff --git a/src/dbStatic/alarm.h b/src/dbStatic/alarm.h index 5ed2e5b0f..5818bc896 100644 --- a/src/dbStatic/alarm.h +++ b/src/dbStatic/alarm.h @@ -1,23 +1,21 @@ /*************************************************************************\ -* Copyright (c) 2002 The University of Chicago, as Operator of Argonne +* Copyright (c) 2009 UChicago Argonne LLC, as Operator of Argonne * National Laboratory. * Copyright (c) 2002 The Regents of the University of California, as * Operator of Los Alamos National Laboratory. -* EPICS BASE Versions 3.13.7 -* and higher are distributed subject to a Software License Agreement found +* EPICS BASE is distributed subject to a Software License Agreement found * in file LICENSE that is included with this distribution. \*************************************************************************/ -/* Alarm definitions (Must Match choiceGbl.ascii) */ +/* Alarm definitions, must match menuAlarmSevr.dbd and menuAlarmStat.dbd */ /* $Id$ */ /* - * Original Author: Bob Dalesio - * Current Author: Marty Kraimer - * Date: 11-7-90 + * Authors: Bob Dalesio and Marty Kraimer + * Date: 11-7-90 */ -#ifndef INCalarmh -#define INCalarmh 1 +#ifndef INC_alarm_H +#define INC_alarm_H #include "shareLib.h" #include "epicsTypes.h" @@ -26,128 +24,89 @@ extern "C" { #endif -/* defines for the choice fields */ -/* ALARM SEVERITIES - NOTE: must match defs in choiceGbl.ascii GBL_ALARM_SEV */ -#define NO_ALARM 0x0 -#define MINOR_ALARM 0x1 -#define MAJOR_ALARM 0x2 -#define INVALID_ALARM 0x3 -#define ALARM_NSEV INVALID_ALARM+1 -#ifndef NO_ALARMH_ENUM +#define NO_ALARM 0 + +/* ALARM SEVERITIES - must match menuAlarmSevr.dbd */ typedef enum { - epicsSevNone = NO_ALARM, - epicsSevMinor = MINOR_ALARM, - epicsSevMajor = MAJOR_ALARM, - epicsSevInvalid = INVALID_ALARM -}epicsAlarmSeverity; -#define firstEpicsAlarmSev epicsSevNone -#define lastEpicsAlarmSev epicsSevInvalid + epicsSevNone = NO_ALARM, + epicsSevMinor, + epicsSevMajor, + epicsSevInvalid, + ALARM_NSEV +} epicsAlarmSeverity; -#ifdef epicsAlarmGLOBAL -READONLY char *epicsAlarmSeverityStrings [lastEpicsAlarmSev+1] = { - "NO_ALARM", - "MINOR", - "MAJOR", - "INVALID", -}; -#else /*epicsAlarmGLOBAL*/ -epicsShareExtern READONLY char *epicsAlarmSeverityStrings [lastEpicsAlarmSev+1]; -#endif /*epicsAlarmGLOBAL*/ +#define firstEpicsAlarmSev epicsSevNone +#define MINOR_ALARM epicsSevMinor +#define MAJOR_ALARM epicsSevMajor +#define INVALID_ALARM epicsSevInvalid +#define lastEpicsAlarmSev epicsSevInvalid -#endif /* NO_ALARMH_ENUM */ +epicsShareExtern const char *epicsAlarmSeverityStrings [ALARM_NSEV]; -/* ALARM STATUS -NOTE: must match defs in choiceGbl.ascii GBL_ALARM_STAT */ -/* NO_ALARM = 0 as above */ -#define READ_ALARM 1 -#define WRITE_ALARM 2 -/* ANALOG ALARMS */ -#define HIHI_ALARM 3 -#define HIGH_ALARM 4 -#define LOLO_ALARM 5 -#define LOW_ALARM 6 -/* BINARY ALARMS */ -#define STATE_ALARM 7 -#define COS_ALARM 8 -/* other alarms */ -#define COMM_ALARM 9 -#define TIMEOUT_ALARM 10 -#define HW_LIMIT_ALARM 11 -#define CALC_ALARM 12 -#define SCAN_ALARM 13 -#define LINK_ALARM 14 -#define SOFT_ALARM 15 -#define BAD_SUB_ALARM 16 -#define UDF_ALARM 17 -#define DISABLE_ALARM 18 -#define SIMM_ALARM 19 -#define READ_ACCESS_ALARM 20 -#define WRITE_ACCESS_ALARM 21 -#define ALARM_NSTATUS WRITE_ACCESS_ALARM + 1 -#ifndef NO_ALARMH_ENUM +/* ALARM STATUS - must match menuAlarmStat.dbd */ typedef enum { - epicsAlarmNone = NO_ALARM, - epicsAlarmRead = READ_ALARM, - epicsAlarmWrite = WRITE_ALARM, - epicsAlarmHiHi = HIHI_ALARM, - epicsAlarmHigh = HIGH_ALARM, - epicsAlarmLoLo = LOLO_ALARM, - epicsAlarmLow = LOW_ALARM, - epicsAlarmState = STATE_ALARM, - epicsAlarmCos = COS_ALARM, - epicsAlarmComm = COMM_ALARM, - epicsAlarmTimeout = TIMEOUT_ALARM, - epicsAlarmHwLimit = HW_LIMIT_ALARM, - epicsAlarmCalc = CALC_ALARM, - epicsAlarmScan = SCAN_ALARM, - epicsAlarmLink = LINK_ALARM, - epicsAlarmSoft = SOFT_ALARM, - epicsAlarmBadSub = BAD_SUB_ALARM, - epicsAlarmUDF = UDF_ALARM, - epicsAlarmDisable = DISABLE_ALARM, - epicsAlarmSimm = SIMM_ALARM, - epicsAlarmReadAccess = READ_ACCESS_ALARM, - epicsAlarmWriteAccess = WRITE_ACCESS_ALARM -}epicsAlarmCondition; -#define firstEpicsAlarmCond epicsSevNone -#define lastEpicsAlarmCond epicsAlarmWriteAccess + epicsAlarmNone = NO_ALARM, + epicsAlarmRead, + epicsAlarmWrite, + epicsAlarmHiHi, + epicsAlarmHigh, + epicsAlarmLoLo, + epicsAlarmLow, + epicsAlarmState, + epicsAlarmCos, + epicsAlarmComm, + epicsAlarmTimeout, + epicsAlarmHwLimit, + epicsAlarmCalc, + epicsAlarmScan, + epicsAlarmLink, + epicsAlarmSoft, + epicsAlarmBadSub, + epicsAlarmUDF, + epicsAlarmDisable, + epicsAlarmSimm, + epicsAlarmReadAccess, + epicsAlarmWriteAccess, + ALARM_NSTATUS +} epicsAlarmCondition; -#ifdef epicsAlarmGLOBAL -READONLY char *epicsAlarmConditionStrings [lastEpicsAlarmCond+1] = { - "NO_ALARM", - "READ", - "WRITE", - "HIHI", - "HIGH", - "LOLO", - "LOW", - "STATE", - "COS", - "COMM", - "TIMEOUT", - "HWLIMIT", - "CALC", - "SCAN", - "LINK", - "SOFT", - "BAD_SUB", - "UDF", - "DISABLE", - "SIMM", - "READ_ACCESS", - "WRITE_ACCESS", -}; -#else /*epicsAlarmGLOBAL*/ -epicsShareExtern READONLY char *epicsAlarmConditionStrings [lastEpicsAlarmCond+1]; -#endif /*epicsAlarmGLOBAL*/ +#define firstEpicsAlarmCond epicsAlarmNone +#define READ_ALARM epicsAlarmRead +#define WRITE_ALARM epicsAlarmWrite +#define HIHI_ALARM epicsAlarmHiHi +#define HIGH_ALARM epicsAlarmHigh +#define LOLO_ALARM epicsAlarmLoLo +#define LOW_ALARM epicsAlarmLow +#define STATE_ALARM epicsAlarmState +#define COS_ALARM epicsAlarmCos +#define COMM_ALARM epicsAlarmComm +#define TIMEOUT_ALARM epicsAlarmTimeout +#define HW_LIMIT_ALARM epicsAlarmHwLimit +#define CALC_ALARM epicsAlarmCalc +#define SCAN_ALARM epicsAlarmScan +#define LINK_ALARM epicsAlarmLink +#define SOFT_ALARM epicsAlarmSoft +#define BAD_SUB_ALARM epicsAlarmBadSub +#define UDF_ALARM epicsAlarmUDF +#define DISABLE_ALARM epicsAlarmDisable +#define SIMM_ALARM epicsAlarmSimm +#define READ_ACCESS_ALARM epicsAlarmReadAccess +#define WRITE_ACCESS_ALARM epicsAlarmWriteAccess +#define lastEpicsAlarmCond epicsAlarmWriteAccess -#endif /* NO_ALARMH_ENUM */ +epicsShareExtern const char *epicsAlarmConditionStrings [ALARM_NSTATUS]; #ifdef __cplusplus } #endif -#endif /* INCalarmh */ +#ifdef epicsAlarmGLOBAL +# include "alarmString.h" +#endif + + +#endif /* INC_alarm_H */ diff --git a/src/dbStatic/alarmString.h b/src/dbStatic/alarmString.h index b8a021edd..fdcf00dec 100644 --- a/src/dbStatic/alarmString.h +++ b/src/dbStatic/alarmString.h @@ -6,31 +6,61 @@ * EPICS BASE is distributed subject to a Software License Agreement found * in file LICENSE that is included with this distribution. \*************************************************************************/ -/* $Id$ */ +/* $Id$ */ -/* String values for alarms (compatibility header) */ +/* String names for alarms */ -/* As of January 2004 (EPICS Base 3.14.5), the use of this file is - * - * D E P R E C A T E D - * - * Please use the definitions in alarm.h instead. */ - - -#ifndef INCalarmStringh -#define INCalarmStringh 1 +#ifndef INC_alarmString_H +#define INC_alarmString_H #ifdef __cplusplus extern "C" { #endif -/* Use the strings from alarm.h */ +/* Compatibility with original alarmString.h names */ #define alarmSeverityString epicsAlarmSeverityStrings -epicsShareExtern const char *epicsAlarmSeverityStrings []; - #define alarmStatusString epicsAlarmConditionStrings -epicsShareExtern const char *epicsAlarmConditionStrings []; + + +/* Name strings */ + +/* ALARM SEVERITIES - must match menuAlarmSevr.dbd and alarm.h */ + +const char * epicsAlarmSeverityStrings[] = { + "NO_ALARM", + "MINOR", + "MAJOR", + "INVALID" +}; + + +/* ALARM STATUS - must match menuAlarmStat.dbd and alarm.h */ + +const char * epicsAlarmConditionStrings[] = { + "NO_ALARM", + "READ", + "WRITE", + "HIHI", + "HIGH", + "LOLO", + "LOW", + "STATE", + "COS", + "COMM", + "TIMEOUT", + "HWLIMIT", + "CALC", + "SCAN", + "LINK", + "SOFT", + "BAD_SUB", + "UDF", + "DISABLE", + "SIMM", + "READ_ACCESS", + "WRITE_ACCESS" +}; #ifdef __cplusplus }