]> rtime.felk.cvut.cz Git - arc.git/commitdiff
More protection added during implementation of test cases.
authorFredrik <devnull@localhost>
Thu, 27 Jan 2011 21:55:52 +0000 (22:55 +0100)
committerFredrik <devnull@localhost>
Thu, 27 Jan 2011 21:55:52 +0000 (22:55 +0100)
system/WdgM/WdgM.c
system/WdgM/WdgM.h

index 7694d3b6bb7d812a7b8c549b5c44c79721662783..ec8cd30d1bc728994c1b44138bb900ebaad6c891 100644 (file)
@@ -54,6 +54,7 @@ Std_ReturnType WdgM_UpdateAliveCounter (WdgM_SupervisedEntityIdType SEid)
 {
   Std_ReturnType ret = E_NOT_OK;
   VALIDATE_ENTITY_ID(SEid, WDGM_UPDATEALIVECOUNTER_ID);\r
+  VALIDATE((wdgMInternalState.WdgM_ConfigPtr != 0), WDGM_UPDATEALIVECOUNTER_ID, WDGM_E_NO_INIT);
   WdgM_SupervisionType *supervisionPtr = &(wdgMInternalState.WdgM_ConfigPtr->WdgM_ConfigSet->WdgM_SupervisionPtr)[SEid];\r
 
   /** @req WDGM083 **/\r
@@ -76,6 +77,7 @@ Std_ReturnType WdgM_ActivateAliveSupervision (WdgM_SupervisedEntityIdType SEid)
 {\r
   Std_ReturnType ret = E_NOT_OK;
   VALIDATE_ENTITY_ID(SEid, WDGM_ACTIVATEALIVESUPERVISION_ID);
+  VALIDATE((wdgMInternalState.WdgM_ConfigPtr != 0), WDGM_ACTIVATEALIVESUPERVISION_ID, WDGM_E_NO_INIT);
   WdgM_SupervisionType *supervisionPtr = &(wdgMInternalState.WdgM_ConfigPtr->WdgM_ConfigSet->WdgM_SupervisionPtr)[SEid];\r
 \r
   supervisionPtr->ActivationStatus = WDBG_SUPERVISION_ENABLED;\r
@@ -89,6 +91,7 @@ Std_ReturnType WdgM_DeactivateAliveSupervision (WdgM_SupervisedEntityIdType SEid
 {
   Std_ReturnType ret;\r
   VALIDATE_ENTITY_ID(SEid, WDGM_DEACTIVATEALIVESUPERVISION_ID);
+  VALIDATE((wdgMInternalState.WdgM_ConfigPtr != 0), WDGM_DEACTIVATEALIVESUPERVISION_ID, WDGM_E_NO_INIT);
   WdgM_SupervisionType *supervisionPtr = &(wdgMInternalState.WdgM_ConfigPtr->WdgM_ConfigSet->WdgM_SupervisionPtr)[SEid];\r
 
   /** @req WDGM114 **/
@@ -105,6 +108,7 @@ Std_ReturnType WdgM_GetAliveSupervisionStatus (WdgM_SupervisedEntityIdType SEid,
 {
        Std_ReturnType ret;
        VALIDATE_ENTITY_ID(SEid, WDGM_GETALIVESUPERVISION_ID);
+       VALIDATE((wdgMInternalState.WdgM_ConfigPtr != 0), WDGM_GETALIVESUPERVISION_ID, WDGM_E_NO_INIT);
        WdgM_SupervisionType *supervisionPtr = &(wdgMInternalState.WdgM_ConfigPtr->WdgM_ConfigSet->WdgM_SupervisionPtr)[SEid];
        *Status = supervisionPtr->SupervisionStatus;
        ret = E_OK;
@@ -190,13 +194,23 @@ void WdgM_Init(const WdgM_ConfigType *ConfigPtr)
   wdgMInternalState.WdgM_ConfigPtr = ConfigPtr;\r
 }
 
+/* Non standard API for test purpose.  */
+void WdgM_DeInit( void)
+{
+       wdgMInternalState.WdgM_GlobalSupervisionStatus = 0;
+       wdgMInternalState.WdgM_ConfigPtr = 0;
+}
+
+
 /** @req WDGM060 **/
 /** @req WDGM061 **/
 /** @req WDGM063 **/\r
 /** @req WDGM099 **/\r
 /** @req WDGM159 **/
 void WdgM_MainFunction_AliveSupervision (void)\r
-{\r
+{
+  VALIDATE_NO_RETURNVAL((wdgMInternalState.WdgM_ConfigPtr != 0), WDGM_MAINFUNCTION_ALIVESUPERVISION_ID, WDGM_E_NO_INIT);
+\r
   WdgM_SupervisedEntityIdType SEid;\r
   WdgM_SupervisionType *supervisionPtr;\r
   const WdgM_SupervisedEntityType *entityPtr;\r
@@ -332,6 +346,8 @@ boolean WdgM_IsAlive(void)
 void WdgM_MainFunction_Trigger (void)\r
 {\r
   uint8 i;
+  /** @req WDGM068 **/
+  VALIDATE_NO_RETURNVAL((wdgMInternalState.WdgM_ConfigPtr != 0), WDGM_MAINFUNCTION_TRIGGER_ID, WDGM_E_NO_INIT);
 
   /* Update trigger counter. */
   wdgMInternalState.WdgMTriggerCounter++;
@@ -348,7 +364,7 @@ void WdgM_MainFunction_Trigger (void)
                /** @req WDGM109 **/
                /* Time to trig this particular watchdog instance? */
           if (0 == (wdgMInternalState.WdgMTriggerCounter %
-                          wdgMInternalState.WdgM_ConfigPtr->WdgM_ConfigSet->WdgM_Trigger[i].WdgM_TriggerReferenceCycle))
+                            wdgMInternalState.WdgM_ConfigPtr->WdgM_ConfigSet->WdgM_Trigger[i].WdgM_TriggerReferenceCycle))
           {
                 /** @req WDGM066 **/
             WdgIf_Trigger(wdgMInternalState.WdgM_ConfigPtr->WdgM_ConfigSet->WdgM_Trigger[i].WdgM_WatchdogRef);
index 61776cce0d6d1efa1ee1fe5c51b243bba6588e11..560e363335bd4f366740473d90ce4d97c4c950eb 100644 (file)
 #include "WdgM_Cfg.h"\r
 
 // API Service ID's
-#define WDGM_INIT_ID                        0x00
-#define WDGM_SETMODE_ID                     0x03
-#define WDGM_UPDATEALIVECOUNTER_ID                     0x04
-#define WDGM_ACTIVATEALIVESUPERVISION_ID    0x05
-#define WDGM_DEACTIVATEALIVESUPERVISION_ID  0x06
-#define WDGM_GETMODE_ID                     0x0b
-#define WDGM_GETALIVESUPERVISION_ID         0x0c
-#define WDGM_GETGLOBALSTATUS_ID             0x0d
+#define WDGM_INIT_ID                          0x00
+#define WDGM_SETMODE_ID                       0x03
+#define WDGM_UPDATEALIVECOUNTER_ID                       0x04
+#define WDGM_ACTIVATEALIVESUPERVISION_ID      0x05
+#define WDGM_DEACTIVATEALIVESUPERVISION_ID    0x06
+#define WDGM_MAINFUNCTION_TRIGGER_ID          0x06
+#define WDGM_MAINFUNCTION_ALIVESUPERVISION_ID 0x08
+#define WDGM_GETMODE_ID                       0x0b
+#define WDGM_GETALIVESUPERVISION_ID           0x0c
+#define WDGM_GETGLOBALSTATUS_ID               0x0d
 
 
 /** @req WDGM004 **/
@@ -59,6 +61,7 @@ Std_ReturnType WdgM_DeactivateAliveSupervision (WdgM_SupervisedEntityIdType SEid
 Std_ReturnType WdgM_GetGlobalStatus (WdgM_AliveSupervisionStatusType *Status);
 Std_ReturnType WdgM_GetAliveSupervisionStatus (WdgM_SupervisedEntityIdType SEid, WdgM_AliveSupervisionStatusType *Status);\r
 void WdgM_Init(const WdgM_ConfigType* ConfigPtr);
+void WdgM_DeInit(void);
 Std_ReturnType WdgM_SetMode(WdgM_ModeType Mode);\r
 void WdgM_MainFunction_AliveSupervision (void);\r
 void WdgM_MainFunction_Trigger (void);\r