]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Fixes to validation in EcuM.
authoreija <devnull@localhost>
Mon, 31 Jan 2011 14:34:24 +0000 (15:34 +0100)
committereija <devnull@localhost>
Mon, 31 Jan 2011 14:34:24 +0000 (15:34 +0100)
include/Com_Com.h
include/EcuM.h
system/EcuM/EcuM.c
system/EcuM/EcuM_Main.c

index 5b023f3849eae3595b24c1f908855aba7f1cffb0..9886a8e5623354c12d1e41328283366f4e30b6b7 100644 (file)
@@ -23,8 +23,8 @@
 #ifndef COM_COM_H_\r
 #define COM_COM_H_\r
 \r
-#include "Com.h"\r
-#include "PduR.h"\r
+#include <Com.h>\r
+#include <PduR.h>\r
 \r
 uint8 Com_SendSignal(Com_SignalIdType SignalId, const void *SignalDataPtr);\r
 uint8 Com_ReceiveSignal(Com_SignalIdType SignalId, void* SignalDataPtr);\r
index 3b0eb1adf30f5baeca47c6eb3ec702b574cc4b0b..ac0bf50f860648a4a88243d37af76d27e67ced4e 100644 (file)
@@ -39,6 +39,7 @@
 #define ECUM_E_MISMATCHED_RUN_RELEASE (0x15)\r
 #define ECUM_E_STATE_PAR_OUT_OF_RANGE (0x16)\r
 #define ECUM_E_UNKNOWN_WAKEUP_SOURCE (0x17)\r
+#define ECUM_E_ARC_TIMERERROR (0x18)\r
 //@}\r
 \r
 /** @name Service id's */\r
@@ -58,6 +59,7 @@
 #define ECUM_GET_BOOTARGET_ID (0x13)\r
 #define ECUM_MAINFUNCTION_ID (0x18)\r
 #define ECUM_COMM_HASREQUESTEDRUN_ID (0x1b)\r
+#define ECUM_ARC_STARTUPTWO_ID (0x20)\r
 \r
 /** Possible states */\r
 typedef enum {\r
@@ -172,7 +174,7 @@ Std_ReturnType EcuM_ReleasePOST_RUN(EcuM_UserType user);
 \r
 void EcuM_KillAllRUNRequests(void);\r
 \r
-#if defined(USE_COM)\r
+#if defined(USE_COMM)\r
 Std_ReturnType EcuM_ComM_RequestRUN(NetworkHandleType channel);\r
 Std_ReturnType EcuM_ComM_ReleaseRUN(NetworkHandleType channel);\r
 boolean EcuM_ComM_HasRequestedRUN(NetworkHandleType channel);\r
index b0ec45fa9842c31b0193533c978b54c2c77adac3..4f9f336b0a872bd03846bde0a7044706ab1396b2 100644 (file)
@@ -59,6 +59,7 @@ void EcuM_Init( void )
        // TODO Mcu_ResetType type = Mcu_GetResetReason();\r
 \r
        // Set default shutdown target\r
+       // TODO: Skriva om till funktion(EcuM_SelectShutdownTarget), och testa om satt! //REQ:Ecum2181\r
        internal_data.shutdown_target = internal_data.config->EcuMDefaultShutdownTarget;\r
        internal_data.shutdown_mode = internal_data.config->EcuMDefaultShutdownMode;\r
 \r
@@ -97,7 +98,7 @@ void EcuM_StartupTwo(void)
        // Start timer to wait for NVM job to complete\r
        tickTimerStatus = GetCounterValue(Os_Arc_OsTickCounter , &tickTimerStart);\r
        if (tickTimerStatus != E_OK) {\r
-               // TODO: Generate error?\r
+               Det_ReportError(MODULE_ID_ECUM, 0, ECUM_ARC_STARTUPTWO_ID, ECUM_E_ARC_TIMERERROR);\r
        }\r
 #endif\r
 \r
@@ -114,7 +115,7 @@ void EcuM_StartupTwo(void)
                tickTimer = tickTimerStart;     // Save this because the GetElapsedCounterValue() will destroy it.\r
                tickTimerStatus =  GetElapsedCounterValue(Os_Arc_OsTickCounter, &tickTimer, &tickTimerElapsed);\r
                if (tickTimerStatus != E_OK) {\r
-                       // TODO: Generate error?\r
+                       Det_ReportError(MODULE_ID_ECUM, 0, ECUM_ARC_STARTUPTWO_ID, ECUM_E_ARC_TIMERERROR);\r
                }\r
        } while( (readAllResult == NVM_REQ_PENDING) && (tickTimerElapsed < internal_data.config->EcuMNvramReadAllTimeout) );\r
 \r
@@ -158,6 +159,7 @@ void EcuM_Shutdown(void)
 \r
 Std_ReturnType EcuM_GetState(EcuM_StateType* state)\r
 {\r
+       VALIDATE_RV(internal_data.initiated, ECUM_GETSTATE_ID, ECUM_E_NOT_INITIATED, E_NOT_OK);\r
        VALIDATE_RV(state != NULL, ECUM_GETSTATE_ID, ECUM_E_NULL_POINTER, E_NOT_OK);\r
 \r
        *state = internal_data.current_state;\r
@@ -222,6 +224,8 @@ Std_ReturnType EcuM_SelectShutdownTarget(EcuM_StateType target, uint8 mode)
 Std_ReturnType EcuM_GetShutdownTarget(EcuM_StateType *target, uint8 *mode)\r
 {\r
        VALIDATE_RV(internal_data.initiated, ECUM_GETSHUTDOWNTARGET_ID, ECUM_E_NOT_INITIATED, E_NOT_OK);\r
+       VALIDATE_RV(target != NULL, ECUM_GETSHUTDOWNTARGET_ID, ECUM_E_NULL_POINTER, E_NOT_OK);\r
+       VALIDATE_RV(mode != NULL, ECUM_GETSHUTDOWNTARGET_ID, ECUM_E_NULL_POINTER, E_NOT_OK);\r
 \r
        *target = internal_data.shutdown_target;\r
        *mode = internal_data.shutdown_mode;\r
@@ -271,6 +275,7 @@ Std_ReturnType EcuM_ComM_ReleaseRUN(NetworkHandleType user)
        return E_OK;\r
 }\r
 \r
+// TODO: Fix this function, should only return bool, but do also return Std_ReturnType.\r
 boolean EcuM_ComM_HasRequestedRUN(NetworkHandleType user)\r
 {\r
        VALIDATE_RV(internal_data.initiated, ECUM_COMM_HASREQUESTEDRUN_ID, ECUM_E_NOT_INITIATED, E_NOT_OK);\r
index cd5da1b4e185530de4d423b7155bb766b8f73f92..4a7ba9162e7721b3aa191c02ccc7a6bcbcbd7686 100644 (file)
@@ -149,8 +149,9 @@ VALIDATE_NO_RV(internal_data.initiated, ECUM_MAINFUNCTION_ID, ECUM_E_NOT_INITIAT
        if (internal_data.current_state == ECUM_STATE_GO_OFF_ONE)\r
        {\r
 #if defined(USE_NVM)\r
-               if (internal_data_go_off_one_state_timeout)\r
+               if (internal_data_go_off_one_state_timeout){\r
                        internal_data_go_off_one_state_timeout--;\r
+               }\r
 \r
                // Wait for the NVM job (NvmWriteAll) to terminate\r
                NvM_GetErrorStatus(0, &writeAllResult);\r