2 * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
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 ******************************************************************************/
31 #include <positioning_hal.h>
32 #include <vehicle_service/positioning_base_library.h>
34 #include "VehicleSens_SelectionItemList.h"
36 /*************************************************/
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];
42 /*******************************************************************************
43 * MODULE : VehicleSensInitSelectionItemList
44 * ABSTRACT : Vehicle sensor selection item list initialization function
45 * FUNCTION : Vehicle Sensor Selection Item List Initialization Process
49 ******************************************************************************/
50 void VehicleSensInitSelectionItemList(void) {
53 VehicleSensCommWatchTblInit();
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
58 memset(&g_st_selection_itemlist, 0x00, sizeof(g_st_selection_itemlist));
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;
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;
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
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) {
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;
299 uc_get_method = VEHICLESENS_GETMETHOD_CAN;
301 return uc_get_method;
304 /*******************************************************************************
305 * MODULE : VehicleSensGetSelectionItemListCanId
306 * ABSTRACT : Vehicle Sensor Selection Item List_CANID GET Function
307 * FUNCTION : Provide CANID
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
315 u_int32 ul_canid = VEHICLESENS_INVALID;
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;
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)
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
343 int32 uc_last_cnt = 0;
345 u_int8 uc_effective_flg = VEHICLESENS_EFFECTIVE;
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;
355 if (uc_cnt >= VEHICLE_COMM_WATCHTBL_DID_NUM) {
359 if (VEHICLESENS_EFFECTIVE != uc_effective_flg) {
360 /* When the CANID is undetermined */
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;
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);
383 /*******************************************************************************
384 * MODULE : VehicleSensCommWatchTblInit
385 * ABSTRACT : Disruption monitoring data management table initialization function
386 * FUNCTION : Disruption monitoring data management table initialization processing
390 ******************************************************************************/
391 void VehicleSensCommWatchTblInit(void) {
392 memset(&g_st_comm_watchtbl, 0x00, sizeof(g_st_comm_watchtbl));
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;
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...
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 */
417 uc_get_method = VehicleSensGetSelectionItemList(pst_msg->st_data.ul_did);
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;
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. */
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;
441 /* Vehicle sensor information disruption monitoring request count is incremented. */
443 g_st_comm_watchtbl[uc_cnt].uc_vehicle_comm_watch_cnt = uc_last_cnt;
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
457 * RETURN : TRUE : Normal completion
459 ******************************************************************************/
460 BOOL VehicleSensCommWatchTblRun(DID ul_did) { // LCOV_EXCL_START 8 : dead code
461 AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert