How the Alarm Viewer API Works

As an aid in understanding how the CAmvConn uses the callback functions, this section gives a brief description of the order and context of execution. The order provided here represents a very high-level description of operation and includes only those details believed relevant to writing a custom alarm viewer.

WHEN constructor called

   Start trying to form connection

WHEN connection formed

   CALL DoConnectionFormed(context);

WHEN connection lost to AMRP

   Call LostAM(context);

WHEN connection lost to RCM

   Call DoRcmError(context, state);

WHEN AMRP sends count or date change

   Call UpdateCount(context, countInfo);

WHEN viewer calls RequestAlarms()

   Ask AMRP for all current alarms

WHEN viewer requests dynamic mode

   Call MaxAlarms(context);

WHEN viewer calls UpdateList()

   FOR EACH alarm with pending action

      send update to AMRP

   ENDFOR

WHEN AMRP sends current alarms (in static AND dynamic mode)

   CALL SetDisplayRedraw(context, FALSE);

  CALL ClearDisp(context);

   FOR EACH alarm from AMRP

      build AlarmInfo

      CALL dispFunc(context, AlarmInfo);

   ENDFOR

   Call SetDisplayRedraw(context, TRUE);

IF in dynamic mode

   WHEN alarm notification received from AMRP

      build AlarmInfo

      SWITCH (notification type)

         CASE generate:

             Call NotifyAlmGen(context, AlarmInfo);

             break;

         CASE modify:

             Call NotifyAlmMod(context, AlarmInfo, action);

             break;

          CASE delete:

             Call NotifyAlmDel(context, AlarmInfo);

             break

      ENDSWITCH

ENDIF

More information

Alarm Viewer API getting started.