am_defs.h

The following is a partial listing of this file showing you important definitions you need to know:

#ifndef _AM_DEFS_H
#define _AM_DEFS_H
#include <inc_path/rtr_bcst.h>
/***************************************/
/* Internal format of Datagram Address */
/***************************************/
typedef TCHAR AM_DADDR[NODE_ID_LEN+1+OBJECT_NAME_LEN+1];
#define AM_BLANK_MSG _T("                                           ")
/******************************************************************/
/* Interaction between AMRP and process Generating or Updating    */
/* Alarm Status                                                  */
/******************************************************************/
/* Types of responses a process can request. Full implies, wait  */
/* until after processing is complete and sent a response on the  */
/* success or failure of the request.                             */
/******************************************************************/
typedef int AM_RESP_TYPE;
#define AM_FULL_RESP       0
#define AM_CAPTURED_RESP   1
#define AM_NO_RESP         2
/***********************************************************************/
/* Typedef for Key for identifying which segment is being responded to */
/***********************************************************************/
typedef int AM_RESP_KEY;
/*******************************************************************/
/* Alarm States                                                   */
/* WARNING - the order here must not be changed. For efficiency   */
/* the module AM_TERM_INFO assumes the order as specified. If this */
/* is changed, active terminal alarm information will be incorrect */
/*                                                                           */
/* AM_REPEATED is not an actual state, but is used for auto-repeat */
/* updates.                                                                  */
/***********************************************************************/
typedef int AM_STATE_TYPE;
#define AM_GENERATED    0
#define AM_ACKNOWLEDGED 1
#define AM_CLEARED      2
#define AM_DELETED      3
#define AM_NONEXISTENT  4
#define AM_COMMENT_MSG  5
#define AM_NOSTATE      6
#define AM_REPEATED     7
/******************************************************************/
/* number of permanent states - I.E. state in which in an alarm   */
/* can remain                                                    */
/******************************************************************/
#define AM_NUM_PERMANENT_STATES 3 /* gen, ack, clear */
/**********************/
/* Legal Filter Types */
/**********************/
typedef int AM_FILTER_TYPE;
#define AM_TIME_FILTER     0
#define AM_STATE_FILTER    1
#define AM_FR_FILTER       2
#define AM_CLASS_FILTER    3
/******************************************/
/* Type Definitions for Filter Parameters */
/******************************************/
#define SIZEOF_AM_FILTER COR_MAX(CLASS_ID_LEN+1,FR_ID_LEN+1)
typedef union am_filter
    {
       COR_STAMP       start_time;
       TCHAR             class_id[CLASS_ID_LEN+1];
       AM_STATE_TYPE   alarm_state;
       TCHAR             fr_id[FR_ID_LEN+1];
       COR_I1      _pad[DO_ALIGN(SIZEOF_AM_FILTER,4)]; /* alignment data */
    } AM_FILTER;
typedef struct am_filter_parm
    {
          AM_FILTER_TYPE type;
          AM_FILTER filter;
    } AM_FILTER_PARM;
typedef struct am_stacked_info
    {
          COR_STAMP gentime;
          AM_STATE_TYPE alarm_state;
          TCHAR alarm_msg[ALARM_MSG_LEN+1];
   COR_I1 _pad[3];                /* alignment data */
    } AM_STACKED_INFO;
/*********************************************************************/
/* Maximum Number of Stacked Alarms (in addition to the most recent) */
/*********************************************************************/
#define AM_MAX_STACKED 19
/*************************************/
/* Max length of Alarm Comment      */
/*************************************/
#define old_AM_COMMENT_LEN 72
typedef struct old_am_comment_info
    {
          COR_STAMP gentime;
          TCHAR alarm_comment[old_AM_COMMENT_LEN+1];
    COR_I1 _pad[3];                        /* alignment data */
      } old_AM_COMMENT_INFO;
#define AM_COMMENT2_LINE_LEN 72
#define AM_COMMENT2_LEN (AM_COMMENT2_LINE_LEN*10)
typedef struct am_comment_info2
      {
          COR_STAMP gentime;
          TCHAR alarm_comment[AM_COMMENT2_LEN+1];
   COR_I1 _pad[3];                       /* alignment data */
      } AM_COMMENT2_INFO;
#define AM_COMMENT_ACT_ADD           _T('A')
#define AM_COMMENT_ACT_DELETE        _T('D')
/*********************************************************************/
/* Maximum Number of Alarm Comments                                 */
/*********************************************************************/
#define AM_MAX_ALARM_COMMENTS 20
/************************************/
/* Maximum size of a string parameter */
/************************************/
#define AM_MAX_STR 73
/********************************************/
/* Log and Delete Option Character Meanings */
/********************************************/
#define AM_ACK_CHAR  _T('A')
#define AM_CLR_CHAR  _T('R')
#define AM_DEL_CHAR  _T('D')
#define AM_GEN_CHAR  _T('G')
/*******************************************************************/
/* Defines for alarm visibility type                              */
/* WARNING - the order here must not be changed. For efficiency   */
/* the module AM_TERM_INFO assumes the order as specified. If this */
/* is changed, active terminal alarm information will be incorrect */
#define AM_ALL_ALARMS   0  /* all alarms visible by this user */
#define AM_UNACK_ONLY   1  /* all unacknowledged alarms visible by this user  */
#define AM_UNACK_UNCLR  2  /* all unacknowledged, uncleared alarms visible by */
                           /* this user */
/**********************************/
/* Defines for Message Formatting */
/**********************************/
#define AM_DG       _T('D')
#define AM_NON_DG   _T('L')
#define AM_LL       _T('L')
/***************************/
/* Resident Process States */
/***************************/
typedef int AMRP_STATE_TYPE;
/*********************/
/* Legal AMRP States */
/*********************/
#define AMRP_MASTER    0
#define AMRP_SLAVE     1
/***************************/
/* Legal Alarm Field Types */
/***************************/
typedef int AM_FIELD_TYPE;
#define AM_CHAR         0
#define AM_STR          1
#define AM_INT          2
#define AM_COR_I1       3
#define AM_COR_I2       4
#define AM_COR_I4       5
#define AM_COR_BOOLEAN  6
#define AM_COR_U1       7
#define AM_COR_U2       8
#define AM_COR_U4       9
#define AM_FLOAT       10
#define AM_EXP_MSG_LEN  ( ALARM_MSG_LEN ) /* from sc_recs.h */
#define AM_MAX_FIELDS   6 /* warning, if this number is changed, so must */
                         /* the case statement in procedure am_msg_expand */
#define AM_STATE_LEN    3
#define AM_TIME_LEN    22
/************************************************************/
/* Typedefs neccessary to define unformatted message fields */
/************************************************************/
#define SIZEOF_AM_FIELD (AM_MAX_STR+1)
typedef union am_field
{
        COR_I4 cori4_val;
        COR_I2 cori2_val;
        COR_I1 cori1_val;
        COR_U4 coru4_val;
        COR_U2 coru2_val;
        COR_U1 coru1_val;
        COR_BOOLEAN corbool_val;
        int ival;
        float fval;
        TCHAR chval;
        TCHAR str[AM_MAX_STR+1];
        /* This structure must be aligned because it is contained
           * in the AM_GEN_SEG message segment, which may be passed
           * in a hybrid environment. */
           COR_I1 _pad[DO_ALIGN(SIZEOF_AM_FIELD,4)];
     } AM_FIELD;
typedef struct am_msg_field
     {
          AM_FIELD_TYPE ftype;
          AM_FIELD field;
     } AM_MSG_FIELD;
/*************************************/
/* Max length of reference id string */
/*************************************/
#define AM_REF_ID_LEN 32
#define AM_NULL_REF_ID -1
/***********************************/
/* Length of buffer in am_log            */
/***********************************/
#define AM_LOG_BUF_SIZE 156
#define AM_LOG_ALARM_FILE      0
#define AM_LOG_ALTERNATE_FILE  1
#define AM_LOG_BOTH_FILES      2
/* The character that begins a site-wide setup name. */
#define AM_SITE_WIDE_CHAR _T('$')
/* These help us create aligned messages. */
#define SETUP_ID_MFLEN DO_ALIGN(SETUP_ID_LEN+1,4)
#define USER_ID_MFLEN DO_ALIGN(USER_ID_LEN+1,4)
/* The name that is displayed when the user is using an ad hoc
* setup. (This must be SETUP_ID_LEN characters or less). 
                          0123456789ABCDEF
*/ 
#define AMAP_ADHOC_SETUP _T("<AD HOC SETUP>")
#define AM_HELPTEXT_LEN 72
#define AM_HELPTEXT_NUM_LINES 59
/* segment/feature Versioning information */
/* initiated with creation of am_list_ex, am_upd_inf_ex, am_gen_list_ex */
#define AM_VERS_0  0
#define AM_VERS_1  1
#define AM_VERS_2               2
#define AM_VERS_3  3      /*lengthened, perm., comments */
/* If you add a new version, bump the current version, as all code
** using this should be compatible
** with any earlier versions (provided fields are NOT removed.)
*/
#define AM_VERS_CURRENT  AM_VERS_3