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_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 ******************************************************************************/
32 #include <vehicle_service/positioning_base_library.h>
33 #include "VehicleSens_DataMaster.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"
44 #include "DiagSrvIf.h"
46 /*************************************************/
48 /*************************************************/
49 #if CONFIG_SENSOR_EXT_VALID /* Initial Sensor Support */
50 VEHICLESENS_PKG_DELIVERY_TEMP_EXT gstPkgTempExt; // NOLINT(readability/nolint)
56 /*************************************************/
57 /* Function prototype */
58 /*************************************************/
59 static uint8_t VehicleSensGetSensorCnt(void);
62 /*******************************************************************************
63 * MODULE : VehicleSensInitDataMaster
64 * ABSTRACT : Vehicle sensor data master initialization
65 * FUNCTION : Initializing Vehicle Sensor Data Master
69 ******************************************************************************/
70 void VehicleSensInitDataMaster(void) {
71 /* Vehicle sensor data master initialization */
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();
106 /* ++ GPS _CWORD82_ support */
107 VehicleSensInitGps_CWORD82_FullBinaryG();
108 VehicleSensInitGps_CWORD82_NmeaG();
109 VehicleSensInitGps_CWORD82__CWORD44_Gp4G();
110 VehicleSensInitGpsNmeaG();
111 /* -- GPS _CWORD82_ support */
113 /* ++ PastModel002 support */
114 VehicleSensInitNavVelnedG();
115 VehicleSensInitNavTimeUtcG();
116 VehicleSensInitNavTimeGpsG();
117 VehicleSensInitNavSvInfoG();
118 VehicleSensInitNavStatusG();
119 VehicleSensInitNavPosllhG();
120 VehicleSensInitNavClockG();
121 VehicleSensInitNavDopG();
122 VehicleSensInitMonHwG();
124 VehicleSensInitSpeedPulseFlag();
125 VehicleSensInitGpsInterruptFlag();
127 VehicleSensInitGyroTrouble();
128 VehicleSensInitMainGpsInterruptSignal();
129 VehicleSensInitSysGpsInterruptSignal();
130 VehicleSensInitGyroConnectStatus();
131 VehicleSensInitGpsAntennaStatus();
132 /* -- PastModel002 support */
134 VehicleSensInitGyroTempFstl();
135 VehicleSensInitGyroTempExtl();
136 VehicleSensInitGyroTempl();
137 VehicleSensInitPulseTimeExtl();
138 VehicleSensInitPulseTimel();
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();
157 VehicleSens_InitLocationInfoNmea_n();
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)
168 ******************************************************************************/
169 void VehicleSensSetDataMasterLineSens(const LSDRV_LSDATA *pst_data,
170 PFUNC_DMASTER_SET_N p_data_master_set_n,
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:
181 uc_chg_type = VehicleSensSetSpeedPulsel(pst_data);
182 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
186 // case POSHAL_DID_GYRO_X:
188 // uc_chg_type = VehicleSensSetGyroXl(pst_data);
189 // (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
192 case POSHAL_DID_GYRO_Y:
194 uc_chg_type = VehicleSensSetGyroYl(pst_data);
195 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
198 case POSHAL_DID_GYRO_Z:
200 uc_chg_type = VehicleSensSetGyroZl(pst_data);
201 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
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");
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 */
216 case POSHAL_DID_GPS_ANTENNA:
218 uc_chg_type = VehicleSensSetGpsAntennal(pst_data);
219 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
222 case POSHAL_DID_GYRO_X:
223 case POSHAL_DID_GYRO_EXT: /* 3 to 14bit A/D value,0bit:REV */
225 uc_chg_type = VehicleSensSetGyroRevl(pst_data);
226 // if (b_sens_ext == TRUE) {
227 // VehicleSensSetGyroExtl(pst_data);
229 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
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)
245 ******************************************************************************/
246 void VehicleSensSetDataMasterLineSensG(const LSDRV_LSDATA_G *pst_data,
247 PFUNC_DMASTER_SET_N p_data_master_set_n,
250 SENSORMOTION_SPEEDINFO_DAT stSpeed;
251 const VEHICLESENS_DATA_MASTER* pst_master;
252 u_int16 usSP_KMPH = 0; /* Vehicle speed(km/h) */
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:
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");
265 if (b_sens_ext == TRUE) {
266 VehicleSensSetSpeedPulseExtlG(pst_data);
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 */
274 case POSHAL_DID_SPEED_KMPH:
276 uc_chg_type = VehicleSensSetSpeedKmphlG(pst_data);
277 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
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;
286 stSpeed.isEnable = TRUE;
287 memcpy(&usSP_KMPH, pst_master->uc_data, sizeof(u_int16));
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);
293 uc_chg_type = VehicleSensSetMotionSpeedI(&stSpeed);
294 (*p_data_master_set_n)(VEHICLE_DID_MOTION_SPEED_INTERNAL, uc_chg_type, VEHICLESENS_GETMETHOD_INTERNAL);
297 // case POSHAL_DID_GYRO_X:
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");
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 */
309 case POSHAL_DID_GYRO_Y:
311 uc_chg_type = VehicleSensSetGyroYlG(pst_data);
312 if (b_sens_ext == TRUE) {
313 VehicleSensSetGyroYExtlG(pst_data);
316 FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_GYRO_Y \r\n");
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);
322 case POSHAL_DID_GYRO_Z:
324 uc_chg_type = VehicleSensSetGyroZlG(pst_data);
325 if (b_sens_ext == TRUE) {
326 VehicleSensSetGyroZExtlG(pst_data);
329 FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_GYRO_Z \r\n");
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);
335 case POSHAL_DID_SNS_COUNTER:
337 #if (DR_DEBUG == 1) /* PastModel002_DR_VEHICLE */
338 FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_SNS_COUNTER \r\n");
340 uc_chg_type = VehicleSensSetSnsCounterlG(pst_data);
341 if (b_sens_ext == TRUE) {
342 VehicleSensSetSnsCounterExtlG(pst_data);
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 */
350 case POSHAL_DID_GYRO_X:
351 case POSHAL_DID_GYRO_EXT: /* 3 to 14bit A/D value,0bit:REV */
353 uc_chg_type = VehicleSensSetGyroRevlG(pst_data);
355 if (b_sens_ext == TRUE) {
356 VehicleSensSetGyroExtlG(pst_data);
358 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
363 case POSHAL_DID_SPEED_PULSE_FLAG:
365 uc_chg_type = VehicleSensSetSpeedPulseFlag((const LSDRV_LSDATA_G *)pst_data);
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 */
374 case POSHAL_DID_GPS_INTERRUPT_FLAG:
376 uc_chg_type = VehicleSensSetGpsInterruptFlag((const LSDRV_LSDATA_G *)pst_data);
378 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
384 uc_chg_type = VehicleSensSetRevlG(pst_data);
385 if (b_sens_ext == TRUE) {
386 VehicleSensSetRevExtlG(pst_data);
388 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
391 case POSHAL_DID_GYRO_TEMP:
393 uc_chg_type = VehicleSensSetGyroTemplG(pst_data);
394 if (b_sens_ext == TRUE) {
395 VehicleSensSetGyroTempExtlG(pst_data);
397 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
400 case POSHAL_DID_GSNS_X:
402 uc_chg_type = VehicleSensSetGsnsXlG(pst_data);
403 if (b_sens_ext == TRUE) {
404 VehicleSensSetGsnsXExtlG(pst_data);
406 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
409 case POSHAL_DID_GSNS_Y:
411 uc_chg_type = VehicleSensSetGsnsYlG(pst_data);
412 if (b_sens_ext == TRUE) {
413 VehicleSensSetGsnsYExtlG(pst_data);
415 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
418 case POSHAL_DID_GSNS_Z:
420 uc_chg_type = VehicleSensSetGsnsZlG(pst_data);
421 if (b_sens_ext == TRUE) {
422 VehicleSensSetGsnsZExtlG(pst_data);
424 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
427 case POSHAL_DID_PULSE_TIME:
429 uc_chg_type = VehicleSensSetPulseTimelG(pst_data);
430 if (b_sens_ext == TRUE) {
431 VehicleSensSetPulseTimeExtlG(pst_data);
433 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
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)
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
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 */
462 uc_chg_type = VehicleSensSetGyroXFstl(pst_data);
463 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
466 case POSHAL_DID_GYRO_Y_FST: /* 3 to 14bit A/D value,0bit:REV */
468 uc_chg_type = VehicleSensSetGyroYFstl(pst_data);
469 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
472 case POSHAL_DID_GYRO_Z_FST: /* 3 to 14bit A/D value,0bit:REV */
474 uc_chg_type = VehicleSensSetGyroZFstl(pst_data);
475 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
478 case POSHAL_DID_SPEED_PULSE_FST:
480 uc_chg_type = VehicleSensSetSpeedPulseFstl(pst_data);
481 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
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)
497 ******************************************************************************/
498 void VehicleSensSetDataMasterLineSensFstG(const LSDRV_MSG_LSDATA_DAT_FST *pst_data,
499 PFUNC_DMASTER_SET_N p_data_master_set_n) {
502 /* Internal debug log output */
503 FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__, "+");
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:
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)
515 (*p_data_master_set_n)(pst_data->st_gyro_x.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
523 switch (pst_data->st_gyro_y.ul_did) {
524 case POSHAL_DID_GYRO_Y_FST:
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);
536 switch (pst_data->st_gyro_z.ul_did) {
537 case POSHAL_DID_GYRO_Z_FST:
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);
549 switch (pst_data->st_speed.ul_did) {
550 case POSHAL_DID_SPEED_PULSE_FST:
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)
555 (*p_data_master_set_n)(pst_data->st_speed.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
563 switch (pst_data->st_spd_pulse_flg.ul_did) {
564 case POSHAL_DID_SPEED_PULSE_FLAG_FST:
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)
569 (*p_data_master_set_n)(pst_data->st_spd_pulse_flg.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
577 switch (pst_data->st_rev.ul_did) {
578 case POSHAL_DID_REV_FST:
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)
583 (*p_data_master_set_n)(pst_data->st_rev.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
591 switch (pst_data->st_gyro_temp.ul_did) {
592 case POSHAL_DID_GYRO_TEMP_FST:
594 uc_chg_type = VehicleSensSetGyroTempFstG(&(pst_data->st_gyro_temp));
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);
605 switch (pst_data->st_gsns_x.ul_did) {
606 case POSHAL_DID_GSNS_X_FST:
608 uc_chg_type = VehicleSensSetGsnsXFstG(&(pst_data->st_gsns_x));
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);
619 switch (pst_data->st_gsns_y.ul_did) {
620 case POSHAL_DID_GSNS_Y_FST:
622 uc_chg_type = VehicleSensSetGsnsYFstG(&(pst_data->st_gsns_y));
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);
633 switch (pst_data->st_gsns_z.ul_did) {
634 case POSHAL_DID_GSNS_Z_FST:
636 uc_chg_type = VehicleSensSetGsnsZFstG(&(pst_data->st_gsns_z));
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);
647 /* Internal debug log output */
648 FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__, "-");
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)
660 ******************************************************************************/
661 void VehicleSensSetDataMasterGps(SENSOR_MSG_GPSDATA_DAT *pst_data,
662 PFUNC_DMASTER_SET_N p_data_master_set_n) {
664 SENSORLOCATION_LONLATINFO_DAT lstLonLat;
665 SENSORLOCATION_ALTITUDEINFO_DAT lstAltitude;
666 SENSORMOTION_HEADINGINFO_DAT lstHeading;
667 MDEV_GPS_CUSTOMDATA *pstCustomData;
669 VEHICLESENS_DATA_MASTER st_data;
670 u_int8 antennaState = 0;
671 u_int8 sensCount = 0;
672 u_int8 ucResult = SENSLOG_RES_SUCCESS;
674 EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusFail;
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];
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];
691 FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__,
692 "antennaState = %d, sensCount = %d", antennaState, sensCount);
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:
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");
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 */
715 case VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC:
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");
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 */
731 case VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS:
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");
739 uc_chg_type = VehicleSensSetNavTimeGpsG(pst_data);
740 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
744 case VEHICLE_DID_GPS_UBLOX_NAV_SVINFO:
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");
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 */
760 case VEHICLE_DID_GPS_UBLOX_NAV_STATUS:
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");
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 */
776 case VEHICLE_DID_GPS_UBLOX_NAV_POSLLH:
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");
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 */
792 case VEHICLE_DID_GPS_UBLOX_NAV_CLOCK:
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");
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 */
808 case VEHICLE_DID_GPS_UBLOX_NAV_DOP:
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");
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 */
824 case VEHICLE_DID_GPS_UBLOX_MON_HW:
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");
831 uc_chg_type = VehicleSensSetMonHwG(pst_data);
832 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
836 case VEHICLE_DID_GPS_COUNTER:
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);
845 /* GPS raw data(_CWORD82_ NMEA) */
846 case VEHICLE_DID_GPS__CWORD82__NMEA:
849 FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__,
850 "VehicleSens_GpsDataDelivery VEHICLE_DID_GPS__CWORD82__NMEA -->");
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));
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 <--");
863 /* GPS raw data(FullBinary) */
864 case POSHAL_DID_GPS__CWORD82__FULLBINARY:
867 FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__,
868 "VehicleSens_GpsDataDelivery POSHAL_DID_GPS__CWORD82__FULLBINARY -->");
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));
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 <--");
881 /* GPS raw data(Specific information) */
882 case POSHAL_DID_GPS__CWORD82___CWORD44_GP4:
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);
889 case POSHAL_DID_GPS_CUSTOMDATA:
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);
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);
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);
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);
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);
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);
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);
935 /* GPS raw data(NMEA except _CWORD82_) */
936 case POSHAL_DID_GPS_NMEA:
939 uc_chg_type = VehicleSensSetGpsNmeaG(pst_data);
940 (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
943 /* GPS version(except _CWORD82_) */
944 case POSHAL_DID_GPS_VERSION:
946 VehicleSensSetGpsVersion(pst_data);
949 /* Raw GPS time data */
950 case POSHAL_DID_GPS_TIME_RAW:
952 (void)VehicleSensSetGpsTimeRawG(reinterpret_cast<SENSOR_GPSTIME_RAW*>(pst_data->uc_data));
955 case POSHAL_DID_GPS_TIME:
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);
961 case POSHAL_DID_GPS_WKNROLLOVER:
963 (void)VehicleSensSetWknRolloverG(reinterpret_cast<SENSOR_WKNROLLOVER*>(pst_data->uc_data));
966 /* GPS clock drift */
967 case POSHAL_DID_GPS_CLOCK_DRIFT:
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);
973 /* GPS clock frequency */
974 case POSHAL_DID_GPS_CLOCK_FREQ:
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);
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)
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;
1008 // char* pEnvPositioning_CWORD86_ = NULL;
1012 EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusFail;
1014 u_int8 ucResult = SENSLOG_RES_SUCCESS;
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:
1024 pstPosData = (const POS_POSDATA *) & (pstMsg->data);
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);
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);
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);
1064 ( *p_data_master_set_n )( POSHAL_DID_GPS_CUSTOMDATA_NAVI, VEHICLESENS_NEQ, VEHICLESENS_GETMETHOD_NAVI );
1068 case VEHICLE_DID_MOTION_SPEED_NAVI:
1070 pucSpeed = (const u_int16 *) & (pstMsg->data);
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);
1082 case POSHAL_DID_GPS_TIME:
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);
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);
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);
1103 case VEHICLE_DID_SETTINGTIME:
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);
1111 case VEHICLE_DID_LOCATIONINFO_NMEA_NAVI:
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 );
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)
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
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);
1142 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1145 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
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)
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
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);
1168 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1171 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
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)
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
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);
1197 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1200 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
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)
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
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);
1226 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1229 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
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)
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
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);
1252 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
1255 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
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
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:
1284 VehicleSensGetSpeedPulse(pst_data, uc_get_method);
1287 // case POSHAL_DID_GYRO_X:
1289 // VehicleSensGetGyroX(pst_data, uc_get_method);
1292 case POSHAL_DID_GYRO_Y:
1294 VehicleSensGetGyroY(pst_data, uc_get_method);
1297 case POSHAL_DID_GYRO_Z:
1299 VehicleSensGetGyroZ(pst_data, uc_get_method);
1302 case POSHAL_DID_GYRO_X:
1303 case POSHAL_DID_GYRO_EXT: /* 3 to 14bit A/D value,0bit:REV */
1305 VehicleSensGetGyroRev(pst_data, uc_get_method);
1308 case POSHAL_DID_GSNS_X:
1310 VehicleSensGetGsnsX(pst_data, uc_get_method);
1313 case POSHAL_DID_GSNS_Y:
1315 VehicleSensGetGsnsY(pst_data, uc_get_method);
1318 case POSHAL_DID_GSNS_Z:
1320 VehicleSensGetGsnsZ(pst_data, uc_get_method);
1323 case POSHAL_DID_REV:
1325 VehicleSensGetRev(pst_data, uc_get_method);
1328 case POSHAL_DID_SPEED_PULSE_FLAG:
1330 /* Data acquisition not selected */
1331 VehicleSensGetSpeedPulseFlag(pst_data);
1334 case POSHAL_DID_GPS_ANTENNA:
1336 VehicleSensGetGpsAntenna(pst_data, uc_get_method);
1339 case POSHAL_DID_SNS_COUNTER:
1341 VehicleSensGetSnsCounter(pst_data, uc_get_method);
1344 case POSHAL_DID_GPS_INTERRUPT_FLAG:
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);
1353 case POSHAL_DID_SPEED_KMPH:
1355 VehicleSensGetSpeedKmph(pst_data, uc_get_method);
1358 case POSHAL_DID_GYRO_TEMP:
1360 VehicleSensGetGyroTemp(pst_data, uc_get_method);
1363 case POSHAL_DID_PULSE_TIME:
1365 VehicleSensGetPulseTime(pst_data, uc_get_method);
1368 case VEHICLE_DID_LOCATION_LONLAT:
1369 case VEHICLE_DID_LOCATION_LONLAT_NAVI:
1371 VehicleSensGetLocationLonLat(pst_data, uc_get_method);
1374 case VEHICLE_DID_LOCATION_ALTITUDE:
1375 case VEHICLE_DID_LOCATION_ALTITUDE_NAVI:
1377 VehicleSensGetLocationAltitude(pst_data, uc_get_method);
1380 case VEHICLE_DID_MOTION_SPEED_NAVI:
1381 case VEHICLE_DID_MOTION_SPEED_INTERNAL:
1383 VehicleSensGetMotionSpeed(pst_data, uc_get_method);
1386 case VEHICLE_DID_MOTION_HEADING:
1387 case VEHICLE_DID_MOTION_HEADING_NAVI:
1389 VehicleSensGetMotionHeading(pst_data, uc_get_method);
1392 case VEHICLE_DID_SETTINGTIME:
1394 VehicleSensGetSettingTime(pst_data, uc_get_method);
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
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 /*------------------------------------------------------*/
1425 /*------------------------------------------------------*/
1426 /* Vehicle sensor data group */
1427 /*------------------------------------------------------*/
1428 case POSHAL_DID_SPEED_PULSE:
1430 VehicleSensGetSpeedPulseExt(pst_data, uc_get_method);
1433 case POSHAL_DID_GSNS_X:
1435 VehicleSensGetGsnsXExt(pst_data, uc_get_method);
1438 case POSHAL_DID_GSNS_Y:
1440 VehicleSensGetGsnsYExt(pst_data, uc_get_method);
1443 case POSHAL_DID_GSNS_Z:
1445 VehicleSensGetGsnsZExt(pst_data, uc_get_method);
1448 case POSHAL_DID_SNS_COUNTER:
1450 VehicleSensGetSnsCounterExt(pst_data, uc_get_method);
1453 case POSHAL_DID_GYRO_X:
1454 case POSHAL_DID_GYRO_EXT: /* 3 to 14bit A/D value,0bit:REV */
1456 VehicleSensGetGyroExt(pst_data, uc_get_method);
1459 case POSHAL_DID_GYRO_Y:
1461 VehicleSensGetGyroYExt(pst_data, uc_get_method);
1464 case POSHAL_DID_GYRO_Z:
1466 VehicleSensGetGyroZExt(pst_data, uc_get_method);
1469 case POSHAL_DID_REV:
1471 VehicleSensGetRevExt(pst_data, uc_get_method);
1474 case POSHAL_DID_GYRO_TEMP:
1476 VehicleSensGetGyroTempExt(pst_data, uc_get_method);
1479 case POSHAL_DID_PULSE_TIME:
1481 VehicleSensGetPulseTimeExt(pst_data, uc_get_method);
1484 default: /* Ignore->MISRA-C++:2008 Rule 6-3-1, 6-4-1 */
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
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 /*------------------------------------------------------*/
1508 /*------------------------------------------------------*/
1509 /* Vehicle sensor data group */
1510 /*------------------------------------------------------*/
1511 case POSHAL_DID_GYRO_X_FST: /* 3 to 14bit A/D value,0bit:REV */
1513 VehicleSensGetGyroXFst(pst_data, uc_get_method);
1516 case POSHAL_DID_GYRO_Y_FST: /* 3 to 14bit A/D value,0bit:REV */
1518 VehicleSensGetGyroYFst(pst_data, uc_get_method);
1521 case POSHAL_DID_GYRO_Z_FST: /* 3 to 14bit A/D value,0bit:REV */
1523 VehicleSensGetGyroZFst(pst_data, uc_get_method);
1526 case POSHAL_DID_SPEED_PULSE_FST:
1528 VehicleSensGetSpeedPulseFst(pst_data, uc_get_method);
1531 case POSHAL_DID_SPEED_PULSE_FLAG_FST:
1533 VehicleSensGetSpeedPulseFlagFst(pst_data, uc_get_method);
1536 case POSHAL_DID_REV_FST:
1538 VehicleSensGetRevFst(pst_data, uc_get_method);
1541 case POSHAL_DID_GYRO_TEMP_FST:
1543 VehicleSensGetGyroTempFst(pst_data, uc_get_method);
1546 case POSHAL_DID_GSNS_X_FST:
1548 VehicleSensGetGsnsXFst(pst_data, uc_get_method);
1551 case POSHAL_DID_GSNS_Y_FST:
1553 VehicleSensGetGsnsYFst(pst_data, uc_get_method);
1556 case POSHAL_DID_GSNS_Z_FST:
1558 VehicleSensGetGsnsZFst(pst_data, uc_get_method);
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
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 /*------------------------------------------------------*/
1589 case VEHICLE_DID_GPS_UBLOX_NAV_VELNED:
1591 // LCOV_EXCL_START 8 : dead code
1592 AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
1593 VehicleSensGetNavVelnedG(pst_data);
1597 case VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC:
1599 // LCOV_EXCL_START 8 : dead code
1600 AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
1601 VehicleSensGetNavTimeUtcG(pst_data);
1605 case VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS:
1607 // LCOV_EXCL_START 8 : dead code
1608 AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
1609 VehicleSensGetNavTimeGpsG(pst_data);
1613 case VEHICLE_DID_GPS_UBLOX_NAV_SVINFO:
1615 // LCOV_EXCL_START 8 : dead code
1616 AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
1617 VehicleSensGetNavSvInfoG(pst_data);
1621 case VEHICLE_DID_GPS_UBLOX_NAV_STATUS:
1623 // LCOV_EXCL_START 8 : dead code
1624 AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
1625 VehicleSensGetNavStatusG(pst_data);
1629 case VEHICLE_DID_GPS_UBLOX_NAV_POSLLH:
1631 // LCOV_EXCL_START 8 : dead code
1632 AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
1633 VehicleSensGetNavPosllhG(pst_data);
1637 case VEHICLE_DID_GPS_UBLOX_NAV_CLOCK:
1639 // LCOV_EXCL_START 8 : dead code
1640 AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
1641 VehicleSensGetNavClockG(pst_data);
1645 case VEHICLE_DID_GPS_UBLOX_NAV_DOP:
1647 // LCOV_EXCL_START 8 : dead code
1648 AGL_ASSERT_NOT_TESTED();
1649 VehicleSensGetNavDopG(pst_data);
1653 case VEHICLE_DID_GPS_UBLOX_MON_HW:
1655 // LCOV_EXCL_START 8 : dead code
1656 AGL_ASSERT_NOT_TESTED();
1657 VehicleSensGetMonHwG(pst_data);
1661 case VEHICLE_DID_GPS_COUNTER:
1663 // LCOV_EXCL_START 8 : dead code
1664 AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
1665 VehicleSensGetGpsCounterg(pst_data);
1669 case VEHICLE_DID_GPS__CWORD82__NMEA:
1671 VehicleSensGetGps_CWORD82_NmeaG(pst_data);
1674 case POSHAL_DID_GPS__CWORD82__FULLBINARY:
1676 VehicleSensGetGps_CWORD82_FullBinaryG(pst_data);
1679 case POSHAL_DID_GPS__CWORD82___CWORD44_GP4:
1681 VehicleSensGetGps_CWORD82__CWORD44_Gp4G(pst_data);
1684 case VEHICLE_DID_NAVIINFO_DIAG_GPS:
1686 VehicleSensGetNaviinfoDiagGPSg(pst_data);
1689 case POSHAL_DID_GPS_TIME:
1691 VehicleSensGetGpsTimeG(pst_data);
1694 case POSHAL_DID_GPS_TIME_RAW:
1696 VehicleSensGetGpsTimeRawG(pst_data);
1699 case POSHAL_DID_GPS_NMEA:
1701 VehicleSensGetGpsNmeaG(pst_data);
1704 case POSHAL_DID_GPS_WKNROLLOVER:
1706 VehicleSensGetWknRolloverG(pst_data);
1709 case POSHAL_DID_GPS_CLOCK_DRIFT:
1711 VehicleSensGetGpsClockDriftG(pst_data);
1714 case POSHAL_DID_GPS_CLOCK_FREQ:
1716 VehicleSensGetGpsClockFreqG(pst_data);
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
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);
1743 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
1746 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
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
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);
1771 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
1774 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
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
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);
1799 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
1802 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
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
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);
1827 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x)\r\n", ul_did);
1830 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
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
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);
1855 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
1858 FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
1865 * Sensor counter acquisition
1867 * @return Sensor Counter
1870 static uint8_t VehicleSensGetSensorCnt(void) {
1871 VEHICLESENS_DATA_MASTER st_data;
1874 /* Synchronous counter acquisition */
1875 VehicleSensGetSnsCounterl(&st_data);
1877 sensCnt = st_data.uc_data[0];