Re-organized sub-directory by category
[staging/basesystem.git] / service / vehicle / positioning / server / src / Sensor / VehicleSens_SelectionItemList.cpp
1 /*
2  * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /*******************************************************************************
18  *    File name        :VehicleSens_SelectionItemList.cpp
19  *    System name        :_CWORD107_
20  *    Subsystem name    :Vehicle sensor process
21  *    Program name    :Vehicle Sensor Selection Item List
22  *    Module configuration    :VehicleSensInitSelectionItemList()            Vehicle sensor selection item list initialization function
23  *                  :VehicleSensGetSelectionItemList()            Vehicle sensor selection item list acquisition method GET function
24  *                  :VehicleSensGetSelectionItemListCanId()        Vehicle Sensor Selection Items List CANID GET Functions
25  *                  :VehicleSensSetSelectionItemListCanId()        Vehicle Sensor Selection Items List CANID SET Functions
26  *                  :VehicleSensCommWatchTblInit()                Disruption monitoring data management table initialization function
27  *                  :VehicleSensCommWatchTblSave()                Disruption monitoring data management table storage function
28  *                  :VehicleSensCommWatchTblRun()                Disruption monitoring data management table execution function
29  ******************************************************************************/
30
31 #include <positioning_hal.h>
32 #include <vehicle_service/positioning_base_library.h>
33
34 #include "VehicleSens_SelectionItemList.h"
35
36 /*************************************************/
37 /*           Global variable                      */
38 /*************************************************/
39 static    VEHICLESENS_SELECTION_ITEM_LIST g_st_selection_itemlist[VEHICLESENS_SELECTION_ITEM_LIST_LEN];
40 static    VEHICLE_COMM_WATCH_TBL g_st_comm_watchtbl[VEHICLE_COMM_WATCHTBL_DID_NUM];
41
42 /*******************************************************************************
43 * MODULE    : VehicleSensInitSelectionItemList
44 * ABSTRACT  : Vehicle sensor selection item list initialization function
45 * FUNCTION  : Vehicle Sensor Selection Item List Initialization Process
46 * ARGUMENT  : void
47 * NOTE      :
48 * RETURN    : void
49 ******************************************************************************/
50 void VehicleSensInitSelectionItemList(void) {
51     u_int8    uc_get_method;
52
53     VehicleSensCommWatchTblInit();
54
55     /* Setting Acquisition Method (CAN/ Direct Line) for DataID in Vehicle Sensor Selection Item List.
56        BackDoor, Adim, Rev sets the CAN/ direct line obtained from the FROM
57     */
58     memset(&g_st_selection_itemlist, 0x00, sizeof(g_st_selection_itemlist));
59
60     g_st_selection_itemlist[0].ul_did         = VEHICLE_DID_HV;
61     g_st_selection_itemlist[0].ul_canid = VEHICLESENS_INVALID;
62     g_st_selection_itemlist[0].uc_get_method  = VEHICLESENS_GETMETHOD_CAN;
63     g_st_selection_itemlist[1].ul_did         = VEHICLE_DID_VB;
64     g_st_selection_itemlist[1].uc_get_method  = VEHICLESENS_GETMETHOD_LINE;
65     g_st_selection_itemlist[2].ul_did         = VEHICLE_DID_IG;
66     g_st_selection_itemlist[2].uc_get_method  = VEHICLESENS_GETMETHOD_LINE;
67     g_st_selection_itemlist[3].ul_did         = VEHICLE_DID_MIC;
68     g_st_selection_itemlist[3].uc_get_method  = VEHICLESENS_GETMETHOD_LINE;
69     g_st_selection_itemlist[4].ul_did         = VEHICLE_DID_ILL;
70     g_st_selection_itemlist[4].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
71     g_st_selection_itemlist[5].ul_did         = VEHICLE_DID_RHEOSTAT;
72     g_st_selection_itemlist[5].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
73     g_st_selection_itemlist[6].ul_did         = VEHICLE_DID_SYSTEMP;
74     g_st_selection_itemlist[6].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
75     g_st_selection_itemlist[7].ul_did         = POSHAL_DID_SPEED_PULSE;
76     g_st_selection_itemlist[7].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
77     g_st_selection_itemlist[8].ul_did         = POSHAL_DID_SPEED_KMPH;
78     g_st_selection_itemlist[8].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
79     g_st_selection_itemlist[9].ul_did         = POSHAL_DID_GYRO_X;
80     g_st_selection_itemlist[9].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
81     g_st_selection_itemlist[10].ul_did         = POSHAL_DID_GYRO_Y;
82     g_st_selection_itemlist[10].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
83     g_st_selection_itemlist[11].ul_did         = POSHAL_DID_GYRO_Z;
84     g_st_selection_itemlist[11].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
85     g_st_selection_itemlist[12].ul_did         = POSHAL_DID_GSNS_X;
86     g_st_selection_itemlist[12].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
87     g_st_selection_itemlist[13].ul_did         = POSHAL_DID_GSNS_Y;
88     g_st_selection_itemlist[13].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
89     g_st_selection_itemlist[14].ul_did         = POSHAL_DID_GSNS_Z;
90     g_st_selection_itemlist[14].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
91     g_st_selection_itemlist[15].ul_did         = VEHICLE_DID_REV;
92     g_st_selection_itemlist[15].ul_canid     = VEHICLESENS_INVALID;
93     uc_get_method = VEHICLESENS_GETMETHOD_LINE;
94     g_st_selection_itemlist[15].uc_get_method = uc_get_method;
95     g_st_selection_itemlist[16].ul_did         = POSHAL_DID_GPS_ANTENNA;
96     g_st_selection_itemlist[16].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
97     g_st_selection_itemlist[17].ul_did         = POSHAL_DID_SNS_COUNTER;
98     g_st_selection_itemlist[17].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
99     g_st_selection_itemlist[18].ul_did         = VEHICLE_DID_GPS_COUNTER;
100     g_st_selection_itemlist[18].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
101     g_st_selection_itemlist[19].ul_did         = POSHAL_DID_GPS_VERSION;
102     g_st_selection_itemlist[19].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
103     g_st_selection_itemlist[20].ul_did         = VEHICLE_DID_LOCATION;
104     g_st_selection_itemlist[20].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
105     g_st_selection_itemlist[21].ul_did         = VEHICLE_DID_REV_LINE;
106     g_st_selection_itemlist[21].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
107     g_st_selection_itemlist[22].ul_did         = VEHICLE_DID_REV_CAN;
108     g_st_selection_itemlist[22].ul_canid     = VEHICLESENS_INVALID;
109     g_st_selection_itemlist[22].uc_get_method = VEHICLESENS_GETMETHOD_CAN;
110     /* ++ GPS _CWORD82_ support */
111     g_st_selection_itemlist[23].ul_did         = POSHAL_DID_GPS__CWORD82___CWORD44_GP4;
112     g_st_selection_itemlist[23].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
113     g_st_selection_itemlist[24].ul_did         = VEHICLE_DID_GPS__CWORD82__NMEA;
114     g_st_selection_itemlist[24].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
115     g_st_selection_itemlist[25].ul_did         = POSHAL_DID_GPS__CWORD82__FULLBINARY;
116     g_st_selection_itemlist[25].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
117     /* -- GPS _CWORD82_ support */
118 #if CONFIG_SENSOR_EXT_VALID                /* Initial Sensor Response */
119     g_st_selection_itemlist[26].ul_did         = POSHAL_DID_GYRO_EXT;
120     g_st_selection_itemlist[26].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
121     g_st_selection_itemlist[27].ul_did         = POSHAL_DID_SPEED_PULSE_FST;
122     g_st_selection_itemlist[27].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
123     g_st_selection_itemlist[28].ul_did         = POSHAL_DID_GYRO_X_FST;
124     g_st_selection_itemlist[28].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
125     g_st_selection_itemlist[29].ul_did         = POSHAL_DID_GYRO_Y_FST;
126     g_st_selection_itemlist[29].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
127     g_st_selection_itemlist[30].ul_did         = POSHAL_DID_GYRO_Z_FST;
128     g_st_selection_itemlist[30].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
129     g_st_selection_itemlist[31].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_POSLLH;
130     g_st_selection_itemlist[31].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
131     g_st_selection_itemlist[32].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_STATUS;
132     g_st_selection_itemlist[32].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
133     g_st_selection_itemlist[33].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC;
134     g_st_selection_itemlist[33].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
135     g_st_selection_itemlist[34].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_VELNED;
136     g_st_selection_itemlist[34].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
137     g_st_selection_itemlist[35].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_DOP;
138     g_st_selection_itemlist[35].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
139     g_st_selection_itemlist[36].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS;
140     g_st_selection_itemlist[36].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
141     g_st_selection_itemlist[37].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_SVINFO;
142     g_st_selection_itemlist[37].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
143     g_st_selection_itemlist[38].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_CLOCK;
144     g_st_selection_itemlist[38].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
145     g_st_selection_itemlist[39].ul_did         = VEHICLE_DID_GPS_UBLOX_MON_HW;
146     g_st_selection_itemlist[39].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
147     g_st_selection_itemlist[40].ul_did         = POSHAL_DID_SPEED_PULSE_FLAG;
148     g_st_selection_itemlist[40].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
149     g_st_selection_itemlist[41].ul_did         = VEHICLE_DID_GYRO_TROUBLE;
150     g_st_selection_itemlist[41].ul_canid     = VEHICLESENS_INVALID;
151     g_st_selection_itemlist[41].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
152     g_st_selection_itemlist[42].ul_did         = VEHICLE_DID_SYS_GPS_INTERRUPT_SIGNAL;
153     g_st_selection_itemlist[42].ul_canid     = VEHICLESENS_INVALID;
154     g_st_selection_itemlist[42].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
155     g_st_selection_itemlist[43].ul_did         = VEHICLE_DID_MAIN_GPS_INTERRUPT_SIGNAL;
156     g_st_selection_itemlist[43].ul_canid     = VEHICLESENS_INVALID;
157     g_st_selection_itemlist[43].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
158     g_st_selection_itemlist[44].ul_did         = VEHICLE_DID_GYRO_CONNECT_STATUS;
159     g_st_selection_itemlist[44].ul_canid     = VEHICLESENS_INVALID;
160     g_st_selection_itemlist[44].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
161     g_st_selection_itemlist[45].ul_did         = POSHAL_DID_SPEED_PULSE_FLAG_FST;
162     g_st_selection_itemlist[45].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
163     g_st_selection_itemlist[46].ul_did         = POSHAL_DID_REV_FST;
164     g_st_selection_itemlist[46].ul_canid     = VEHICLESENS_INVALID;
165     uc_get_method = VEHICLESENS_GETMETHOD_LINE;
166     g_st_selection_itemlist[46].uc_get_method = uc_get_method;
167     g_st_selection_itemlist[47].ul_did         = POSHAL_DID_GPS_NMEA;
168     g_st_selection_itemlist[47].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
169     g_st_selection_itemlist[48].ul_did        = POSHAL_DID_GPS_TIME;
170     g_st_selection_itemlist[48].ul_canid    = VEHICLESENS_INVALID;
171     g_st_selection_itemlist[48].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
172     g_st_selection_itemlist[49].ul_did        = VEHICLE_DID_NAVIINFO_DIAG_GPS;
173     g_st_selection_itemlist[49].ul_canid    = VEHICLESENS_INVALID;
174     g_st_selection_itemlist[49].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
175     g_st_selection_itemlist[50].ul_did        = POSHAL_DID_GYRO_TEMP;
176     g_st_selection_itemlist[50].ul_canid    = VEHICLESENS_INVALID;
177     g_st_selection_itemlist[50].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
178     g_st_selection_itemlist[51].ul_did        = POSHAL_DID_GYRO_TEMP_FST;
179     g_st_selection_itemlist[51].ul_canid    = VEHICLESENS_INVALID;
180     g_st_selection_itemlist[51].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
181     g_st_selection_itemlist[52].ul_did        = POSHAL_DID_GSNS_X_FST;
182     g_st_selection_itemlist[52].ul_canid    = VEHICLESENS_INVALID;
183     g_st_selection_itemlist[52].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
184     g_st_selection_itemlist[53].ul_did        = POSHAL_DID_GSNS_Y_FST;
185     g_st_selection_itemlist[53].ul_canid    = VEHICLESENS_INVALID;
186     g_st_selection_itemlist[53].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
187     g_st_selection_itemlist[54].ul_did        = POSHAL_DID_GSNS_Z_FST;
188     g_st_selection_itemlist[54].ul_canid    = VEHICLESENS_INVALID;
189     g_st_selection_itemlist[54].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
190     g_st_selection_itemlist[55].ul_did        = VEHICLE_DID_LOCATION_LONLAT;
191     g_st_selection_itemlist[55].ul_canid    = VEHICLESENS_INVALID;
192     g_st_selection_itemlist[55].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
193     g_st_selection_itemlist[56].ul_did        = VEHICLE_DID_LOCATION_ALTITUDE;
194     g_st_selection_itemlist[56].ul_canid    = VEHICLESENS_INVALID;
195     g_st_selection_itemlist[56].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
196     g_st_selection_itemlist[57].ul_did        = VEHICLE_DID_MOTION_HEADING;
197     g_st_selection_itemlist[57].ul_canid    = VEHICLESENS_INVALID;
198     g_st_selection_itemlist[57].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
199     g_st_selection_itemlist[58].ul_did        = VEHICLE_DID_LOCATION_LONLAT_NAVI;
200     g_st_selection_itemlist[58].ul_canid    = VEHICLESENS_INVALID;
201     g_st_selection_itemlist[58].uc_get_method = VEHICLESENS_GETMETHOD_NAVI;
202     g_st_selection_itemlist[59].ul_did        = VEHICLE_DID_LOCATION_ALTITUDE_NAVI;
203     g_st_selection_itemlist[59].ul_canid    = VEHICLESENS_INVALID;
204     g_st_selection_itemlist[59].uc_get_method = VEHICLESENS_GETMETHOD_NAVI;
205     g_st_selection_itemlist[60].ul_did        = VEHICLE_DID_MOTION_HEADING_NAVI;
206     g_st_selection_itemlist[60].ul_canid    = VEHICLESENS_INVALID;
207     g_st_selection_itemlist[60].uc_get_method = VEHICLESENS_GETMETHOD_NAVI;
208     g_st_selection_itemlist[61].ul_did        = VEHICLE_DID_SETTINGTIME;
209     g_st_selection_itemlist[61].ul_canid    = VEHICLESENS_INVALID;
210     g_st_selection_itemlist[61].uc_get_method = VEHICLESENS_GETMETHOD_OTHER;
211     g_st_selection_itemlist[62].ul_did        = VEHICLE_DID_MOTION_SPEED;
212     g_st_selection_itemlist[62].ul_canid    = VEHICLESENS_INVALID;
213     g_st_selection_itemlist[62].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
214     g_st_selection_itemlist[63].ul_did        = VEHICLE_DID_MOTION_SPEED_NAVI;
215     g_st_selection_itemlist[63].ul_canid    = VEHICLESENS_INVALID;
216     g_st_selection_itemlist[63].uc_get_method = VEHICLESENS_GETMETHOD_NAVI;
217     g_st_selection_itemlist[64].ul_did        = VEHICLE_DID_MOTION_SPEED_INTERNAL;
218     g_st_selection_itemlist[64].ul_canid    = VEHICLESENS_INVALID;
219     g_st_selection_itemlist[64].uc_get_method = VEHICLESENS_GETMETHOD_INTERNAL;
220     g_st_selection_itemlist[65].ul_did        = POSHAL_DID_PULSE_TIME;
221     g_st_selection_itemlist[65].ul_canid    = VEHICLESENS_INVALID;
222     g_st_selection_itemlist[65].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
223     g_st_selection_itemlist[66].ul_did        = POSHAL_DID_GPS_TIME_RAW;
224     g_st_selection_itemlist[66].ul_canid    = VEHICLESENS_INVALID;
225     g_st_selection_itemlist[66].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
226     g_st_selection_itemlist[67].ul_did        = POSHAL_DID_GPS_WKNROLLOVER;
227     g_st_selection_itemlist[67].ul_canid    = VEHICLESENS_INVALID;
228     g_st_selection_itemlist[67].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
229     g_st_selection_itemlist[68].ul_did        = POSHAL_DID_GPS_CLOCK_DRIFT;
230     g_st_selection_itemlist[68].ul_canid    = VEHICLESENS_INVALID;
231     g_st_selection_itemlist[68].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
232     g_st_selection_itemlist[69].ul_did        = POSHAL_DID_GPS_CLOCK_FREQ;
233     g_st_selection_itemlist[69].ul_canid    = VEHICLESENS_INVALID;
234     g_st_selection_itemlist[69].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
235 #else
236     g_st_selection_itemlist[26].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_POSLLH;
237     g_st_selection_itemlist[26].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
238     g_st_selection_itemlist[27].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_STATUS;
239     g_st_selection_itemlist[27].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
240     g_st_selection_itemlist[28].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC;
241     g_st_selection_itemlist[28].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
242     g_st_selection_itemlist[29].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_VELNED;
243     g_st_selection_itemlist[29].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
244     g_st_selection_itemlist[30].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_DOP;
245     g_st_selection_itemlist[30].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
246     g_st_selection_itemlist[31].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS;
247     g_st_selection_itemlist[31].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
248     g_st_selection_itemlist[32].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_SVINFO;
249     g_st_selection_itemlist[32].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
250     g_st_selection_itemlist[33].ul_did         = VEHICLE_DID_GPS_UBLOX_NAV_CLOCK;
251     g_st_selection_itemlist[33].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
252     g_st_selection_itemlist[34].ul_did         = VEHICLE_DID_GPS_UBLOX_MON_HW;
253     g_st_selection_itemlist[34].uc_get_method = VEHICLESENS_GETMETHOD_GPS;
254     g_st_selection_itemlist[35].ul_did         = POSHAL_DID_SPEED_PULSE_FLAG;
255     g_st_selection_itemlist[35].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
256     g_st_selection_itemlist[36].ul_did         = VEHICLE_DID_GYRO_TROUBLE;
257     g_st_selection_itemlist[36].ul_canid     = VEHICLESENS_INVALID;
258     g_st_selection_itemlist[36].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
259     g_st_selection_itemlist[37].ul_did         = VEHICLE_DID__CWORD56__GPS_INTERRUPT_SIGNAL;
260     g_st_selection_itemlist[37].ul_canid     = VEHICLESENS_INVALID;
261     g_st_selection_itemlist[37].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
262     g_st_selection_itemlist[38].ul_did         = VEHICLE_DID__CWORD102__GPS_INTERRUPT_SIGNAL;
263     g_st_selection_itemlist[38].ul_canid     = VEHICLESENS_INVALID;
264     g_st_selection_itemlist[38].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
265     g_st_selection_itemlist[39].ul_did         = VEHICLE_DID_GYRO_CONNECT_STATUS;
266     g_st_selection_itemlist[39].ul_canid     = VEHICLESENS_INVALID;
267     g_st_selection_itemlist[39].uc_get_method = VEHICLESENS_GETMETHOD_LINE;
268 #endif
269 }
270
271 /*******************************************************************************
272 * MODULE    : VehicleSensGetSelectionItemList
273 * ABSTRACT  : Vehicle sensor_data acquisition method GET function
274 * FUNCTION  : Provide data acquisition methods
275 * ARGUMENT  : ul_did    Data ID
276 * NOTE      :
277 * RETURN    : VEHICLESENS_GETMETHOD_CAN            :CAN line
278 *             VEHICLESENS_GETMETHOD_LINE            :Direct Line
279 *             VEHICLESENS_GETMETHOD_NO_DETECTION    :Not downloaded
280 *             VEHICLESENS_GETMETHOD_GPS            :GPS
281 *             VEHICLESENS_GETMETHOD_NAVI            :Navi
282 *             VEHICLESENS_GETMETHOD_CLOCK            :Clock
283 *             VEHICLESENS_GETMETHOD_OTHER       :Others
284 ******************************************************************************/
285 u_int8  VehicleSensGetSelectionItemList(DID ul_did) {
286     int32 i;
287     u_int8 uc_get_method = VEHICLESENS_GETMETHOD_NO_DETECTION;
288     /* Ignore->MISRA-C++:2008 Rule 2-13-3 */    /* Ignore->MISRA-C++:2008 Rule 5-0-13, 5-0-14, 5-3-1 */
289     if ( (ul_did & VEHICLESENS_BIT31_29) != 0 ) {
290         /* For other than CAN frame data */
291         for (i = 0; i < VEHICLESENS_SELECTION_ITEM_LIST_LEN; i++) {
292             if (g_st_selection_itemlist[i].ul_did == ul_did) {
293                 uc_get_method = g_st_selection_itemlist[i].uc_get_method;
294                 break;
295             }
296         }
297     } else {
298         /* CAN frame data */
299         uc_get_method = VEHICLESENS_GETMETHOD_CAN;
300     }
301     return uc_get_method;
302 }
303
304 /*******************************************************************************
305 * MODULE    : VehicleSensGetSelectionItemListCanId
306 * ABSTRACT  : Vehicle Sensor Selection Item List_CANID GET Function
307 * FUNCTION  : Provide CANID
308 * ARGUMENT  :
309 * NOTE      :
310 * RETURN    : ul_canid    CANID
311 ******************************************************************************/
312 u_int32  VehicleSensGetSelectionItemListCanId(DID ul_did) {  // LCOV_EXCL_START 8 : dead code
313     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
314     int32 i;
315     u_int32 ul_canid = VEHICLESENS_INVALID;
316
317     for (i = 0; i < VEHICLESENS_SELECTION_ITEM_LIST_LEN; i++) {
318         if (g_st_selection_itemlist[i].ul_did == ul_did) {
319             if (VEHICLESENS_GETMETHOD_CAN == g_st_selection_itemlist[i].uc_get_method) {
320                 /* When the data source type is CAN communication */
321                 ul_canid = g_st_selection_itemlist[i].ul_canid;
322             }
323             break;
324         }
325     }
326     return ul_canid;
327 }
328 // LCOV_EXCL_STOP
329
330 /*******************************************************************************
331 * MODULE    : VehicleSensSetSelectionItemListCanId
332 * ABSTRACT  : Vehicle Sensor Selection Item List_CANID SET Function
333 * FUNCTION  : Sets when the CANID associated with the specified DID is unconfirmed.
334 * ARGUMENT  : ul_canid    u-int32(CANID)
335 * NOTE      :
336 * RETURN    : TRUE        :Successful registration(Including when the CANID is fixed)
337 *           : FALSE    :Registration failure
338 ******************************************************************************/
339 BOOL VehicleSensSetSelectionItemListCanId(DID ul_did, u_int32 ul_canid) {  // LCOV_EXCL_START 8 : dead code
340     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
341     BOOL    b_ret     = TRUE;
342     u_int8    uc_cnt    = 0;
343     int32    uc_last_cnt = 0;
344
345     u_int8    uc_effective_flg = VEHICLESENS_EFFECTIVE;
346
347     for (uc_cnt = 0; uc_cnt < VEHICLE_COMM_WATCHTBL_DID_NUM; uc_cnt++) {
348         if (g_st_comm_watchtbl[uc_cnt].ul_did == ul_did) {
349             /* Obtain CANID determination flg */
350             uc_effective_flg = g_st_comm_watchtbl[uc_cnt].uc_effective_flg;
351             break;
352         }
353     }
354
355     if (uc_cnt >= VEHICLE_COMM_WATCHTBL_DID_NUM) {
356         return FALSE;
357     }
358
359     if (VEHICLESENS_EFFECTIVE != uc_effective_flg) {
360         /* When the CANID is undetermined */
361         b_ret = FALSE;
362         for (uc_last_cnt = 0; uc_last_cnt < VEHICLESENS_SELECTION_ITEM_LIST_LEN; uc_last_cnt++) {
363             if (g_st_selection_itemlist[uc_last_cnt].ul_did == ul_did) {
364                 /* Updating the CANID of the Vehicle Sensor Selection Items List */
365                 g_st_selection_itemlist[uc_last_cnt].ul_canid = ul_canid;
366                 /* To fix the CANID */
367                 g_st_comm_watchtbl[uc_cnt].uc_effective_flg = VEHICLESENS_EFFECTIVE;
368
369                 /* During CANID indoubt,When Vehicle API ""Vehicle Sensor Information Disruption Monitoring"" is called     */
370                 /* Register for disruption monitoring of pending CAN threads                                */
371                 if (0x00 < g_st_comm_watchtbl[uc_cnt].uc_vehicle_comm_watch_cnt) {
372                     VehicleSensCommWatchTblRun(ul_did);
373                 }
374                 b_ret = TRUE;
375                 break;
376             }
377         }
378     }
379     return b_ret;
380 }
381 // LCOV_EXCL_STOP
382
383 /*******************************************************************************
384 * MODULE    : VehicleSensCommWatchTblInit
385 * ABSTRACT  : Disruption monitoring data management table initialization function
386 * FUNCTION  : Disruption monitoring data management table initialization processing
387 * ARGUMENT  : void
388 * NOTE      :
389 * RETURN    : void
390 ******************************************************************************/
391 void VehicleSensCommWatchTblInit(void) {
392     memset(&g_st_comm_watchtbl, 0x00, sizeof(g_st_comm_watchtbl));
393
394     /* DID initialization */
395     g_st_comm_watchtbl[0].ul_did    = VEHICLE_DID_REV;
396     g_st_comm_watchtbl[1].ul_did    = VEHICLE_DID_REV_CAN;
397 }
398
399 /*******************************************************************************
400 * MODULE    : VehicleSensCommWatchTblSave
401 * ABSTRACT  : Disruption monitoring data management table storage function
402 * FUNCTION  : When the target CANID is undetermined, save the discontinuation monitoring data...
403 * ARGUMENT  :
404 * NOTE      :
405 * RETURN    : TRUE        : To fix the CANID
406 *           : FALSE    : CANID undetermined
407 ******************************************************************************/
408 BOOL VehicleSensCommWatchTblSave(const VEHICLE_MSG_WATCH_STOPPAGE *pst_msg) {  // LCOV_EXCL_START 8 : dead code
409     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
410     BOOL    b_ret             = TRUE;                            /* Function return value                        */
411     u_int8    uc_cnt            = 0;                            /* Generic counters                        */
412     u_int8    uc_last_cnt        = 0;                            /* Vehicle Sensor Information Disruption Monitoring Request Count    */
413     u_int8    uc_get_method     = VEHICLESENS_GETMETHOD_CAN;    /* Acquisition method                         */
414     u_int8    uc_effective_flg    = VEHICLESENS_EFFECTIVE;        /* CANID determination flg                        */
415
416
417     uc_get_method = VehicleSensGetSelectionItemList(pst_msg->st_data.ul_did);
418
419     /* If the retrieval method is CAN: Check if the CANID is fixed */
420     if (VEHICLESENS_GETMETHOD_CAN == uc_get_method) {
421         for ( uc_cnt = 0; uc_cnt < VEHICLE_COMM_WATCHTBL_DID_NUM; uc_cnt++ ) {
422             if ( g_st_comm_watchtbl[uc_cnt].ul_did == pst_msg->st_data.ul_did ) {
423                 /* Obtain CANID determination flg */
424                 uc_effective_flg = g_st_comm_watchtbl[uc_cnt].uc_effective_flg;
425                 break;
426             }
427         }
428     }
429
430     if ( VEHICLESENS_EFFECTIVE != uc_effective_flg ) {
431         /* Due to being asked for disruption monitoring of CANID indoubt data,Keep parameters required for disruption monitoring    */
432         /* Returns success to the API user,No Disruption Monitoring Registration at this time                        */
433         /* Ask the CAN thread to monitor for disruption when the CANID is fixed. */
434
435         uc_last_cnt = g_st_comm_watchtbl[uc_cnt].uc_vehicle_comm_watch_cnt;
436         if ( VEHICLE_COMM_WATCHTBL_DAT_NUM > uc_last_cnt ) {
437             /* Destination PNO,Keep Disrupted Monitoring Time */
438             g_st_comm_watchtbl[uc_cnt].st_comm_watch_dat[uc_last_cnt].us_pno        = pst_msg->st_data.us_pno;
439             g_st_comm_watchtbl[uc_cnt].st_comm_watch_dat[uc_last_cnt].us_watch_time    = pst_msg->st_data.us_watch_time;
440
441             /* Vehicle sensor information disruption monitoring request count is incremented. */
442             uc_last_cnt++;
443             g_st_comm_watchtbl[uc_cnt].uc_vehicle_comm_watch_cnt = uc_last_cnt;
444         }
445         b_ret = FALSE;
446     }
447     return b_ret;
448 }
449 // LCOV_EXCL_STOP
450
451 /*******************************************************************************
452 * MODULE    : VehicleSensCommWatchTblRun
453 * ABSTRACT  : Disruption monitoring data management table execution function
454 * FUNCTION  : Execute requested disruption monitoring when CANID is unconfirmed
455 * ARGUMENT  : ul_did    DID
456 * NOTE      :
457 * RETURN    : TRUE        : Normal completion
458 *           : FALSE    : ABENDs
459 ******************************************************************************/
460 BOOL VehicleSensCommWatchTblRun(DID ul_did) {  // LCOV_EXCL_START 8 : dead code
461     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
462     BOOL        b_ret        = TRUE;
463
464     return b_ret;
465 }
466 // LCOV_EXCL_STOP