]> rtime.felk.cvut.cz Git - arc.git/blob - include/ComM.h
Added example of CAN communication for the TMS570LS31x HDK
[arc.git] / include / ComM.h
1 /* -------------------------------- Arctic Core ------------------------------\r
2  * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
3  *\r
4  * Copyright (C) 2009  ArcCore AB <contact@arccore.com>\r
5  *\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
9  *\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
13  * for more details.\r
14  * -------------------------------- Arctic Core ------------------------------*/\r
15 \r
16 \r
17 \r
18 \r
19 \r
20 #ifndef COMM_H\r
21 #define COMM_H\r
22 \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
28 \r
29 #define COMM_MODULE_ID                  MODULE_ID_COMM\r
30 #define COMM_VENDOR_ID                  1\r
31 \r
32 /** @req COMM469 */\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
36 \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
40 \r
41 /** @req COMM328  @req COMM456 */\r
42 #include "ComM_Cfg.h"\r
43 \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
47 \r
48 /** ComM not initialized */\r
49 /** @req COMM650 */\r
50 #define COMM_E_UNINIT                                   3\r
51 \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
55 \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
82 \r
83 \r
84 #define COMM_MAIN_FUNCTION_PROTOTYPE(channel) \\r
85 void ComM_MainFunction_##channel (void)\r
86 \r
87 #define COMM_MAIN_FUNCTION(channel)     \\r
88 void ComM_MainFunction_##channel (void) { \\r
89         ComM_MainFunction(COMM_NETWORK_HANDLE_##channel); \\r
90 }\r
91 \r
92 \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
95 \r
96 /** De-initializes (terminates) the AUTOSAR Communication Manager. */\r
97 void ComM_DeInit(void);  /**< @req COMM147 */\r
98 \r
99 /** @req COMM370 */\r
100 #if (COMM_VERSION_INFO_API == STD_ON)\r
101 #define ComM_GetVersionInfo(_vi) STD_GET_VERSION_INFO(_vi,COMM)\r
102 #endif\r
103 \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
107 \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
112 \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
119 \r
120 \r
121 #endif /*COMM_H*/\r