Init basesystem source codes.
[staging/basesystem.git] / vehicleservice / positioning / server / src / Sensor / VehicleSens_DataMasterMain.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_DataMasterMain.cpp
19  *  System name    :_CWORD107_
20  *  Subsystem name  :Vehicle sensor process
21  *  Program name  :Vehicle sensor data master
22  *  Module configuration  :VehicleSensInitDataMaster()      Vehicle data master initialization function
23  *          :VehicleSensSetDataMasterCan()     Vehicle sensor data master CAN data set processing
24  *          :VehicleSensSetDataMasterLineSens()  Vehicle sensor data master LineSensor data set process
25  *          :VehicleSensSetDataMasterGps()    Vehicle Sensor Data Master GPS Data Set Processing
26  *          :VehicleSensGetDataMaster()      Vehicle Sensor Data Master Get Processing
27  *          :VehicleSensGetGpsDataMaster()    Vehicle Sensor Data Master GPS Data Get Processing
28  *                  :VehicleSensGetGps_CWORD82_NmeaSensorCnt()  Vehicle sensor GPS_sensor counter GET function
29  *                  :VehicleSensSetDataMaster_CWORD82_()    Vehicle sensor data master GPS data (_CWORD82_) set processing
30  ******************************************************************************/
31
32 #include <vehicle_service/positioning_base_library.h>
33 #include "VehicleSens_DataMaster.h"
34 #include "gps_hal.h"
35 #include "POS_private.h"
36 #include "DeadReckoning_main.h"
37 #include "VehicleSens_DeliveryCtrl.h"
38 #include "Vehicle_API.h"
39 #include "CommonDefine.h"
40 #include <vehicle_service/POS_common_API.h>
41 #include "SensorMotion_API.h"
42 #include "SensorLog.h"
43 #include "ClockIf.h"
44 #include "DiagSrvIf.h"
45
46 /*************************************************/
47 /*           Global variable                      */
48 /*************************************************/
49 #if CONFIG_SENSOR_EXT_VALID        /* Initial Sensor Support */
50 VEHICLESENS_PKG_DELIVERY_TEMP_EXT  gstPkgTempExt;  // NOLINT(readability/nolint)
51 #endif
52
53 #define DR_DEBUG 0
54 #define GPS_DEBUG 0
55
56 /*************************************************/
57 /*           Function prototype                    */
58 /*************************************************/
59 static uint8_t VehicleSensGetSensorCnt(void);
60
61
62 /*******************************************************************************
63 * MODULE    : VehicleSensInitDataMaster
64 * ABSTRACT  : Vehicle sensor data master initialization
65 * FUNCTION  : Initializing Vehicle Sensor Data Master
66 * ARGUMENT  : void
67 * NOTE      :
68 * RETURN    : void
69 ******************************************************************************/
70 void  VehicleSensInitDataMaster(void) {
71     /* Vehicle sensor data master initialization */
72
73     VehicleSensInitSpeedPulsel();
74     VehicleSensInitSpeedKmphl();
75     VehicleSensInitGyroXl();
76     VehicleSensInitGyroYl();
77     VehicleSensInitGyroZl();
78     VehicleSensInitGsnsXl();
79     VehicleSensInitGsnsYl();
80     VehicleSensInitGsnsZl();
81     VehicleSensInitRevl();
82     VehicleSensInitGpsAntennal();
83     VehicleSensInitSnsCounterl();
84     VehicleSensInitGpsCounterg();
85 #if CONFIG_SENSOR_EXT_VALID        /* Initial Sensor Support */
86     VehicleSensInitGyroRevl();
87     VehicleSensInitSnsCounterExtl();
88     VehicleSensInitGyroExtl();
89     VehicleSensInitGyroYExtl();
90     VehicleSensInitGyroZExtl();
91     VehicleSensInitSpeedPulseExtl();
92     VehicleSensInitRevExtl();
93     VehicleSensInitGsnsXExtl();
94     VehicleSensInitGsnsYExtl();
95     VehicleSensInitGsnsZExtl();
96     VehicleSensInitGsnsXFstl();
97     VehicleSensInitGsnsYFstl();
98     VehicleSensInitGsnsZFstl();
99     VehicleSensInitGyroXFstl();
100     VehicleSensInitGyroYFstl();
101     VehicleSensInitGyroZFstl();
102     VehicleSensInitSpeedPulseFstl();
103     VehicleSensInitSpeedPulseFlagFstl();
104     VehicleSensInitRevFstl();
105 #endif
106     /* ++ GPS _CWORD82_ support */
107     VehicleSensInitGps_CWORD82_FullBinaryG();
108     VehicleSensInitGps_CWORD82_NmeaG();
109     VehicleSensInitGps_CWORD82__CWORD44_Gp4G();
110     VehicleSensInitGpsNmeaG();
111     /* -- GPS _CWORD82_ support */
112
113     /* ++ PastModel002 support */
114     VehicleSensInitNavVelnedG();
115     VehicleSensInitNavTimeUtcG();
116     VehicleSensInitNavTimeGpsG();
117     VehicleSensInitNavSvInfoG();
118     VehicleSensInitNavStatusG();
119     VehicleSensInitNavPosllhG();
120     VehicleSensInitNavClockG();
121     VehicleSensInitNavDopG();
122     VehicleSensInitMonHwG();
123
124     VehicleSensInitSpeedPulseFlag();
125     VehicleSensInitGpsInterruptFlag();
126
127     VehicleSensInitGyroTrouble();
128     VehicleSensInitMainGpsInterruptSignal();
129     VehicleSensInitSysGpsInterruptSignal();
130     VehicleSensInitGyroConnectStatus();
131     VehicleSensInitGpsAntennaStatus();
132     /* -- PastModel002 support */
133
134     VehicleSensInitGyroTempFstl();
135     VehicleSensInitGyroTempExtl();
136     VehicleSensInitGyroTempl();
137     VehicleSensInitPulseTimeExtl();
138     VehicleSensInitPulseTimel();
139
140     VehicleSensInitLocationLonLatG();
141     VehicleSensInitLocationAltitudeG();
142     VehicleSensInitMotionSpeedG();
143     VehicleSensInitMotionHeadingG();
144     VehicleSensInitNaviinfoDiagGPSg();
145     VehicleSensInitGpsTimeG();
146     VehicleSensInitGpsTimeRawG();
147     VehicleSensInitWknRolloverG();
148     VehicleSensInitLocationLonLatN();
149     VehicleSensInitLocationAltitudeN();
150     VehicleSensInitMotionSpeedN();
151     VehicleSensInitMotionHeadingN();
152     VehicleSensInitSettingTimeclock();
153     VehicleSensInitMotionSpeedI();
154     VehicleSensInitGpsClockDriftG();
155     VehicleSensInitGpsClockFreqG();
156
157     VehicleSens_InitLocationInfoNmea_n();
158 }
159
160 /*******************************************************************************
161 * MODULE    : VehicleSensSetDataMasterLineSens
162 * ABSTRACT  : Vehicle sensor data master LineSensor data set process
163 * FUNCTION  : Set LineSensor data
164 * ARGUMENT  : *pst_data      : LineSensor Vehicle Signal Notification Data
165 *           : p_data_master_set_n  : Data Master Set Notification(Callback function)
166 * NOTE      :
167 * RETURN    : void
168 ******************************************************************************/
169 void  VehicleSensSetDataMasterLineSens(const LSDRV_LSDATA *pst_data,
170         PFUNC_DMASTER_SET_N p_data_master_set_n,
171         BOOL b_sens_ext) {
172     u_int8  uc_chg_type;
173
174     /*------------------------------------------------------*/
175     /*  Call the data set processing associated with the DID      */
176     /*  Call the data master set notification process      */
177     /*------------------------------------------------------*/
178     switch (pst_data->ul_did) {
179         case POSHAL_DID_SPEED_PULSE:
180         {
181             uc_chg_type = VehicleSensSetSpeedPulsel(pst_data);
182             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
183
184             break;
185         }
186 //        case POSHAL_DID_GYRO_X:
187 //        {
188 //            uc_chg_type = VehicleSensSetGyroXl(pst_data);
189 //            (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
190 //            break;
191 //        }
192         case POSHAL_DID_GYRO_Y:
193         {
194             uc_chg_type = VehicleSensSetGyroYl(pst_data);
195             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
196             break;
197         }
198         case POSHAL_DID_GYRO_Z:
199         {
200             uc_chg_type = VehicleSensSetGyroZl(pst_data);
201             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
202             break;
203         }
204         case POSHAL_DID_REV:
205         {
206             uc_chg_type = VehicleSensSetRevl(pst_data);
207 #if (DR_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
208             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_REV \r\n");
209 #endif
210             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
211             /* ++ PastModel002 support DR */
212             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
213             /* -- PastModel002 support DR */
214             break;
215         }
216         case POSHAL_DID_GPS_ANTENNA:
217         {
218             uc_chg_type = VehicleSensSetGpsAntennal(pst_data);
219             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
220             break;
221         }
222         case POSHAL_DID_GYRO_X:
223         case POSHAL_DID_GYRO_EXT:    /* 3 to 14bit A/D value,0bit:REV */
224         {
225             uc_chg_type = VehicleSensSetGyroRevl(pst_data);
226 //            if (b_sens_ext == TRUE) {
227 //                VehicleSensSetGyroExtl(pst_data);
228 //            }
229             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
230             break;
231         }
232         default:
233             break;
234     }
235 }
236
237 /*******************************************************************************
238 * MODULE    : VehicleSensSetDataMasterLineSensG
239 * ABSTRACT  : Vehicle sensor data master LineSensor data set process
240 * FUNCTION  : Set LineSensor data
241 * ARGUMENT  : *pst_data      : LineSensor Vehicle Signal Notification Data
242 *           : p_data_master_set_n  : Data Master Set Notification(Callback function)
243 * NOTE      :
244 * RETURN    : void
245 ******************************************************************************/
246 void  VehicleSensSetDataMasterLineSensG(const LSDRV_LSDATA_G *pst_data,
247         PFUNC_DMASTER_SET_N p_data_master_set_n,
248         BOOL b_sens_ext) {
249     u_int8  uc_chg_type;
250     SENSORMOTION_SPEEDINFO_DAT stSpeed;
251     const VEHICLESENS_DATA_MASTER* pst_master;
252     u_int16 usSP_KMPH = 0;            /* Vehicle speed(km/h)      */
253
254     /*------------------------------------------------------*/
255     /*  Call the data set processing associated with the DID      */
256     /*  Call the data master set notification process      */
257     /*------------------------------------------------------*/
258     switch (pst_data->ul_did) {
259         case POSHAL_DID_SPEED_PULSE:
260         {
261             uc_chg_type = VehicleSensSetSpeedPulselG(pst_data);
262 #if (DR_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
263             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_SPEED_PULSE \r\n");
264 #endif
265             if (b_sens_ext == TRUE) {
266                 VehicleSensSetSpeedPulseExtlG(pst_data);
267             }
268             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
269             /* ++ PastModel002 support DR */
270             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
271             /* -- PastModel002 support DR */
272             break;
273         }
274         case POSHAL_DID_SPEED_KMPH:
275         {
276             uc_chg_type = VehicleSensSetSpeedKmphlG(pst_data);
277             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
278
279             /* Set the data master of Motion Seepd (Internal) */
280             pst_master = (const VEHICLESENS_DATA_MASTER*)pst_data;
281             memset(&stSpeed, 0x00, sizeof(SENSORMOTION_SPEEDINFO_DAT));
282             /* When the notified size is ""0"",The vehicle speed cannot be calculated with the line sensor. */
283             if (pst_master->us_size == 0) {
284                 stSpeed.isEnable  = FALSE;
285             } else {
286                 stSpeed.isEnable  = TRUE;
287                 memcpy(&usSP_KMPH, pst_master->uc_data, sizeof(u_int16));
288             }
289             stSpeed.getMethod = SENSOR_GET_METHOD_POS;
290             /* Unit conversion [0.01km/h] -> [0.01m/s] */
291             stSpeed.Speed     = static_cast<uint16_t>((1000 * usSP_KMPH) / 3600);
292
293             uc_chg_type = VehicleSensSetMotionSpeedI(&stSpeed);
294             (*p_data_master_set_n)(VEHICLE_DID_MOTION_SPEED_INTERNAL, uc_chg_type, VEHICLESENS_GETMETHOD_INTERNAL);
295             break;
296         }
297 //        case POSHAL_DID_GYRO_X:
298 //        {
299 //            uc_chg_type = VehicleSensSetGyroXlG(pst_data);
300 //#if (DR_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
301 //            FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_GYRO_X \r\n");
302 //#endif
303 //            (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
304 //            /* ++ PastModel002 support DR */
305 //            VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
306 //            /* -- PastModel002 support DR */
307 //            break;
308 //        }
309         case POSHAL_DID_GYRO_Y:
310         {
311             uc_chg_type = VehicleSensSetGyroYlG(pst_data);
312             if (b_sens_ext == TRUE) {
313                 VehicleSensSetGyroYExtlG(pst_data);
314             }
315 #if (DR_DEBUG == 1)
316             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_GYRO_Y \r\n");
317 #endif
318             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
319             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
320             break;
321         }
322         case POSHAL_DID_GYRO_Z:
323         {
324             uc_chg_type = VehicleSensSetGyroZlG(pst_data);
325             if (b_sens_ext == TRUE) {
326                 VehicleSensSetGyroZExtlG(pst_data);
327             }
328 #if (DR_DEBUG == 1)
329             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_GYRO_Z \r\n");
330 #endif
331             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
332             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
333             break;
334         }
335         case POSHAL_DID_SNS_COUNTER:
336         {
337 #if (DR_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
338             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_SNS_COUNTER \r\n");
339 #endif
340             uc_chg_type = VehicleSensSetSnsCounterlG(pst_data);
341             if (b_sens_ext == TRUE) {
342                 VehicleSensSetSnsCounterExtlG(pst_data);
343             }
344             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
345             /* ++ PastModel002 support DR */
346             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
347             /* -- PastModel002 support DR */
348             break;
349         }
350         case POSHAL_DID_GYRO_X:
351         case POSHAL_DID_GYRO_EXT:    /* 3 to 14bit A/D value,0bit:REV */
352         {
353             uc_chg_type = VehicleSensSetGyroRevlG(pst_data);
354
355             if (b_sens_ext == TRUE) {
356                 VehicleSensSetGyroExtlG(pst_data);
357             }
358             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
359
360             break;
361         }
362
363         case POSHAL_DID_SPEED_PULSE_FLAG:
364         {
365             uc_chg_type = VehicleSensSetSpeedPulseFlag((const LSDRV_LSDATA_G *)pst_data);
366
367             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
368             /* ++ PastModel002 support DR */
369             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
370             /* -- PastModel002 support DR */
371
372             break;
373         }
374         case POSHAL_DID_GPS_INTERRUPT_FLAG:
375         {
376             uc_chg_type = VehicleSensSetGpsInterruptFlag((const LSDRV_LSDATA_G *)pst_data);
377
378             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
379
380             break;
381         }
382         case POSHAL_DID_REV:
383         {
384             uc_chg_type = VehicleSensSetRevlG(pst_data);
385             if (b_sens_ext == TRUE) {
386                 VehicleSensSetRevExtlG(pst_data);
387             }
388             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
389             break;
390         }
391         case POSHAL_DID_GYRO_TEMP:
392         {
393             uc_chg_type = VehicleSensSetGyroTemplG(pst_data);
394             if (b_sens_ext == TRUE) {
395                 VehicleSensSetGyroTempExtlG(pst_data);
396             }
397             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
398             break;
399         }
400         case POSHAL_DID_GSNS_X:
401         {
402             uc_chg_type = VehicleSensSetGsnsXlG(pst_data);
403             if (b_sens_ext == TRUE) {
404                 VehicleSensSetGsnsXExtlG(pst_data);
405             }
406             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
407             break;
408         }
409         case POSHAL_DID_GSNS_Y:
410         {
411             uc_chg_type = VehicleSensSetGsnsYlG(pst_data);
412             if (b_sens_ext == TRUE) {
413                 VehicleSensSetGsnsYExtlG(pst_data);
414             }
415             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
416             break;
417         }
418         case POSHAL_DID_GSNS_Z:
419         {
420             uc_chg_type = VehicleSensSetGsnsZlG(pst_data);
421             if (b_sens_ext == TRUE) {
422                 VehicleSensSetGsnsZExtlG(pst_data);
423             }
424             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
425             break;
426         }
427         case POSHAL_DID_PULSE_TIME:
428         {
429             uc_chg_type = VehicleSensSetPulseTimelG(pst_data);
430             if (b_sens_ext == TRUE) {
431                 VehicleSensSetPulseTimeExtlG(pst_data);
432             }
433             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
434             break;
435         }
436         default:
437             break;
438     }
439 }
440
441 #if CONFIG_SENSOR_EXT_VALID        /* Initial Sensor Support */
442 /*******************************************************************************
443 * MODULE    : VehicleSensSetDataMasterLineSensFst
444 * ABSTRACT  : Vehicle sensor data master LineSensor data set process
445 * FUNCTION  : Set LineSensor data
446 * ARGUMENT  : *pst_data      : LineSensor Vehicle Signal Notification Data
447 *           : p_data_master_set_n  : Data Master Set Notification(Callback function)
448 * NOTE      :
449 * RETURN    : void
450 ******************************************************************************/
451 void  VehicleSensSetDataMasterLineSensFst(const LSDRV_LSDATA_FST *pst_data, PFUNC_DMASTER_SET_N p_data_master_set_n) {  // LCOV_EXCL_START 8: dead code  // // NOLINT(whitespace/line_length)
452     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
453     u_int8  uc_chg_type;
454
455     /*------------------------------------------------------*/
456     /*  Call the data set processing associated with the DID      */
457     /*  Call the data master set notification process      */
458     /*------------------------------------------------------*/
459     switch (pst_data->ul_did) {
460         case POSHAL_DID_GYRO_X_FST:    /* 3 to 14bit A/D value,0bit:REV */
461         {
462             uc_chg_type = VehicleSensSetGyroXFstl(pst_data);
463             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
464             break;
465         }
466         case POSHAL_DID_GYRO_Y_FST:    /* 3 to 14bit A/D value,0bit:REV */
467         {
468             uc_chg_type = VehicleSensSetGyroYFstl(pst_data);
469             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
470             break;
471         }
472         case POSHAL_DID_GYRO_Z_FST:    /* 3 to 14bit A/D value,0bit:REV */
473         {
474             uc_chg_type = VehicleSensSetGyroZFstl(pst_data);
475             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
476             break;
477         }
478         case POSHAL_DID_SPEED_PULSE_FST:
479         {
480             uc_chg_type = VehicleSensSetSpeedPulseFstl(pst_data);
481             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
482             break;
483         }
484         default:
485             break;
486     }
487 }
488 // LCOV_EXCL_STOP
489 /*******************************************************************************
490 * MODULE    : VehicleSensSetDataMasterLineSensFstG
491 * ABSTRACT  : Vehicle sensor data master LineSensor data set process
492 * FUNCTION  : Set LineSensor data
493 * ARGUMENT  : *pst_data      : LineSensor Vehicle Signal Notification Data
494 *           : p_data_master_set_n  : Data Master Set Notification(Callback function)
495 * NOTE      :
496 * RETURN    : void
497 ******************************************************************************/
498 void  VehicleSensSetDataMasterLineSensFstG(const LSDRV_MSG_LSDATA_DAT_FST  *pst_data,
499         PFUNC_DMASTER_SET_N p_data_master_set_n) {
500     u_int8  uc_chg_type;
501
502     /* Internal debug log output */
503     FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__, "+");
504
505     /*------------------------------------------------------*/
506     /*  Call the data set processing associated with the DID      */
507     /*  Call the data master set notification process      */
508     /*------------------------------------------------------*/
509     switch (pst_data->st_gyro_x.ul_did) {
510         case POSHAL_DID_GYRO_X_FST:
511         {
512             uc_chg_type = VehicleSensSetGyroXFstG(&(pst_data->st_gyro_x));
513             if (pst_data->st_gyro_x.uc_partition_max == pst_data->st_gyro_x.uc_partition_num)
514             {
515                 (*p_data_master_set_n)(pst_data->st_gyro_x.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
516             }
517             break;
518         }
519         default:
520             break;
521     }
522
523     switch (pst_data->st_gyro_y.ul_did) {
524         case POSHAL_DID_GYRO_Y_FST:
525         {
526             uc_chg_type = VehicleSensSetGyroYFstG(&(pst_data->st_gyro_y));
527             if (pst_data->st_gyro_y.uc_partition_max == pst_data->st_gyro_y.uc_partition_num) {
528                 (*p_data_master_set_n)(pst_data->st_gyro_y.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
529             }
530             break;
531         }
532         default:
533             break;
534     }
535
536     switch (pst_data->st_gyro_z.ul_did) {
537         case POSHAL_DID_GYRO_Z_FST:
538         {
539             uc_chg_type = VehicleSensSetGyroZFstG(&(pst_data->st_gyro_z));
540             if (pst_data->st_gyro_z.uc_partition_max == pst_data->st_gyro_z.uc_partition_num) {
541                 (*p_data_master_set_n)(pst_data->st_gyro_z.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
542             }
543             break;
544         }
545         default:
546             break;
547     }
548
549     switch (pst_data->st_speed.ul_did) {
550         case POSHAL_DID_SPEED_PULSE_FST:
551         {
552             uc_chg_type = VehicleSensSetSpeedPulseFstG(&(pst_data->st_speed));
553             if (pst_data->st_speed.uc_partition_max == pst_data->st_speed.uc_partition_num)
554             {
555                 (*p_data_master_set_n)(pst_data->st_speed.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
556             }
557             break;
558         }
559         default:
560             break;
561     }
562
563     switch (pst_data->st_spd_pulse_flg.ul_did) {
564         case POSHAL_DID_SPEED_PULSE_FLAG_FST:
565         {
566             uc_chg_type = VehicleSensSetSpeedPulseFlagFstG(&(pst_data->st_spd_pulse_flg));
567             if (pst_data->st_spd_pulse_flg.uc_partition_max == pst_data->st_spd_pulse_flg.uc_partition_num)
568             {
569                 (*p_data_master_set_n)(pst_data->st_spd_pulse_flg.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
570             }
571             break;
572         }
573         default:
574             break;
575     }
576
577     switch (pst_data->st_rev.ul_did) {
578         case POSHAL_DID_REV_FST:
579         {
580             uc_chg_type = VehicleSensSetRevFstG(&(pst_data->st_rev));
581             if (pst_data->st_rev.uc_partition_max == pst_data->st_rev.uc_partition_num)
582             {
583                 (*p_data_master_set_n)(pst_data->st_rev.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
584             }
585             break;
586         }
587         default:
588             break;
589     }
590
591     switch (pst_data->st_gyro_temp.ul_did) {
592         case POSHAL_DID_GYRO_TEMP_FST:
593         {
594             uc_chg_type = VehicleSensSetGyroTempFstG(&(pst_data->st_gyro_temp));
595
596             if (pst_data->st_gyro_temp.uc_partition_max == pst_data->st_gyro_temp.uc_partition_num) {
597                 (*p_data_master_set_n)(pst_data->st_gyro_temp.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
598             }
599             break;
600         }
601         default:
602             break;
603     }
604
605     switch (pst_data->st_gsns_x.ul_did) {
606         case POSHAL_DID_GSNS_X_FST:
607         {
608             uc_chg_type = VehicleSensSetGsnsXFstG(&(pst_data->st_gsns_x));
609
610             if (pst_data->st_gsns_x.uc_partition_max == pst_data->st_gsns_x.uc_partition_num) {
611                 (*p_data_master_set_n)(pst_data->st_gsns_x.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
612             }
613             break;
614         }
615         default:
616             break;
617     }
618
619     switch (pst_data->st_gsns_y.ul_did) {
620         case POSHAL_DID_GSNS_Y_FST:
621         {
622             uc_chg_type = VehicleSensSetGsnsYFstG(&(pst_data->st_gsns_y));
623
624             if (pst_data->st_gsns_y.uc_partition_max == pst_data->st_gsns_y.uc_partition_num) {
625                 (*p_data_master_set_n)(pst_data->st_gsns_y.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
626             }
627             break;
628         }
629         default:
630             break;
631     }
632
633     switch (pst_data->st_gsns_z.ul_did) {
634         case POSHAL_DID_GSNS_Z_FST:
635         {
636             uc_chg_type = VehicleSensSetGsnsZFstG(&(pst_data->st_gsns_z));
637
638             if (pst_data->st_gsns_z.uc_partition_max == pst_data->st_gsns_z.uc_partition_num) {
639                 (*p_data_master_set_n)(pst_data->st_gsns_z.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
640             }
641             break;
642         }
643         default:
644             break;
645     }
646
647     /* Internal debug log output */
648     FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__, "-");
649 }
650 #endif
651
652 /*******************************************************************************
653 * MODULE    : VehicleSensSetDataMasterGps
654 * ABSTRACT  : Vehicle Sensor Data Master GPS Data Set Processing
655 * FUNCTION  : Set GPS data
656 * ARGUMENT  : *pst_data      : GPS received message data
657 *           : p_data_master_set_n  : Data Master Set Notification(Callback function)
658 * NOTE      :
659 * RETURN    : void
660 ******************************************************************************/
661 void  VehicleSensSetDataMasterGps(SENSOR_MSG_GPSDATA_DAT *pst_data,
662                                        PFUNC_DMASTER_SET_N p_data_master_set_n) {
663     u_int8  uc_chg_type;
664     SENSORLOCATION_LONLATINFO_DAT lstLonLat;
665     SENSORLOCATION_ALTITUDEINFO_DAT lstAltitude;
666     SENSORMOTION_HEADINGINFO_DAT lstHeading;
667     MDEV_GPS_CUSTOMDATA *pstCustomData;
668
669     VEHICLESENS_DATA_MASTER st_data;
670     u_int8 antennaState = 0;
671     u_int8 sensCount = 0;
672     u_int8 ucResult = SENSLOG_RES_SUCCESS;
673
674     EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusFail;
675     BOOL bIsAvailable;
676     PNO us_pno;
677
678     /* Antenna Connection Information */
679     (void)memset(reinterpret_cast<void *>(&st_data),  0, sizeof(st_data));
680     VehicleSensGetGpsAntennal(&st_data);
681     antennaState = st_data.uc_data[0];
682
683     /* Sensor Counter */
684     (void)memset(reinterpret_cast<void *>(&st_data),  0, sizeof(st_data));
685     VehicleSensGetSnsCounterl(&st_data);
686     /** Sensor Counter Value Calculation */
687     /** Subtract sensor counter according to data amount from sensor counter.(Rounded off) */
688     /** Communication speed9600bps = 1200byte/s,Sensor counter is 1 count at 100ms. */
689     sensCount = st_data.uc_data[0];
690
691     FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__, 
692             "antennaState = %d, sensCount = %d", antennaState, sensCount);
693
694     /*------------------------------------------------------*/
695     /*  Call the data set processing associated with the DID      */
696     /*  Call the data master set notification process      */
697     /*------------------------------------------------------*/
698     switch (pst_data->ul_did) {  // LCOV_EXCL_BR_LINE 6:some DID is not used
699         case VEHICLE_DID_GPS_UBLOX_NAV_VELNED:
700         {
701             // LCOV_EXCL_START 8 : dead code
702             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
703 #if (GPS_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
704             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
705                 "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_VELNED \r\n");
706 #endif
707             uc_chg_type = VehicleSensSetNavVelnedG(pst_data);
708             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
709             /* ++ PastModel002 support DR */
710             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
711             /* -- PastModel002 support DR */
712             break;
713             // LCOV_EXCL_STOP
714         }
715         case VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC:
716         {
717             // LCOV_EXCL_START 8 : dead code
718             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
719 #if (GPS_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
720             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
721                 "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC \r\n");
722 #endif
723             uc_chg_type = VehicleSensSetNavTimeUtcG(pst_data);
724             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
725             /* ++ PastModel002 support DR */
726             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
727             /* -- PastModel002 support DR */
728             break;
729             // LCOV_EXCL_STOP
730         }
731         case VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS:
732         {
733             // LCOV_EXCL_START 8 : dead code
734             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
735 #if (GPS_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
736             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
737                 "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS \r\n");
738 #endif
739             uc_chg_type = VehicleSensSetNavTimeGpsG(pst_data);
740             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
741             break;
742             // LCOV_EXCL_STOP
743         }
744         case VEHICLE_DID_GPS_UBLOX_NAV_SVINFO:
745         {
746             // LCOV_EXCL_START 8 : dead code
747             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
748 #if (GPS_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
749             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
750                 "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_SVINFO \r\n");
751 #endif
752             uc_chg_type = VehicleSensSetNavSvInfoG(pst_data);
753             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
754             /* ++ PastModel002 support DR */
755             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
756             /* -- PastModel002 support DR */
757             break;
758             // LCOV_EXCL_STOP
759         }
760         case VEHICLE_DID_GPS_UBLOX_NAV_STATUS:
761         {
762             // LCOV_EXCL_START 8 : dead code
763             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
764 #if (GPS_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
765             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
766                 "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_STATUS \r\n");
767 #endif
768             uc_chg_type = VehicleSensSetNavStatusG(pst_data);
769             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
770             /* ++ PastModel002 support DR */
771             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
772             /* -- PastModel002 support DR */
773             break;
774             // LCOV_EXCL_STOP
775         }
776         case VEHICLE_DID_GPS_UBLOX_NAV_POSLLH:
777         {
778             // LCOV_EXCL_START 8 : dead code
779             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
780 #if (GPS_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
781             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
782                 "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_POSLLH \r\n");
783 #endif
784             uc_chg_type = VehicleSensSetNavPosllhG(pst_data);
785             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
786             /* ++ PastModel002 support DR */
787             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
788             /* -- PastModel002 support DR */
789             break;
790             // LCOV_EXCL_STOP
791         }
792         case VEHICLE_DID_GPS_UBLOX_NAV_CLOCK:
793         {
794             // LCOV_EXCL_START 8 : dead code
795             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
796 #if (GPS_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
797             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
798                 "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_CLOCK \r\n");
799 #endif
800             uc_chg_type = VehicleSensSetNavClockG(pst_data);
801             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
802             /* ++ PastModel002 support DR */
803             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
804             /* -- PastModel002 support DR */
805             break;
806             // LCOV_EXCL_STOP
807         }
808         case VEHICLE_DID_GPS_UBLOX_NAV_DOP:
809         {
810             // LCOV_EXCL_START 8 : dead code
811             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
812 #if (GPS_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
813             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
814                 "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_DOP \r\n");
815 #endif
816             uc_chg_type = VehicleSensSetNavDopG(pst_data);
817             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
818             /* ++ PastModel002 support DR */
819             VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
820             /* -- PastModel002 support DR */
821             break;
822             // LCOV_EXCL_STOP
823         }
824         case VEHICLE_DID_GPS_UBLOX_MON_HW:
825         {
826             // LCOV_EXCL_START 8 : dead code
827             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
828 #if (GPS_DEBUG == 1)  /* PastModel002_DR_VEHICLE  */
829             FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_MON_HW \r\n");
830 #endif
831             uc_chg_type = VehicleSensSetMonHwG(pst_data);
832             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
833             break;
834             // LCOV_EXCL_STOP
835         }
836         case VEHICLE_DID_GPS_COUNTER:
837         {
838             // LCOV_EXCL_START 8 : dead code
839             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
840             uc_chg_type = VehicleSensSetGpsCounterg(pst_data);
841             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
842             break;
843             // LCOV_EXCL_STOP
844         }
845         /* GPS raw data(_CWORD82_ NMEA) */
846         case VEHICLE_DID_GPS__CWORD82__NMEA:
847         {
848             /* NMEA data */
849             FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__, 
850                 "VehicleSens_GpsDataDelivery VEHICLE_DID_GPS__CWORD82__NMEA -->");
851
852             /* Insert Antenna Connection Status and Sensor Counter */
853             pst_data->uc_data[1] = antennaState; /* Insert Antennas into 2byte Eyes */
854             /* Place counters at 3byte */
855             pst_data->uc_data[2] = static_cast<u_int8>(sensCount - (u_int8)(((GPS_NMEA_SZ * 10) / 1200) + 1));
856
857             uc_chg_type = VehicleSensSetGps_CWORD82_NmeaG(pst_data);  /* Ignore->MISRA-C++:2008 Rule 5-2-5 */
858             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
859             FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__, 
860                 "VehicleSens_GpsDataDelivery VEHICLE_DID_GPS__CWORD82__NMEA <--");
861             break;
862         }
863         /* GPS raw data(FullBinary) */
864         case POSHAL_DID_GPS__CWORD82__FULLBINARY:
865         {
866             /* FullBin data */
867             FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__, 
868                 "VehicleSens_GpsDataDelivery POSHAL_DID_GPS__CWORD82__FULLBINARY -->");
869
870             /* Insert Antenna Connection Status and Sensor Counter */
871             pst_data->uc_data[0] = antennaState; /* Insert Antennas into 1byte Eyes */
872             /* Place counters at 2byte */
873             pst_data->uc_data[1] = static_cast<u_int8>(sensCount - (u_int8)(((GPS_CMD_FULLBIN_SZ * 10) / 1200) + 1));
874
875             uc_chg_type = VehicleSensSetGps_CWORD82_FullBinaryG(pst_data);
876             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
877             FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__, 
878                 "VehicleSens_GpsDataDelivery POSHAL_DID_GPS__CWORD82__FULLBINARY <--");
879             break;
880         }
881         /* GPS raw data(Specific information) */
882         case POSHAL_DID_GPS__CWORD82___CWORD44_GP4:
883         {
884             /* GPS-specific information */
885             uc_chg_type = VehicleSensSetGps_CWORD82__CWORD44_Gp4G(pst_data);  /* Ignore->MISRA-C++:2008 Rule 5-2-5 */
886             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
887             break;
888         }
889         case POSHAL_DID_GPS_CUSTOMDATA:
890         {
891             pstCustomData = reinterpret_cast<MDEV_GPS_CUSTOMDATA*>(pst_data->uc_data);
892             /* Latitude/LongitudeInformation */
893             (void)memcpy(&lstLonLat, &(pstCustomData->st_lonlat), sizeof(SENSORLOCATION_LONLATINFO_DAT));
894             lstLonLat.SyncCnt = VehicleSensGetSensorCnt(); /* Synchronization counter setting */
895             uc_chg_type = VehicleSensSetLocationLonLatG(&lstLonLat);
896             (*p_data_master_set_n)(VEHICLE_DID_LOCATION_LONLAT, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
897
898             /* Altitude information */
899             (void)memcpy(&lstAltitude, &(pstCustomData->st_altitude), sizeof(SENSORLOCATION_ALTITUDEINFO_DAT));
900             lstAltitude.SyncCnt = VehicleSensGetSensorCnt(); /* Synchronization counter setting */
901             uc_chg_type = VehicleSensSetLocationAltitudeG(&lstAltitude);
902             (*p_data_master_set_n)(VEHICLE_DID_LOCATION_ALTITUDE, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
903
904             /* Bearing information */
905             (void)memcpy(&lstHeading, &(pstCustomData->st_heading), sizeof(SENSORMOTION_HEADINGINFO_DAT));
906             lstHeading.SyncCnt = VehicleSensGetSensorCnt(); /* Synchronization counter setting */
907             uc_chg_type = VehicleSensSetMotionHeadingG(&lstHeading);
908             (*p_data_master_set_n)(VEHICLE_DID_MOTION_HEADING, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
909
910             /* GPS time information */
911             uc_chg_type = VehicleSensSetGpsTimeG(&(pstCustomData->st_gps_time));
912             (*p_data_master_set_n)(POSHAL_DID_GPS_TIME, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
913
914             /* Set GPS time to CLOCK */
915             eStatus = ClockIfDtimeSetGpsTime(&(pstCustomData->st_gps_time), &bIsAvailable);
916             if ((bIsAvailable == TRUE) && (eStatus != eFrameworkunifiedStatusOK)) {
917                 ucResult = SENSLOG_RES_FAIL;
918                 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
919                     "ClockIfDtimeSetGpsTime ERROR!! [ret=%d, y=%d, m=%d, d=%d, h=%d, n=%d, s=%d, sts=%d]",
920                     eStatus, pstCustomData->st_gps_time.utc.year, pstCustomData->st_gps_time.utc.month,
921                     pstCustomData->st_gps_time.utc.date,
922                     pstCustomData->st_gps_time.utc.hour, pstCustomData->st_gps_time.utc.minute,
923                     pstCustomData->st_gps_time.utc.second, pstCustomData->st_gps_time.tdsts);
924             }
925             us_pno = _pb_CnvName2Pno(SENSLOG_PNAME_CLOCK);
926             SensLogWriteOutputData(SENSLOG_DATA_O_TIME_CS, 0, us_pno,
927                             reinterpret_cast<uint8_t *>(&(pstCustomData->st_gps_time)),
928                             sizeof(pstCustomData->st_gps_time), ucResult);
929
930             /* Diag Info */
931             uc_chg_type = VehicleSensSetNaviinfoDiagGPSg(&(pstCustomData->st_diag_gps));
932             (*p_data_master_set_n)(VEHICLE_DID_NAVIINFO_DIAG_GPS, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
933             break;
934         }
935         /* GPS raw data(NMEA except _CWORD82_) */
936         case POSHAL_DID_GPS_NMEA:
937         {
938             /* NMEA data */
939             uc_chg_type = VehicleSensSetGpsNmeaG(pst_data);
940             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
941             break;
942         }
943         /* GPS version(except _CWORD82_) */
944         case POSHAL_DID_GPS_VERSION:
945         {
946             VehicleSensSetGpsVersion(pst_data);
947             break;
948         }
949         /* Raw GPS time data */
950         case POSHAL_DID_GPS_TIME_RAW:
951         {
952             (void)VehicleSensSetGpsTimeRawG(reinterpret_cast<SENSOR_GPSTIME_RAW*>(pst_data->uc_data));
953             break;
954         }
955         case POSHAL_DID_GPS_TIME:
956         {
957             uc_chg_type = VehicleSensSetGpsTimeG(reinterpret_cast<SENSOR_MSG_GPSTIME*>(pst_data->uc_data));
958             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
959             break;
960         }
961         case POSHAL_DID_GPS_WKNROLLOVER:
962         {
963             (void)VehicleSensSetWknRolloverG(reinterpret_cast<SENSOR_WKNROLLOVER*>(pst_data->uc_data));
964             break;
965         }
966         /* GPS clock drift */
967         case POSHAL_DID_GPS_CLOCK_DRIFT:
968         {
969             uc_chg_type = VehicleSensSetGpsClockDriftG(reinterpret_cast<int32_t*>(pst_data->uc_data));
970             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
971             break;
972         }
973         /* GPS clock frequency */
974         case POSHAL_DID_GPS_CLOCK_FREQ:
975         {
976             uc_chg_type = VehicleSensSetGpsClockFreqG(reinterpret_cast<uint32_t*>(pst_data->uc_data));
977             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
978             break;
979         }
980
981         default:
982             break;
983     }
984 }
985
986 /*******************************************************************************
987  * MODULE    : VehicleSensSetDataMasterData
988  * ABSTRACT  : Vehicle sensor data master common data set processing
989  * FUNCTION  : Set vehicle data
990  * ARGUMENT  : *pstMsg      : Received message data
991  *           : p_data_master_set_n  : Data Master Set Notification(Callback function)
992  * NOTE      :
993  * RETURN    : void
994  ******************************************************************************/
995 void  VehicleSensSetDataMasterData(const POS_MSGINFO *pstMsg,
996                                         PFUNC_DMASTER_SET_N p_data_master_set_n) {
997     u_int8              uc_chg_type = 0;
998     const POS_POSDATA        *pstPosData = NULL;
999     const u_int16          *pucSpeed = 0;
1000     SENSORLOCATION_LONLATINFO_DAT  stLonLat;
1001     SENSORLOCATION_ALTITUDEINFO_DAT  stAltitude;
1002     SENSORMOTION_SPEEDINFO_DAT    stSpeed;
1003     SENSORMOTION_HEADINGINFO_DAT  stHeading;
1004     const SENSOR_MSG_GPSTIME    *pstGpsTime;
1005
1006 //    RET_API   ret;
1007
1008 //    char* pEnvPositioning_CWORD86_ = NULL;
1009 //    BOOL sndFlg;
1010
1011
1012     EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusFail;
1013     BOOL bIsAvailable;
1014     u_int8 ucResult = SENSLOG_RES_SUCCESS;
1015     PNO us_pno;
1016
1017     /*------------------------------------------------------*/
1018     /*  Call the data set processing associated with the DID      */
1019     /*  Call the data master set notification process      */
1020     /*------------------------------------------------------*/
1021     switch (pstMsg->did) {
1022         case POSHAL_DID_GPS_CUSTOMDATA_NAVI:
1023         {
1024             pstPosData = (const POS_POSDATA *) & (pstMsg->data);
1025
1026             /* Latitude/LongitudeInformation */
1027             if (((pstPosData->status & POS_LOC_INFO_LAT) == POS_LOC_INFO_LAT) ||
1028                     ((pstPosData->status & POS_LOC_INFO_LON) == POS_LOC_INFO_LON)) {
1029                 memset(&stLonLat, 0x00, sizeof(stLonLat));
1030                 stLonLat.getMethod = SENSOR_GET_METHOD_NAVI;
1031                 stLonLat.SyncCnt   = VehicleSensGetSensorCnt();
1032                 stLonLat.isEnable  = SENSORLOCATION_STATUS_ENABLE;
1033                 stLonLat.posSts    = pstPosData->posSts;
1034                 stLonLat.posAcc    = pstPosData->posAcc;
1035                 stLonLat.Longitude = pstPosData->longitude;
1036                 stLonLat.Latitude  = pstPosData->latitude;
1037                 uc_chg_type = VehicleSensSetLocationLonLatN((const SENSORLOCATION_LONLATINFO_DAT *)&stLonLat);
1038                 (*p_data_master_set_n)(VEHICLE_DID_LOCATION_LONLAT_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI);
1039             }
1040
1041             /* Altitude information */
1042             if ((pstPosData->status & POS_LOC_INFO_ALT) == POS_LOC_INFO_ALT) {
1043                 memset(&stAltitude, 0x00, sizeof(stAltitude));
1044                 stAltitude.getMethod = SENSOR_GET_METHOD_NAVI;
1045                 stAltitude.SyncCnt   = VehicleSensGetSensorCnt();
1046                 stAltitude.isEnable  = SENSORLOCATION_STATUS_ENABLE;
1047                 stAltitude.Altitude  = pstPosData->altitude;
1048                 uc_chg_type = VehicleSensSetLocationAltitudeN((const SENSORLOCATION_ALTITUDEINFO_DAT *)&stAltitude);
1049                 (*p_data_master_set_n)(VEHICLE_DID_LOCATION_ALTITUDE_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI);
1050             }
1051
1052             /* Bearing information */
1053             if ((pstPosData->status & POS_LOC_INFO_HEAD) == POS_LOC_INFO_HEAD) {
1054                 memset(&stHeading, 0x00, sizeof(stHeading));
1055                 stHeading.getMethod = SENSOR_GET_METHOD_NAVI;
1056                 stHeading.SyncCnt   = VehicleSensGetSensorCnt();
1057                 stHeading.isEnable  = SENSORMOTION_STATUS_ENABLE;
1058                 stHeading.posSts    = pstPosData->posSts;
1059                 stHeading.Heading   = pstPosData->heading;
1060                 uc_chg_type = VehicleSensSetMotionHeadingN((const SENSORMOTION_HEADINGINFO_DAT *)&stHeading);
1061                 (*p_data_master_set_n)(VEHICLE_DID_MOTION_HEADING_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI);
1062             }
1063
1064             ( *p_data_master_set_n )( POSHAL_DID_GPS_CUSTOMDATA_NAVI, VEHICLESENS_NEQ, VEHICLESENS_GETMETHOD_NAVI );
1065
1066             break;
1067         }
1068         case VEHICLE_DID_MOTION_SPEED_NAVI:
1069         {
1070             pucSpeed = (const u_int16 *) & (pstMsg->data);
1071
1072             /* Vehicle speed information */
1073             memset(&stSpeed, 0x00, sizeof(stSpeed));
1074             stSpeed.getMethod = SENSOR_GET_METHOD_NAVI;
1075             stSpeed.SyncCnt   = VehicleSensGetSensorCnt();
1076             stSpeed.isEnable  = SENSORMOTION_STATUS_ENABLE;
1077             stSpeed.Speed     = *pucSpeed;
1078             uc_chg_type = VehicleSensSetMotionSpeedN((const SENSORMOTION_SPEEDINFO_DAT *)&stSpeed);
1079             (*p_data_master_set_n)(VEHICLE_DID_MOTION_SPEED_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI);
1080             break;
1081         }
1082         case POSHAL_DID_GPS_TIME:
1083         {
1084             pstGpsTime = (const SENSOR_MSG_GPSTIME*)(pstMsg->data);
1085             uc_chg_type = VehicleSensSetGpsTimeG((const SENSOR_MSG_GPSTIME *)pstGpsTime);
1086             (*p_data_master_set_n)(POSHAL_DID_GPS_TIME, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
1087
1088             /* Set GPS time to CLOCK */
1089             eStatus = ClockIfDtimeSetGpsTime(pstGpsTime, &bIsAvailable);
1090             if ((bIsAvailable == TRUE) && (eStatus != eFrameworkunifiedStatusOK)) {
1091                 ucResult = SENSLOG_RES_FAIL;
1092                 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, 
1093                             "ClockIfDtimeSetGpsTime ERROR!! [ret=%d, y=%d, m=%d, d=%d, h=%d, n=%d, s=%d, sts=%d]",
1094                             eStatus, pstGpsTime->utc.year, pstGpsTime->utc.month, pstGpsTime->utc.date,
1095                             pstGpsTime->utc.hour, pstGpsTime->utc.minute, pstGpsTime->utc.second, pstGpsTime->tdsts);
1096             }
1097             us_pno = _pb_CnvName2Pno(SENSLOG_PNAME_CLOCK);
1098             SensLogWriteOutputData(SENSLOG_DATA_O_TIME_CS, 0, us_pno,
1099                                 (uint8_t *)(pstGpsTime),  // NOLINT(readability/casting)
1100                                     sizeof(SENSOR_MSG_GPSTIME), ucResult);
1101             break;
1102         }
1103         case VEHICLE_DID_SETTINGTIME:
1104         {
1105             /* GPS time information */
1106             uc_chg_type = VehicleSensSetSettingTimeclock((const POS_DATETIME *) & (pstMsg->data));
1107             (*p_data_master_set_n)(VEHICLE_DID_SETTINGTIME, uc_chg_type, VEHICLESENS_GETMETHOD_OTHER);
1108             break;
1109         }
1110
1111         case VEHICLE_DID_LOCATIONINFO_NMEA_NAVI:
1112         {
1113             uc_chg_type = VehicleSens_SetLocationInfoNmea_n((const POS_LOCATIONINFO_NMEA*)&(pstMsg->data));
1114             (*p_data_master_set_n)(VEHICLE_DID_LOCATIONINFO_NMEA_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI );
1115             break;
1116         }
1117
1118         default:
1119             break;
1120     }
1121     return;
1122 }
1123
1124 /*******************************************************************************
1125 * MODULE    : VehicleSensSetDataMasterGyroTrouble
1126 * ABSTRACT  : Vehicle Sensor Data Master Gyro Failure Status Setting Process
1127 * FUNCTION  : Set a gyro fault condition
1128 * ARGUMENT  : *pst_data      : Gyro Failure Status Notification Data
1129 *           : p_data_master_set_n  : Data Master Set Notification(Callback function)
1130 * NOTE      :
1131 * RETURN    : void
1132 ******************************************************************************/
1133 void  VehicleSensSetDataMasterGyroTrouble(const LSDRV_MSG_LSDATA_DAT_GYRO_TROUBLE *pst_data, PFUNC_DMASTER_SET_N p_data_master_set_n) {  // LCOV_EXCL_START 8: dead code.  // NOLINT(whitespace/line_length)
1134     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1135     u_int8  uc_chg_type;
1136
1137     if ((pst_data != NULL) && (p_data_master_set_n != NULL)) {
1138         if (pst_data->ul_did == VEHICLE_DID_GYRO_TROUBLE) {
1139             uc_chg_type = VehicleSensSetGyroTrouble(pst_data);
1140             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
1141         } else {
1142             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1143         }
1144     } else {
1145         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
1146     }
1147 }
1148 // LCOV_EXCL_STOP
1149 /*******************************************************************************
1150 * MODULE    : VehicleSensSetDataMasterSysGpsInterruptSignal
1151 * ABSTRACT  : Vehicle Sensor Data Master SYS GPS Interrupt Signal Setting
1152 * FUNCTION  : Setting SYS GPS Interrupt Signals
1153 * ARGUMENT  : *pst_data            : SYS GPS interrupt notification
1154 *           : p_data_master_set_shared_memory  : Data Master Set Notification(Callback function)
1155 * NOTE      :
1156 * RETURN    : void
1157 ******************************************************************************/
1158 void  VehicleSensSetDataMasterSysGpsInterruptSignal(const LSDRV_MSG_LSDATA_DAT_GPS_INTERRUPT_SIGNAL *pst_data, PFUNC_DMASTER_SET_SHARED_MEMORY p_data_master_set_shared_memory) {  // LCOV_EXCL_START 8: dead code.  // NOLINT(whitespace/line_length)
1159     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1160     u_int8  uc_chg_type;
1161     if ((pst_data != NULL) && (p_data_master_set_shared_memory != NULL)) {
1162         if (pst_data->ul_did == VEHICLE_DID_SYS_GPS_INTERRUPT_SIGNAL) {
1163             uc_chg_type = VehicleSensSetSysGpsInterruptSignal(pst_data);
1164             /* As SYS GPS interrupt signals are not registered for delivery,          */
1165             /* Disposal quantity,To avoid risks,DeliveryProc shall not be called.  */
1166             (*p_data_master_set_shared_memory)(pst_data->ul_did, uc_chg_type);
1167         } else {
1168             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1169         }
1170     } else {
1171         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
1172     }
1173 }
1174 // LCOV_EXCL_STOP
1175
1176 /*******************************************************************************
1177 * MODULE    : VehicleSensSetDataMasterMainGpsInterruptSignal
1178 * ABSTRACT  : Vehicle Sensor Data Master MAIN GPS Interrupt Signal Setting
1179 * FUNCTION  : Setting MAIN GPS Interrupt Signals
1180 * ARGUMENT  : *pst_data            : MAIN GPS interrupt notification
1181 *           : p_data_master_set_shared_memory  : Data Master Set Notification(Callback function)
1182 * NOTE      :
1183 * RETURN    : void
1184 ******************************************************************************/
1185 void  VehicleSensSetDataMasterMainGpsInterruptSignal(const SENSOR_MSG_GPSDATA_DAT *pst_data, PFUNC_DMASTER_SET_SHARED_MEMORY p_data_master_set_shared_memory) {  // LCOV_EXCL_START 8: dead code.  // NOLINT(whitespace/line_length)
1186     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1187     u_int8  uc_chg_type;
1188
1189     if ((pst_data != NULL) &&
1190             (p_data_master_set_shared_memory != NULL)) {
1191         if (pst_data->ul_did == VEHICLE_DID_MAIN_GPS_INTERRUPT_SIGNAL) {
1192             uc_chg_type = VehicleSensSetMainGpsInterruptSignal(pst_data);
1193             /* As MAIN GPS interrupt signals are not registered for delivery,          */
1194             /* Disposal quantity,To avoid risks,DeliveryProc shall not be called.  */
1195             (*p_data_master_set_shared_memory)(pst_data->ul_did, uc_chg_type);
1196         } else {
1197             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1198         }
1199     } else {
1200         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
1201     }
1202 }
1203 // LCOV_EXCL_STOP
1204
1205 /*******************************************************************************
1206 * MODULE    : VehicleSensSetDataMasterGyroConnectStatus
1207 * ABSTRACT  : Vehicle Sensor Data Master Gyro Connection Status Setting Processing
1208 * FUNCTION  : Set the state of the gyro connection
1209 * ARGUMENT  : *pst_data      : Gyro Connect Status Notification Data
1210 *           : p_data_master_set_n  : Data Master Set Notification(Callback function)
1211 * NOTE      :
1212 * RETURN    : void
1213 ******************************************************************************/
1214 void  VehicleSensSetDataMasterGyroConnectStatus(const LSDRV_MSG_LSDATA_DAT_GYRO_CONNECT_STATUS *pst_data, PFUNC_DMASTER_SET_SHARED_MEMORY p_data_master_set_shared_memory) {  // LCOV_EXCL_START 8: dead code.  // NOLINT(whitespace/line_length)
1215     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1216     u_int8  uc_chg_type;
1217
1218     if ((pst_data != NULL) &&
1219             (p_data_master_set_shared_memory != NULL)) {
1220         if (pst_data->ul_did == VEHICLE_DID_GYRO_CONNECT_STATUS) {
1221             uc_chg_type = VehicleSensSetGyroConnectStatus(pst_data);
1222             /* As MAIN GPS interrupt signals are not registered for delivery,          */
1223             /* Disposal quantity,To avoid risks,DeliveryProc shall not be called.  */
1224             (*p_data_master_set_shared_memory)(pst_data->ul_did, uc_chg_type);
1225         } else {
1226             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1227         }
1228     } else {
1229         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
1230     }
1231 }
1232 // LCOV_EXCL_STOP
1233
1234 /*******************************************************************************
1235 * MODULE    : VehicleSensSetDataMasterGpsAntennaStatus
1236 * ABSTRACT  : Vehicle Sensor Data Master GPS Antenna Connection Status Setting Processing
1237 * FUNCTION  : Setting the GPS Antenna Connection Status
1238 * ARGUMENT  : *pst_data      : GPS antenna connection status notification data
1239 *           : p_data_master_set_n  : Data Master Set Notification(Callback function)
1240 * NOTE      :
1241 * RETURN    : void
1242 ******************************************************************************/
1243 void  VehicleSensSetDataMasterGpsAntennaStatus(const LSDRV_MSG_LSDATA_DAT_GPS_ANTENNA_STATUS *pst_data, PFUNC_DMASTER_SET_N p_data_master_set_n) {  // LCOV_EXCL_START 8: dead code.  // NOLINT(whitespace/line_length)
1244     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1245     u_int8  uc_chg_type;
1246
1247     if ((pst_data != NULL) && (p_data_master_set_n != NULL)) {
1248         if (pst_data->ul_did == POSHAL_DID_GPS_ANTENNA) {
1249             uc_chg_type = VehicleSensSetGpsAntennaStatus(pst_data);
1250             (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
1251         } else {
1252             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1253         }
1254     } else {
1255         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
1256     }
1257 }
1258 // LCOV_EXCL_STOP
1259
1260 /*******************************************************************************
1261 * MODULE    : VehicleSensGetDataMaster
1262 * ABSTRACT  : Vehicle Sensor Data Master Get Processing
1263 * FUNCTION  : Provide vehicle sensor data master
1264 * ARGUMENT  : ul_did    : Data ID corresponding to the vehicle information
1265 *           : uc_get_method  : Data collection way
1266 *           :          VEHICLESENS_GETMETHOD_CAN:  CAN communication
1267 *           :          VEHICLESENS_GETMETHOD_LINE:  LineSensor drivers
1268 *           : *pst_data    : Pointer to the data master provider
1269 * NOTE      :
1270 * RETURN    : void
1271 ******************************************************************************/
1272 void  VehicleSensGetDataMaster(DID ul_did,
1273                                     u_int8 uc_get_method,
1274                                     VEHICLESENS_DATA_MASTER *pst_data) {
1275     /*------------------------------------------------------*/
1276     /*  Call the data Get processing associated with the DID        */
1277     /*------------------------------------------------------*/
1278     switch (ul_did) {  // LCOV_EXCL_BR_LINE 6:some DID is not used
1279             /*------------------------------------------------------*/
1280             /*  Vehicle sensor data group                  */
1281             /*------------------------------------------------------*/
1282         case POSHAL_DID_SPEED_PULSE:
1283         {
1284             VehicleSensGetSpeedPulse(pst_data, uc_get_method);
1285             break;
1286         }
1287 //        case POSHAL_DID_GYRO_X:
1288 //        {
1289 //            VehicleSensGetGyroX(pst_data, uc_get_method);
1290 //            break;
1291 //        }
1292         case POSHAL_DID_GYRO_Y:
1293         {
1294             VehicleSensGetGyroY(pst_data, uc_get_method);
1295             break;
1296         }
1297         case POSHAL_DID_GYRO_Z:
1298         {
1299             VehicleSensGetGyroZ(pst_data, uc_get_method);
1300             break;
1301         }
1302         case POSHAL_DID_GYRO_X:
1303         case POSHAL_DID_GYRO_EXT:    /* 3 to 14bit A/D value,0bit:REV */
1304         {
1305             VehicleSensGetGyroRev(pst_data, uc_get_method);
1306             break;
1307         }
1308         case POSHAL_DID_GSNS_X:
1309         {
1310             VehicleSensGetGsnsX(pst_data, uc_get_method);
1311             break;
1312         }
1313         case POSHAL_DID_GSNS_Y:
1314         {
1315             VehicleSensGetGsnsY(pst_data, uc_get_method);
1316             break;
1317         }
1318         case POSHAL_DID_GSNS_Z:
1319         {
1320             VehicleSensGetGsnsZ(pst_data, uc_get_method);
1321             break;
1322         }
1323         case POSHAL_DID_REV:
1324         {
1325             VehicleSensGetRev(pst_data, uc_get_method);
1326             break;
1327         }
1328         case POSHAL_DID_SPEED_PULSE_FLAG:
1329         {
1330             /* Data acquisition not selected */
1331             VehicleSensGetSpeedPulseFlag(pst_data);
1332             break;
1333         }
1334         case POSHAL_DID_GPS_ANTENNA:
1335         {
1336             VehicleSensGetGpsAntenna(pst_data, uc_get_method);
1337             break;
1338         }
1339         case POSHAL_DID_SNS_COUNTER:
1340         {
1341             VehicleSensGetSnsCounter(pst_data, uc_get_method);
1342             break;
1343         }
1344         case POSHAL_DID_GPS_INTERRUPT_FLAG:
1345         {
1346             // LCOV_EXCL_START 8 : dead code
1347             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1348             /* Data acquisition not selected */
1349             VehicleSensGetGpsInterruptFlag(pst_data);
1350             break;
1351             // LCOV_EXCL_STOP
1352         }
1353         case POSHAL_DID_SPEED_KMPH:
1354         {
1355             VehicleSensGetSpeedKmph(pst_data, uc_get_method);
1356             break;
1357         }
1358         case POSHAL_DID_GYRO_TEMP:
1359         {
1360             VehicleSensGetGyroTemp(pst_data, uc_get_method);
1361             break;
1362         }
1363         case POSHAL_DID_PULSE_TIME:
1364         {
1365             VehicleSensGetPulseTime(pst_data, uc_get_method);
1366             break;
1367         }
1368         case VEHICLE_DID_LOCATION_LONLAT:
1369         case VEHICLE_DID_LOCATION_LONLAT_NAVI:
1370         {
1371             VehicleSensGetLocationLonLat(pst_data, uc_get_method);
1372             break;
1373         }
1374         case VEHICLE_DID_LOCATION_ALTITUDE:
1375         case VEHICLE_DID_LOCATION_ALTITUDE_NAVI:
1376         {
1377             VehicleSensGetLocationAltitude(pst_data, uc_get_method);
1378             break;
1379         }
1380         case VEHICLE_DID_MOTION_SPEED_NAVI:
1381         case VEHICLE_DID_MOTION_SPEED_INTERNAL:
1382         {
1383             VehicleSensGetMotionSpeed(pst_data, uc_get_method);
1384             break;
1385         }
1386         case VEHICLE_DID_MOTION_HEADING:
1387         case VEHICLE_DID_MOTION_HEADING_NAVI:
1388         {
1389             VehicleSensGetMotionHeading(pst_data, uc_get_method);
1390             break;
1391         }
1392         case VEHICLE_DID_SETTINGTIME:
1393         {
1394             VehicleSensGetSettingTime(pst_data, uc_get_method);
1395             break;
1396         }
1397
1398         default:
1399             break;
1400     }
1401 }
1402
1403 #if CONFIG_SENSOR_EXT_VALID        /* Initial Sensor Support */
1404 /*******************************************************************************
1405 * MODULE    : VehicleSensGetDataMasterExt
1406 * ABSTRACT  : Vehicle Sensor Data Master Get Processing(Initial delivery)
1407 * FUNCTION  : Provide vehicle sensor data master
1408 * ARGUMENT  : ul_did    : Data ID corresponding to the vehicle information
1409 *           : uc_get_method  : Data collection way
1410 *           :          VEHICLESENS_GETMETHOD_CAN:  CAN communication
1411 *           :          VEHICLESENS_GETMETHOD_LINE:  LineSensor drivers
1412 *           :          VEHICLESENS_GETMETHOD_NAVI:  Navi
1413 *           :          VEHICLESENS_GETMETHOD_CLOCK:Clock
1414 *           : *pst_data    : Pointer to the data master provider
1415 * NOTE      :
1416 * RETURN    : void
1417 ******************************************************************************/
1418 void  VehicleSensGetDataMasterExt(DID ul_did,
1419                                         u_int8 uc_get_method,
1420                                         VEHICLESENS_DATA_MASTER_EXT *pst_data) {
1421     /*------------------------------------------------------*/
1422     /*  Call the data Get processing associated with the DID        */
1423     /*------------------------------------------------------*/
1424     switch (ul_did) {
1425             /*------------------------------------------------------*/
1426             /*  Vehicle sensor data group                  */
1427             /*------------------------------------------------------*/
1428         case POSHAL_DID_SPEED_PULSE:
1429         {
1430             VehicleSensGetSpeedPulseExt(pst_data, uc_get_method);
1431             break;
1432         }
1433         case POSHAL_DID_GSNS_X:
1434         {
1435             VehicleSensGetGsnsXExt(pst_data, uc_get_method);
1436             break;
1437         }
1438         case POSHAL_DID_GSNS_Y:
1439         {
1440             VehicleSensGetGsnsYExt(pst_data, uc_get_method);
1441             break;
1442         }
1443         case POSHAL_DID_GSNS_Z:
1444         {
1445             VehicleSensGetGsnsZExt(pst_data, uc_get_method);
1446             break;
1447         }
1448         case POSHAL_DID_SNS_COUNTER:
1449         {
1450             VehicleSensGetSnsCounterExt(pst_data, uc_get_method);
1451             break;
1452         }
1453         case POSHAL_DID_GYRO_X:
1454         case POSHAL_DID_GYRO_EXT:    /* 3 to 14bit A/D value,0bit:REV */
1455         {
1456             VehicleSensGetGyroExt(pst_data, uc_get_method);
1457             break;
1458         }
1459         case POSHAL_DID_GYRO_Y:
1460         {
1461             VehicleSensGetGyroYExt(pst_data, uc_get_method);
1462             break;
1463         }
1464         case POSHAL_DID_GYRO_Z:
1465         {
1466             VehicleSensGetGyroZExt(pst_data, uc_get_method);
1467             break;
1468         }
1469         case POSHAL_DID_REV:
1470         {
1471             VehicleSensGetRevExt(pst_data, uc_get_method);
1472             break;
1473         }
1474         case POSHAL_DID_GYRO_TEMP:
1475         {
1476             VehicleSensGetGyroTempExt(pst_data, uc_get_method);
1477             break;
1478         }
1479         case POSHAL_DID_PULSE_TIME:
1480         {
1481             VehicleSensGetPulseTimeExt(pst_data, uc_get_method);
1482             break;
1483         }
1484         default:  /* Ignore->MISRA-C++:2008 Rule 6-3-1, 6-4-1 */
1485             break;
1486     }
1487 }
1488
1489 /*******************************************************************************
1490 * MODULE    : VehicleSensGetDataMasterFst
1491 * ABSTRACT  : Vehicle Sensor Data Master Get Processing(Initial transmission data)
1492 * FUNCTION  : Provide vehicle sensor data master
1493 * ARGUMENT  : ul_did    : Data ID corresponding to the vehicle information
1494 *           : uc_get_method  : Data collection way
1495 *           :          VEHICLESENS_GETMETHOD_CAN:  CAN communication
1496 *           :          VEHICLESENS_GETMETHOD_LINE:  LineSensor drivers
1497 *           : *pst_data    : Pointer to the data master provider
1498 * NOTE      :
1499 * RETURN    : void
1500 ******************************************************************************/
1501 void  VehicleSensGetDataMasterFst(DID ul_did,
1502                                         u_int8 uc_get_method,
1503                                         VEHICLESENS_DATA_MASTER_FST *pst_data) {
1504     /*------------------------------------------------------*/
1505     /*  Call the data Get processing associated with the DID        */
1506     /*------------------------------------------------------*/
1507     switch (ul_did) {
1508             /*------------------------------------------------------*/
1509             /*  Vehicle sensor data group                  */
1510             /*------------------------------------------------------*/
1511         case POSHAL_DID_GYRO_X_FST:    /* 3 to 14bit A/D value,0bit:REV */
1512         {
1513             VehicleSensGetGyroXFst(pst_data, uc_get_method);
1514             break;
1515         }
1516         case POSHAL_DID_GYRO_Y_FST:    /* 3 to 14bit A/D value,0bit:REV */
1517         {
1518             VehicleSensGetGyroYFst(pst_data, uc_get_method);
1519             break;
1520         }
1521         case POSHAL_DID_GYRO_Z_FST:    /* 3 to 14bit A/D value,0bit:REV */
1522         {
1523             VehicleSensGetGyroZFst(pst_data, uc_get_method);
1524             break;
1525         }
1526         case POSHAL_DID_SPEED_PULSE_FST:
1527         {
1528             VehicleSensGetSpeedPulseFst(pst_data, uc_get_method);
1529             break;
1530         }
1531         case POSHAL_DID_SPEED_PULSE_FLAG_FST:
1532         {
1533             VehicleSensGetSpeedPulseFlagFst(pst_data, uc_get_method);
1534             break;
1535         }
1536         case POSHAL_DID_REV_FST:
1537         {
1538             VehicleSensGetRevFst(pst_data, uc_get_method);
1539             break;
1540         }
1541         case POSHAL_DID_GYRO_TEMP_FST:
1542         {
1543             VehicleSensGetGyroTempFst(pst_data, uc_get_method);
1544             break;
1545         }
1546         case POSHAL_DID_GSNS_X_FST:
1547         {
1548             VehicleSensGetGsnsXFst(pst_data, uc_get_method);
1549             break;
1550         }
1551         case POSHAL_DID_GSNS_Y_FST:
1552         {
1553             VehicleSensGetGsnsYFst(pst_data, uc_get_method);
1554             break;
1555         }
1556         case POSHAL_DID_GSNS_Z_FST:
1557         {
1558             VehicleSensGetGsnsZFst(pst_data, uc_get_method);
1559             break;
1560         }
1561         default:
1562             break;
1563     }
1564 }
1565 #endif
1566
1567 /*******************************************************************************
1568 * MODULE    : VehicleSensGetGpsDataMaster
1569 * ABSTRACT  : Vehicle Sensor Data Master GPS Data Get Processing
1570 * FUNCTION  : Provide vehicle sensor data master GPS data
1571 * ARGUMENT  : ul_did    : Data ID corresponding to the vehicle information
1572 *           : uc_get_method  : Data collection way
1573 *           :          VEHICLESENS_GETMETHOD_GPS:  GPS
1574 *           : *pst_data    : Pointer to the data master provider
1575 * NOTE      :
1576 * RETURN    : void
1577 ******************************************************************************/
1578 void  VehicleSensGetGpsDataMaster(DID ul_did,
1579                                         u_int8 uc_get_method,
1580                                         SENSOR_MSG_GPSDATA_DAT *pst_data) {
1581     /*------------------------------------------------------*/
1582     /*  Call the data Get processing associated with the DID        */
1583     /*------------------------------------------------------*/
1584     switch (ul_did) {  // LCOV_EXCL_BR_LINE 6:some DID is not used
1585             /*------------------------------------------------------*/
1586             /*  GPS data group                      */
1587             /*------------------------------------------------------*/
1588
1589         case VEHICLE_DID_GPS_UBLOX_NAV_VELNED:
1590         {
1591             // LCOV_EXCL_START 8 : dead code
1592             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1593             VehicleSensGetNavVelnedG(pst_data);
1594             break;
1595             // LCOV_EXCL_STOP
1596         }
1597         case VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC:
1598         {
1599             // LCOV_EXCL_START 8 : dead code
1600             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1601             VehicleSensGetNavTimeUtcG(pst_data);
1602             break;
1603             // LCOV_EXCL_STOP
1604         }
1605         case VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS:
1606         {
1607             // LCOV_EXCL_START 8 : dead code
1608             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1609             VehicleSensGetNavTimeGpsG(pst_data);
1610             break;
1611             // LCOV_EXCL_STOP
1612         }
1613         case VEHICLE_DID_GPS_UBLOX_NAV_SVINFO:
1614         {
1615             // LCOV_EXCL_START 8 : dead code
1616             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1617             VehicleSensGetNavSvInfoG(pst_data);
1618             break;
1619             // LCOV_EXCL_STOP
1620         }
1621         case VEHICLE_DID_GPS_UBLOX_NAV_STATUS:
1622         {
1623             // LCOV_EXCL_START 8 : dead code
1624             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1625             VehicleSensGetNavStatusG(pst_data);
1626             break;
1627             // LCOV_EXCL_STOP
1628         }
1629         case VEHICLE_DID_GPS_UBLOX_NAV_POSLLH:
1630         {
1631             // LCOV_EXCL_START 8 : dead code
1632             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1633             VehicleSensGetNavPosllhG(pst_data);
1634             break;
1635             // LCOV_EXCL_STOP
1636         }
1637         case VEHICLE_DID_GPS_UBLOX_NAV_CLOCK:
1638         {
1639             // LCOV_EXCL_START 8 : dead code
1640             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1641             VehicleSensGetNavClockG(pst_data);
1642             break;
1643             // LCOV_EXCL_STOP
1644         }
1645         case VEHICLE_DID_GPS_UBLOX_NAV_DOP:
1646         {
1647             // LCOV_EXCL_START 8 : dead code
1648             AGL_ASSERT_NOT_TESTED();
1649             VehicleSensGetNavDopG(pst_data);
1650             break;
1651             // LCOV_EXCL_STOP
1652         }
1653         case VEHICLE_DID_GPS_UBLOX_MON_HW:
1654         {
1655             // LCOV_EXCL_START 8 : dead code
1656             AGL_ASSERT_NOT_TESTED();
1657             VehicleSensGetMonHwG(pst_data);
1658             break;
1659             // LCOV_EXCL_STOP
1660         }
1661         case VEHICLE_DID_GPS_COUNTER:
1662         {
1663             // LCOV_EXCL_START 8 : dead code
1664             AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1665             VehicleSensGetGpsCounterg(pst_data);
1666             break;
1667             // LCOV_EXCL_STOP
1668         }
1669         case VEHICLE_DID_GPS__CWORD82__NMEA:
1670         {
1671             VehicleSensGetGps_CWORD82_NmeaG(pst_data);
1672             break;
1673         }
1674         case POSHAL_DID_GPS__CWORD82__FULLBINARY:
1675         {
1676             VehicleSensGetGps_CWORD82_FullBinaryG(pst_data);
1677             break;
1678         }
1679         case POSHAL_DID_GPS__CWORD82___CWORD44_GP4:
1680         {
1681             VehicleSensGetGps_CWORD82__CWORD44_Gp4G(pst_data);
1682             break;
1683         }
1684         case VEHICLE_DID_NAVIINFO_DIAG_GPS:
1685         {
1686             VehicleSensGetNaviinfoDiagGPSg(pst_data);
1687             break;
1688         }
1689         case POSHAL_DID_GPS_TIME:
1690         {
1691             VehicleSensGetGpsTimeG(pst_data);
1692             break;
1693         }
1694         case POSHAL_DID_GPS_TIME_RAW:
1695         {
1696             VehicleSensGetGpsTimeRawG(pst_data);
1697             break;
1698         }
1699         case POSHAL_DID_GPS_NMEA:
1700         {
1701             VehicleSensGetGpsNmeaG(pst_data);
1702             break;
1703         }
1704         case POSHAL_DID_GPS_WKNROLLOVER:
1705         {
1706             VehicleSensGetWknRolloverG(pst_data);
1707             break;
1708         }
1709         case POSHAL_DID_GPS_CLOCK_DRIFT:
1710         {
1711             VehicleSensGetGpsClockDriftG(pst_data);
1712             break;
1713         }
1714         case POSHAL_DID_GPS_CLOCK_FREQ:
1715         {
1716             VehicleSensGetGpsClockFreqG(pst_data);
1717             break;
1718         }
1719         default:
1720             break;
1721     }
1722 }
1723
1724 /*******************************************************************************
1725 * MODULE    : VehicleSensGetDataMasterGyroTrouble
1726 * ABSTRACT  : Vehicle Sensor Data Master Gyro Failure Status Get Processing
1727 * FUNCTION  : Provide a gyro fault condition
1728 * ARGUMENT  : ul_did    : Data ID
1729 *           : uc_get_method  : Data collection way(Not used)
1730 *           :          VEHICLESENS_GETMETHOD_CAN  :  CAN communication
1731 *           :          VEHICLESENS_GETMETHOD_LINE  :  LineSensor drivers
1732 *           :          VEHICLESENS_GETMETHOD_GPS  :  GPS
1733 *           : *pst_data    : Pointer to the data master provider
1734 * NOTE      :
1735 * RETURN    : void
1736 ******************************************************************************/
1737 void  VehicleSensGetDataMasterGyroTrouble(DID ul_did, u_int8 uc_get_method, VEHICLESENS_DATA_MASTER_GYRO_TROUBLE *pst_data) {  // LCOV_EXCL_START 8: dead code.  // NOLINT(whitespace/line_length)
1738     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1739     if (pst_data != NULL) {
1740         if (ul_did == VEHICLE_DID_GYRO_TROUBLE) {
1741             VehicleSensGetGyroTrouble(pst_data);
1742         } else {
1743             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
1744         }
1745     } else {
1746         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
1747     }
1748 }
1749
1750 /*******************************************************************************
1751 * MODULE    : VehicleSensGetDataMasterSysGpsInterruptSignal
1752 * ABSTRACT  : Vehicle Sensor Data Master SYS GPS Interrupt Signal Get Processing
1753 * FUNCTION  : Provide SYS GPS interrupt signals
1754 * ARGUMENT  : ul_did    : Data ID
1755 *           : uc_get_method  : Data collection way(Not used)
1756 *           :          VEHICLESENS_GETMETHOD_CAN  :  CAN communication
1757 *           :          VEHICLESENS_GETMETHOD_LINE  :  LineSensor drivers
1758 *           :          VEHICLESENS_GETMETHOD_GPS  :  GPS
1759 *           : *pst_data    : Pointer to the data master provider
1760 * NOTE      :
1761 * RETURN    : void
1762 ******************************************************************************/
1763 void  VehicleSensGetDataMasterSysGpsInterruptSignal(DID ul_did,
1764         u_int8 uc_get_method,
1765         VEHICLESENS_DATA_MASTER_GPS_INTERRUPT_SIGNAL *pst_data) {
1766     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1767     if (pst_data != NULL) {
1768         if (ul_did == VEHICLE_DID_SYS_GPS_INTERRUPT_SIGNAL) {
1769             VehicleSensGetSysGpsInterruptSignal(pst_data);
1770         } else {
1771             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
1772         }
1773     } else {
1774         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
1775     }
1776 }
1777
1778 /*******************************************************************************
1779 * MODULE    : VehicleSensGetDataMasterMainGpsInterruptSignal
1780 * ABSTRACT  : Vehicle Sensor Data Master MAIN GPS Interrupt Signal Get Processing
1781 * FUNCTION  : Provide MAIN GPS interrupt signals
1782 * ARGUMENT  : ul_did    : Data ID
1783 *           : uc_get_method  : Data collection way(Not used)
1784 *           :          VEHICLESENS_GETMETHOD_CAN  :  CAN communication
1785 *           :          VEHICLESENS_GETMETHOD_LINE  :  LineSensor drivers
1786 *           :          VEHICLESENS_GETMETHOD_GPS  :  GPS
1787 *           : *pst_data    : Pointer to the data master provider
1788 * NOTE      :
1789 * RETURN    : void
1790 ******************************************************************************/
1791 void  VehicleSensGetDataMasterMainGpsInterruptSignal(DID ul_did,
1792         u_int8 uc_get_method,
1793         VEHICLESENS_DATA_MASTER_GPS_INTERRUPT_SIGNAL *pst_data) {
1794     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1795     if (pst_data != NULL) {
1796         if (ul_did == VEHICLE_DID_MAIN_GPS_INTERRUPT_SIGNAL) {
1797             VehicleSensGetMainGpsInterruptSignal(pst_data);
1798         } else {
1799             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
1800         }
1801     } else {
1802         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
1803     }
1804 }
1805
1806 /*******************************************************************************
1807 * MODULE    : VehicleSensGetDataMasterGyroConnectStatus
1808 * ABSTRACT  : Vehicle Sensor Data Master Gyro Connection Status Get Processing
1809 * FUNCTION  : Provide the status of the gyro connection
1810 * ARGUMENT  : ul_did    : Data ID
1811 *           : uc_get_method  : Data collection way(Not used)
1812 *           :          VEHICLESENS_GETMETHOD_CAN  :  CAN communication
1813 *           :          VEHICLESENS_GETMETHOD_LINE  :  LineSensor drivers
1814 *           :          VEHICLESENS_GETMETHOD_GPS  :  GPS
1815 *           : *pst_data    : Pointer to the data master provider
1816 * NOTE      :
1817 * RETURN    : void
1818 ******************************************************************************/
1819 void  VehicleSensGetDataMasterGyroConnectStatus(DID ul_did,
1820         u_int8 uc_get_method,
1821         VEHICLESENS_DATA_MASTER_GYRO_CONNECT_STATUS *pst_data) {
1822     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1823     if (pst_data != NULL) {
1824         if (ul_did == VEHICLE_DID_GYRO_CONNECT_STATUS) {
1825             VehicleSensGetGyroConnectStatus(pst_data);
1826         } else {
1827             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x)\r\n", ul_did);
1828         }
1829     } else {
1830         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
1831     }
1832 }
1833
1834 /*******************************************************************************
1835 * MODULE    : VehicleSensGetDataMasterGpsAntennaStatus
1836 * ABSTRACT  : Vehicle Sensor Data Master GPS Antenna Connection Status Get Processing
1837 * FUNCTION  : Provide GPS antenna connection status
1838 * ARGUMENT  : ul_did    : Data ID
1839 *           : uc_get_method  : Data collection way(Not used)
1840 *           :          VEHICLESENS_GETMETHOD_CAN  :  CAN communication
1841 *           :          VEHICLESENS_GETMETHOD_LINE  :  LineSensor drivers
1842 *           :          VEHICLESENS_GETMETHOD_GPS  :  GPS
1843 *           : *pst_data    : Pointer to the data master provider
1844 * NOTE      :
1845 * RETURN    : void
1846 ******************************************************************************/
1847 void  VehicleSensGetDataMasterGpsAntennaStatus(DID ul_did,
1848         u_int8 uc_get_method,
1849         VEHICLESENS_DATA_MASTER_GPS_ANTENNA_STATUS *pst_data) {
1850     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
1851     if (pst_data != NULL) {
1852         if (ul_did == POSHAL_DID_GPS_ANTENNA) {
1853             VehicleSensGetGpsAntennaStatus(pst_data);
1854         } else {
1855             FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
1856         }
1857     } else {
1858         FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
1859     }
1860 }
1861 // LCOV_EXCL_STOP
1862
1863 /**
1864  * @brief
1865  *   Sensor counter acquisition
1866  *
1867  * @return  Sensor Counter
1868  *
1869  */
1870 static uint8_t VehicleSensGetSensorCnt(void) {
1871     VEHICLESENS_DATA_MASTER      st_data;
1872     uint8_t sensCnt;
1873
1874     /* Synchronous counter acquisition */
1875     VehicleSensGetSnsCounterl(&st_data);
1876
1877     sensCnt = st_data.uc_data[0];
1878
1879     return sensCnt;
1880 }