1 /* -------------------------------- Arctic Core ------------------------------
\r
2 * Arctic Core - the open source AUTOSAR platform http://arccore.com
\r
4 * Copyright (C) 2009 ArcCore AB <contact@arccore.com>
\r
6 * This source code is free software; you can redistribute it and/or modify it
\r
7 * under the terms of the GNU General Public License version 2 as published by the
\r
8 * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
\r
10 * This program is distributed in the hope that it will be useful, but
\r
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
\r
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
\r
14 * -------------------------------- Arctic Core ------------------------------*/
\r
23 /** @req COMM466 @req COMM518 @req COMM692 */
\r
24 #include "ComStack_Types.h"
\r
25 #include "ComM_Types.h"
\r
26 #include "ComM_ConfigTypes.h"
\r
27 #include "Modules.h"
\r
29 #define COMM_MODULE_ID MODULE_ID_COMM
\r
30 #define COMM_VENDOR_ID 1
\r
33 #define COMM_AR_MAJOR_VERSION 2
\r
34 #define COMM_AR_MINOR_VERSION 0
\r
35 #define COMM_AR_PATCH_VERSION 1
\r
37 #define COMM_SW_MAJOR_VERSION 1
\r
38 #define COMM_SW_MINOR_VERSION 0
\r
39 #define COMM_SW_PATCH_VERSION 0
\r
41 /** @req COMM328 @req COMM456 */
\r
42 #include "ComM_Cfg.h"
\r
44 /** Function call has been successfully but mode can not
\r
45 * be granted because of mode inhibition. */
\r
46 #define COMM_E_MODE_LIMITATION 2
\r
48 /** ComM not initialized */
\r
50 #define COMM_E_UNINIT 3
\r
52 #define COMM_E_NOT_INITED 0x1 /**< API service used without module initialization */
\r
53 #define COMM_E_WRONG_PARAMETERS 0x2 /**< API service used with wrong parameters (e.g. a NULL pointer) */
\r
54 #define COMM_E_ERROR_IN_PROV_SERVICE 0x3 /**< Provided API services of other modules returned with an error. */
\r
56 #define COMM_SERVICEID_INIT 0x01
\r
57 #define COMM_SERVICEID_DEINIT 0x02
\r
58 #define COMM_SERVICEID_GETSTATUS 0x03
\r
59 #define COMM_SERVICEID_GETINHIBITIONSTATUS 0x04
\r
60 #define COMM_SERVICEID_REQUESTCOMMODE 0x05
\r
61 #define COMM_SERVICEID_GETMAXCOMMODE 0x06
\r
62 #define COMM_SERVICEID_GETREQUESTEDCOMMODE 0x07
\r
63 #define COMM_SERVICEID_GETCURRENTCOMMODE 0x08
\r
64 #define COMM_SERVICEID_PREVENTWAKEUP 0x09
\r
65 #define COMM_SERVICEID_LIMITCHANNELTONOCOMMODE 0x0b
\r
66 #define COMM_SERVICEID_LIMITECUTONOCOMMODE 0x0c
\r
67 #define COMM_SERVICEID_READINHIBITCOUNTER 0x0d
\r
68 #define COMM_SERVICEID_RESETINHIBITCOUNTER 0x0e
\r
69 #define COMM_SERVICEID_SETECUGROUPCLASSIFICATION 0x0f
\r
70 #define COMM_SERVICEID_GETVERSIONINFO 0x10
\r
71 #define COMM_SERVICEID_NM_NETWORKSTARTINDICATION 0x15
\r
72 #define COMM_SERVICEID_NM_NETWORKMODE 0x18
\r
73 #define COMM_SERVICEID_NM_PREPAREBUSSLEEPMODE 0x19
\r
74 #define COMM_SERVICEID_NM_BUSSLEEPMODE 0x1a
\r
75 #define COMM_SERVICEID_NM_RESTARTINDICATION 0x1b
\r
76 #define COMM_SERVICEID_DCM_ACTIVEDIAGNOSTIC 0x1f
\r
77 #define COMM_SERVICEID_DCM_INACTIVEDIAGNOSTIC 0x20
\r
78 #define COMM_SERVICEID_ECUM_RUNMODEINDICATION 0x29
\r
79 #define COMM_SERVICEID_ECUM_WAKEUPINDICATION 0x2a
\r
80 #define COMM_SERVICEID_BUSSM_MODEINDICATION 0x33
\r
81 #define COMM_SERVICEID_MAINFUNCTION 0x60
\r
84 #define COMM_MAIN_FUNCTION_PROTOTYPE(channel) \
\r
85 void ComM_MainFunction_##channel (void)
\r
87 #define COMM_MAIN_FUNCTION(channel) \
\r
88 void ComM_MainFunction_##channel (void) { \
\r
89 ComM_MainFunction(COMM_NETWORK_HANDLE_##channel); \
\r
93 /** Initializes the AUTOSAR Communication Manager and restarts the internal state machines.*/
\r
94 void ComM_Init(const ComM_ConfigType* Config); /**< @req COMM146 */
\r
96 /** De-initializes (terminates) the AUTOSAR Communication Manager. */
\r
97 void ComM_DeInit(void); /**< @req COMM147 */
\r
100 #if (COMM_VERSION_INFO_API == STD_ON)
\r
101 #define ComM_GetVersionInfo(_vi) STD_GET_VERSION_INFO(_vi,COMM)
\r
104 /** Returns the initialization status of the AUTOSAR Communication Manager. */
\r
105 Std_ReturnType ComM_GetStatus( ComM_InitStatusType* Status ); /**< @req COMM242 */
\r
106 Std_ReturnType ComM_GetInhibitionStatus( NetworkHandleType Channel, ComM_InhibitionStatusType* Status ); /**< @req COMM619 */
\r
108 Std_ReturnType ComM_RequestComMode( ComM_UserHandleType User, ComM_ModeType ComMode ); /**< @req COMM110 */
\r
109 Std_ReturnType ComM_GetMaxComMode( ComM_UserHandleType User, ComM_ModeType* ComMode );
\r
110 Std_ReturnType ComM_GetRequestedComMode( ComM_UserHandleType User, ComM_ModeType* ComMode ); /**< @req COMM79 */
\r
111 Std_ReturnType ComM_GetCurrentComMode( ComM_UserHandleType User, ComM_ModeType* ComMode ); /**< @req COMM83 */
\r
113 Std_ReturnType ComM_PreventWakeUp( NetworkHandleType Channel, boolean Status ); /**< @req COMM156 */
\r
114 Std_ReturnType ComM_LimitChannelToNoComMode( NetworkHandleType Channel, boolean Status ); /**< @req COMM163 */
\r
115 Std_ReturnType ComM_LimitECUToNoComMode( boolean Status ); /**< @req COMM124 */
\r
116 Std_ReturnType ComM_ReadInhibitCounter( uint16* CounterValue ); /**< @req COMM224 */
\r
117 Std_ReturnType ComM_ResetInhibitCounter(void); /**< @req COMM108 */
\r
118 Std_ReturnType ComM_SetECUGroupClassification( ComM_InhibitionStatusType Status );
\r