summaryrefslogtreecommitdiffstats
path: root/vehicleservice/positioning/server/src/Sensor/VehicleSens_DataMasterMain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vehicleservice/positioning/server/src/Sensor/VehicleSens_DataMasterMain.cpp')
-rw-r--r--vehicleservice/positioning/server/src/Sensor/VehicleSens_DataMasterMain.cpp1880
1 files changed, 1880 insertions, 0 deletions
diff --git a/vehicleservice/positioning/server/src/Sensor/VehicleSens_DataMasterMain.cpp b/vehicleservice/positioning/server/src/Sensor/VehicleSens_DataMasterMain.cpp
new file mode 100644
index 00000000..7bf40d1d
--- /dev/null
+++ b/vehicleservice/positioning/server/src/Sensor/VehicleSens_DataMasterMain.cpp
@@ -0,0 +1,1880 @@
+/*
+ * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*******************************************************************************
+ * File name :VehicleSens_DataMasterMain.cpp
+ * System name :_CWORD107_
+ * Subsystem name :Vehicle sensor process
+ * Program name :Vehicle sensor data master
+ * Module configuration :VehicleSensInitDataMaster() Vehicle data master initialization function
+ * :VehicleSensSetDataMasterCan() Vehicle sensor data master CAN data set processing
+ * :VehicleSensSetDataMasterLineSens() Vehicle sensor data master LineSensor data set process
+ * :VehicleSensSetDataMasterGps() Vehicle Sensor Data Master GPS Data Set Processing
+ * :VehicleSensGetDataMaster() Vehicle Sensor Data Master Get Processing
+ * :VehicleSensGetGpsDataMaster() Vehicle Sensor Data Master GPS Data Get Processing
+ * :VehicleSensGetGps_CWORD82_NmeaSensorCnt() Vehicle sensor GPS_sensor counter GET function
+ * :VehicleSensSetDataMaster_CWORD82_() Vehicle sensor data master GPS data (_CWORD82_) set processing
+ ******************************************************************************/
+
+#include <vehicle_service/positioning_base_library.h>
+#include "VehicleSens_DataMaster.h"
+#include "gps_hal.h"
+#include "POS_private.h"
+#include "DeadReckoning_main.h"
+#include "VehicleSens_DeliveryCtrl.h"
+#include "Vehicle_API.h"
+#include "CommonDefine.h"
+#include <vehicle_service/POS_common_API.h>
+#include "SensorMotion_API.h"
+#include "SensorLog.h"
+#include "ClockIf.h"
+#include "DiagSrvIf.h"
+
+/*************************************************/
+/* Global variable */
+/*************************************************/
+#if CONFIG_SENSOR_EXT_VALID /* Initial Sensor Support */
+VEHICLESENS_PKG_DELIVERY_TEMP_EXT gstPkgTempExt; // NOLINT(readability/nolint)
+#endif
+
+#define DR_DEBUG 0
+#define GPS_DEBUG 0
+
+/*************************************************/
+/* Function prototype */
+/*************************************************/
+static uint8_t VehicleSensGetSensorCnt(void);
+
+
+/*******************************************************************************
+* MODULE : VehicleSensInitDataMaster
+* ABSTRACT : Vehicle sensor data master initialization
+* FUNCTION : Initializing Vehicle Sensor Data Master
+* ARGUMENT : void
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensInitDataMaster(void) {
+ /* Vehicle sensor data master initialization */
+
+ VehicleSensInitSpeedPulsel();
+ VehicleSensInitSpeedKmphl();
+ VehicleSensInitGyroXl();
+ VehicleSensInitGyroYl();
+ VehicleSensInitGyroZl();
+ VehicleSensInitGsnsXl();
+ VehicleSensInitGsnsYl();
+ VehicleSensInitGsnsZl();
+ VehicleSensInitRevl();
+ VehicleSensInitGpsAntennal();
+ VehicleSensInitSnsCounterl();
+ VehicleSensInitGpsCounterg();
+#if CONFIG_SENSOR_EXT_VALID /* Initial Sensor Support */
+ VehicleSensInitGyroRevl();
+ VehicleSensInitSnsCounterExtl();
+ VehicleSensInitGyroExtl();
+ VehicleSensInitGyroYExtl();
+ VehicleSensInitGyroZExtl();
+ VehicleSensInitSpeedPulseExtl();
+ VehicleSensInitRevExtl();
+ VehicleSensInitGsnsXExtl();
+ VehicleSensInitGsnsYExtl();
+ VehicleSensInitGsnsZExtl();
+ VehicleSensInitGsnsXFstl();
+ VehicleSensInitGsnsYFstl();
+ VehicleSensInitGsnsZFstl();
+ VehicleSensInitGyroXFstl();
+ VehicleSensInitGyroYFstl();
+ VehicleSensInitGyroZFstl();
+ VehicleSensInitSpeedPulseFstl();
+ VehicleSensInitSpeedPulseFlagFstl();
+ VehicleSensInitRevFstl();
+#endif
+ /* ++ GPS _CWORD82_ support */
+ VehicleSensInitGps_CWORD82_FullBinaryG();
+ VehicleSensInitGps_CWORD82_NmeaG();
+ VehicleSensInitGps_CWORD82__CWORD44_Gp4G();
+ VehicleSensInitGpsNmeaG();
+ /* -- GPS _CWORD82_ support */
+
+ /* ++ PastModel002 support */
+ VehicleSensInitNavVelnedG();
+ VehicleSensInitNavTimeUtcG();
+ VehicleSensInitNavTimeGpsG();
+ VehicleSensInitNavSvInfoG();
+ VehicleSensInitNavStatusG();
+ VehicleSensInitNavPosllhG();
+ VehicleSensInitNavClockG();
+ VehicleSensInitNavDopG();
+ VehicleSensInitMonHwG();
+
+ VehicleSensInitSpeedPulseFlag();
+ VehicleSensInitGpsInterruptFlag();
+
+ VehicleSensInitGyroTrouble();
+ VehicleSensInitMainGpsInterruptSignal();
+ VehicleSensInitSysGpsInterruptSignal();
+ VehicleSensInitGyroConnectStatus();
+ VehicleSensInitGpsAntennaStatus();
+ /* -- PastModel002 support */
+
+ VehicleSensInitGyroTempFstl();
+ VehicleSensInitGyroTempExtl();
+ VehicleSensInitGyroTempl();
+ VehicleSensInitPulseTimeExtl();
+ VehicleSensInitPulseTimel();
+
+ VehicleSensInitLocationLonLatG();
+ VehicleSensInitLocationAltitudeG();
+ VehicleSensInitMotionSpeedG();
+ VehicleSensInitMotionHeadingG();
+ VehicleSensInitNaviinfoDiagGPSg();
+ VehicleSensInitGpsTimeG();
+ VehicleSensInitGpsTimeRawG();
+ VehicleSensInitWknRolloverG();
+ VehicleSensInitLocationLonLatN();
+ VehicleSensInitLocationAltitudeN();
+ VehicleSensInitMotionSpeedN();
+ VehicleSensInitMotionHeadingN();
+ VehicleSensInitSettingTimeclock();
+ VehicleSensInitMotionSpeedI();
+ VehicleSensInitGpsClockDriftG();
+ VehicleSensInitGpsClockFreqG();
+
+ VehicleSens_InitLocationInfoNmea_n();
+}
+
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterLineSens
+* ABSTRACT : Vehicle sensor data master LineSensor data set process
+* FUNCTION : Set LineSensor data
+* ARGUMENT : *pst_data : LineSensor Vehicle Signal Notification Data
+* : p_data_master_set_n : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensSetDataMasterLineSens(const LSDRV_LSDATA *pst_data,
+ PFUNC_DMASTER_SET_N p_data_master_set_n,
+ BOOL b_sens_ext) {
+ u_int8 uc_chg_type;
+
+ /*------------------------------------------------------*/
+ /* Call the data set processing associated with the DID */
+ /* Call the data master set notification process */
+ /*------------------------------------------------------*/
+ switch (pst_data->ul_did) {
+ case POSHAL_DID_SPEED_PULSE:
+ {
+ uc_chg_type = VehicleSensSetSpeedPulsel(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+
+ break;
+ }
+// case POSHAL_DID_GYRO_X:
+// {
+// uc_chg_type = VehicleSensSetGyroXl(pst_data);
+// (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+// break;
+// }
+ case POSHAL_DID_GYRO_Y:
+ {
+ uc_chg_type = VehicleSensSetGyroYl(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_GYRO_Z:
+ {
+ uc_chg_type = VehicleSensSetGyroZl(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_REV:
+ {
+ uc_chg_type = VehicleSensSetRevl(pst_data);
+#if (DR_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_REV \r\n");
+#endif
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ /* -- PastModel002 support DR */
+ break;
+ }
+ case POSHAL_DID_GPS_ANTENNA:
+ {
+ uc_chg_type = VehicleSensSetGpsAntennal(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_GYRO_X:
+ case POSHAL_DID_GYRO_EXT: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ uc_chg_type = VehicleSensSetGyroRevl(pst_data);
+// if (b_sens_ext == TRUE) {
+// VehicleSensSetGyroExtl(pst_data);
+// }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterLineSensG
+* ABSTRACT : Vehicle sensor data master LineSensor data set process
+* FUNCTION : Set LineSensor data
+* ARGUMENT : *pst_data : LineSensor Vehicle Signal Notification Data
+* : p_data_master_set_n : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensSetDataMasterLineSensG(const LSDRV_LSDATA_G *pst_data,
+ PFUNC_DMASTER_SET_N p_data_master_set_n,
+ BOOL b_sens_ext) {
+ u_int8 uc_chg_type;
+ SENSORMOTION_SPEEDINFO_DAT stSpeed;
+ const VEHICLESENS_DATA_MASTER* pst_master;
+ u_int16 usSP_KMPH = 0; /* Vehicle speed(km/h) */
+
+ /*------------------------------------------------------*/
+ /* Call the data set processing associated with the DID */
+ /* Call the data master set notification process */
+ /*------------------------------------------------------*/
+ switch (pst_data->ul_did) {
+ case POSHAL_DID_SPEED_PULSE:
+ {
+ uc_chg_type = VehicleSensSetSpeedPulselG(pst_data);
+#if (DR_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_SPEED_PULSE \r\n");
+#endif
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetSpeedPulseExtlG(pst_data);
+ }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ /* -- PastModel002 support DR */
+ break;
+ }
+ case POSHAL_DID_SPEED_KMPH:
+ {
+ uc_chg_type = VehicleSensSetSpeedKmphlG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+
+ /* Set the data master of Motion Seepd (Internal) */
+ pst_master = (const VEHICLESENS_DATA_MASTER*)pst_data;
+ memset(&stSpeed, 0x00, sizeof(SENSORMOTION_SPEEDINFO_DAT));
+ /* When the notified size is ""0"",The vehicle speed cannot be calculated with the line sensor. */
+ if (pst_master->us_size == 0) {
+ stSpeed.isEnable = FALSE;
+ } else {
+ stSpeed.isEnable = TRUE;
+ memcpy(&usSP_KMPH, pst_master->uc_data, sizeof(u_int16));
+ }
+ stSpeed.getMethod = SENSOR_GET_METHOD_POS;
+ /* Unit conversion [0.01km/h] -> [0.01m/s] */
+ stSpeed.Speed = static_cast<uint16_t>((1000 * usSP_KMPH) / 3600);
+
+ uc_chg_type = VehicleSensSetMotionSpeedI(&stSpeed);
+ (*p_data_master_set_n)(VEHICLE_DID_MOTION_SPEED_INTERNAL, uc_chg_type, VEHICLESENS_GETMETHOD_INTERNAL);
+ break;
+ }
+// case POSHAL_DID_GYRO_X:
+// {
+// uc_chg_type = VehicleSensSetGyroXlG(pst_data);
+//#if (DR_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+// FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_GYRO_X \r\n");
+//#endif
+// (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+// /* ++ PastModel002 support DR */
+// VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+// /* -- PastModel002 support DR */
+// break;
+// }
+ case POSHAL_DID_GYRO_Y:
+ {
+ uc_chg_type = VehicleSensSetGyroYlG(pst_data);
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetGyroYExtlG(pst_data);
+ }
+#if (DR_DEBUG == 1)
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_GYRO_Y \r\n");
+#endif
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_GYRO_Z:
+ {
+ uc_chg_type = VehicleSensSetGyroZlG(pst_data);
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetGyroZExtlG(pst_data);
+ }
+#if (DR_DEBUG == 1)
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_GYRO_Z \r\n");
+#endif
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_SNS_COUNTER:
+ {
+#if (DR_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster POSHAL_DID_SNS_COUNTER \r\n");
+#endif
+ uc_chg_type = VehicleSensSetSnsCounterlG(pst_data);
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetSnsCounterExtlG(pst_data);
+ }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ /* -- PastModel002 support DR */
+ break;
+ }
+ case POSHAL_DID_GYRO_X:
+ case POSHAL_DID_GYRO_EXT: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ uc_chg_type = VehicleSensSetGyroRevlG(pst_data);
+
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetGyroExtlG(pst_data);
+ }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+
+ break;
+ }
+
+ case POSHAL_DID_SPEED_PULSE_FLAG:
+ {
+ uc_chg_type = VehicleSensSetSpeedPulseFlag((const LSDRV_LSDATA_G *)pst_data);
+
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ /* -- PastModel002 support DR */
+
+ break;
+ }
+ case POSHAL_DID_GPS_INTERRUPT_FLAG:
+ {
+ uc_chg_type = VehicleSensSetGpsInterruptFlag((const LSDRV_LSDATA_G *)pst_data);
+
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+
+ break;
+ }
+ case POSHAL_DID_REV:
+ {
+ uc_chg_type = VehicleSensSetRevlG(pst_data);
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetRevExtlG(pst_data);
+ }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_GYRO_TEMP:
+ {
+ uc_chg_type = VehicleSensSetGyroTemplG(pst_data);
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetGyroTempExtlG(pst_data);
+ }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_GSNS_X:
+ {
+ uc_chg_type = VehicleSensSetGsnsXlG(pst_data);
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetGsnsXExtlG(pst_data);
+ }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_GSNS_Y:
+ {
+ uc_chg_type = VehicleSensSetGsnsYlG(pst_data);
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetGsnsYExtlG(pst_data);
+ }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_GSNS_Z:
+ {
+ uc_chg_type = VehicleSensSetGsnsZlG(pst_data);
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetGsnsZExtlG(pst_data);
+ }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_PULSE_TIME:
+ {
+ uc_chg_type = VehicleSensSetPulseTimelG(pst_data);
+ if (b_sens_ext == TRUE) {
+ VehicleSensSetPulseTimeExtlG(pst_data);
+ }
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+#if CONFIG_SENSOR_EXT_VALID /* Initial Sensor Support */
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterLineSensFst
+* ABSTRACT : Vehicle sensor data master LineSensor data set process
+* FUNCTION : Set LineSensor data
+* ARGUMENT : *pst_data : LineSensor Vehicle Signal Notification Data
+* : p_data_master_set_n : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+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)
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ u_int8 uc_chg_type;
+
+ /*------------------------------------------------------*/
+ /* Call the data set processing associated with the DID */
+ /* Call the data master set notification process */
+ /*------------------------------------------------------*/
+ switch (pst_data->ul_did) {
+ case POSHAL_DID_GYRO_X_FST: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ uc_chg_type = VehicleSensSetGyroXFstl(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_GYRO_Y_FST: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ uc_chg_type = VehicleSensSetGyroYFstl(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_GYRO_Z_FST: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ uc_chg_type = VehicleSensSetGyroZFstl(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ case POSHAL_DID_SPEED_PULSE_FST:
+ {
+ uc_chg_type = VehicleSensSetSpeedPulseFstl(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ break;
+ }
+ default:
+ break;
+ }
+}
+// LCOV_EXCL_STOP
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterLineSensFstG
+* ABSTRACT : Vehicle sensor data master LineSensor data set process
+* FUNCTION : Set LineSensor data
+* ARGUMENT : *pst_data : LineSensor Vehicle Signal Notification Data
+* : p_data_master_set_n : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensSetDataMasterLineSensFstG(const LSDRV_MSG_LSDATA_DAT_FST *pst_data,
+ PFUNC_DMASTER_SET_N p_data_master_set_n) {
+ u_int8 uc_chg_type;
+
+ /* Internal debug log output */
+ FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__, "+");
+
+ /*------------------------------------------------------*/
+ /* Call the data set processing associated with the DID */
+ /* Call the data master set notification process */
+ /*------------------------------------------------------*/
+ switch (pst_data->st_gyro_x.ul_did) {
+ case POSHAL_DID_GYRO_X_FST:
+ {
+ uc_chg_type = VehicleSensSetGyroXFstG(&(pst_data->st_gyro_x));
+ if (pst_data->st_gyro_x.uc_partition_max == pst_data->st_gyro_x.uc_partition_num)
+ {
+ (*p_data_master_set_n)(pst_data->st_gyro_x.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ switch (pst_data->st_gyro_y.ul_did) {
+ case POSHAL_DID_GYRO_Y_FST:
+ {
+ uc_chg_type = VehicleSensSetGyroYFstG(&(pst_data->st_gyro_y));
+ if (pst_data->st_gyro_y.uc_partition_max == pst_data->st_gyro_y.uc_partition_num) {
+ (*p_data_master_set_n)(pst_data->st_gyro_y.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ switch (pst_data->st_gyro_z.ul_did) {
+ case POSHAL_DID_GYRO_Z_FST:
+ {
+ uc_chg_type = VehicleSensSetGyroZFstG(&(pst_data->st_gyro_z));
+ if (pst_data->st_gyro_z.uc_partition_max == pst_data->st_gyro_z.uc_partition_num) {
+ (*p_data_master_set_n)(pst_data->st_gyro_z.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ switch (pst_data->st_speed.ul_did) {
+ case POSHAL_DID_SPEED_PULSE_FST:
+ {
+ uc_chg_type = VehicleSensSetSpeedPulseFstG(&(pst_data->st_speed));
+ if (pst_data->st_speed.uc_partition_max == pst_data->st_speed.uc_partition_num)
+ {
+ (*p_data_master_set_n)(pst_data->st_speed.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ switch (pst_data->st_spd_pulse_flg.ul_did) {
+ case POSHAL_DID_SPEED_PULSE_FLAG_FST:
+ {
+ uc_chg_type = VehicleSensSetSpeedPulseFlagFstG(&(pst_data->st_spd_pulse_flg));
+ if (pst_data->st_spd_pulse_flg.uc_partition_max == pst_data->st_spd_pulse_flg.uc_partition_num)
+ {
+ (*p_data_master_set_n)(pst_data->st_spd_pulse_flg.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ switch (pst_data->st_rev.ul_did) {
+ case POSHAL_DID_REV_FST:
+ {
+ uc_chg_type = VehicleSensSetRevFstG(&(pst_data->st_rev));
+ if (pst_data->st_rev.uc_partition_max == pst_data->st_rev.uc_partition_num)
+ {
+ (*p_data_master_set_n)(pst_data->st_rev.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ switch (pst_data->st_gyro_temp.ul_did) {
+ case POSHAL_DID_GYRO_TEMP_FST:
+ {
+ uc_chg_type = VehicleSensSetGyroTempFstG(&(pst_data->st_gyro_temp));
+
+ if (pst_data->st_gyro_temp.uc_partition_max == pst_data->st_gyro_temp.uc_partition_num) {
+ (*p_data_master_set_n)(pst_data->st_gyro_temp.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ switch (pst_data->st_gsns_x.ul_did) {
+ case POSHAL_DID_GSNS_X_FST:
+ {
+ uc_chg_type = VehicleSensSetGsnsXFstG(&(pst_data->st_gsns_x));
+
+ if (pst_data->st_gsns_x.uc_partition_max == pst_data->st_gsns_x.uc_partition_num) {
+ (*p_data_master_set_n)(pst_data->st_gsns_x.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ switch (pst_data->st_gsns_y.ul_did) {
+ case POSHAL_DID_GSNS_Y_FST:
+ {
+ uc_chg_type = VehicleSensSetGsnsYFstG(&(pst_data->st_gsns_y));
+
+ if (pst_data->st_gsns_y.uc_partition_max == pst_data->st_gsns_y.uc_partition_num) {
+ (*p_data_master_set_n)(pst_data->st_gsns_y.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ switch (pst_data->st_gsns_z.ul_did) {
+ case POSHAL_DID_GSNS_Z_FST:
+ {
+ uc_chg_type = VehicleSensSetGsnsZFstG(&(pst_data->st_gsns_z));
+
+ if (pst_data->st_gsns_z.uc_partition_max == pst_data->st_gsns_z.uc_partition_num) {
+ (*p_data_master_set_n)(pst_data->st_gsns_z.ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ /* Internal debug log output */
+ FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__, "-");
+}
+#endif
+
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterGps
+* ABSTRACT : Vehicle Sensor Data Master GPS Data Set Processing
+* FUNCTION : Set GPS data
+* ARGUMENT : *pst_data : GPS received message data
+* : p_data_master_set_n : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensSetDataMasterGps(SENSOR_MSG_GPSDATA_DAT *pst_data,
+ PFUNC_DMASTER_SET_N p_data_master_set_n) {
+ u_int8 uc_chg_type;
+ SENSORLOCATION_LONLATINFO_DAT lstLonLat;
+ SENSORLOCATION_ALTITUDEINFO_DAT lstAltitude;
+ SENSORMOTION_HEADINGINFO_DAT lstHeading;
+ MDEV_GPS_CUSTOMDATA *pstCustomData;
+
+ VEHICLESENS_DATA_MASTER st_data;
+ u_int8 antennaState = 0;
+ u_int8 sensCount = 0;
+ u_int8 ucResult = SENSLOG_RES_SUCCESS;
+
+ EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusFail;
+ BOOL bIsAvailable;
+ PNO us_pno;
+
+ /* Antenna Connection Information */
+ (void)memset(reinterpret_cast<void *>(&st_data), 0, sizeof(st_data));
+ VehicleSensGetGpsAntennal(&st_data);
+ antennaState = st_data.uc_data[0];
+
+ /* Sensor Counter */
+ (void)memset(reinterpret_cast<void *>(&st_data), 0, sizeof(st_data));
+ VehicleSensGetSnsCounterl(&st_data);
+ /** Sensor Counter Value Calculation */
+ /** Subtract sensor counter according to data amount from sensor counter.(Rounded off) */
+ /** Communication speed9600bps = 1200byte/s,Sensor counter is 1 count at 100ms. */
+ sensCount = st_data.uc_data[0];
+
+ FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__,
+ "antennaState = %d, sensCount = %d", antennaState, sensCount);
+
+ /*------------------------------------------------------*/
+ /* Call the data set processing associated with the DID */
+ /* Call the data master set notification process */
+ /*------------------------------------------------------*/
+ switch (pst_data->ul_did) { // LCOV_EXCL_BR_LINE 6:some DID is not used
+ case VEHICLE_DID_GPS_UBLOX_NAV_VELNED:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+#if (GPS_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
+ "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_VELNED \r\n");
+#endif
+ uc_chg_type = VehicleSensSetNavVelnedG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* -- PastModel002 support DR */
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+#if (GPS_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
+ "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC \r\n");
+#endif
+ uc_chg_type = VehicleSensSetNavTimeUtcG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* -- PastModel002 support DR */
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+#if (GPS_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
+ "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS \r\n");
+#endif
+ uc_chg_type = VehicleSensSetNavTimeGpsG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_SVINFO:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+#if (GPS_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
+ "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_SVINFO \r\n");
+#endif
+ uc_chg_type = VehicleSensSetNavSvInfoG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* -- PastModel002 support DR */
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_STATUS:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+#if (GPS_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
+ "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_STATUS \r\n");
+#endif
+ uc_chg_type = VehicleSensSetNavStatusG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* -- PastModel002 support DR */
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_POSLLH:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+#if (GPS_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
+ "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_POSLLH \r\n");
+#endif
+ uc_chg_type = VehicleSensSetNavPosllhG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* -- PastModel002 support DR */
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_CLOCK:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+#if (GPS_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
+ "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_CLOCK \r\n");
+#endif
+ uc_chg_type = VehicleSensSetNavClockG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* -- PastModel002 support DR */
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_DOP:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+#if (GPS_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
+ "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_NAV_DOP \r\n");
+#endif
+ uc_chg_type = VehicleSensSetNavDopG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* ++ PastModel002 support DR */
+ VehicleSensDeliveryProcDR(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ /* -- PastModel002 support DR */
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_MON_HW:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+#if (GPS_DEBUG == 1) /* PastModel002_DR_VEHICLE */
+ FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "VehicleSens_SetDataMaster VEHICLE_DID_GPS_UBLOX_MON_HW \r\n");
+#endif
+ uc_chg_type = VehicleSensSetMonHwG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_COUNTER:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ uc_chg_type = VehicleSensSetGpsCounterg(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ /* GPS raw data(_CWORD82_ NMEA) */
+ case VEHICLE_DID_GPS__CWORD82__NMEA:
+ {
+ /* NMEA data */
+ FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__,
+ "VehicleSens_GpsDataDelivery VEHICLE_DID_GPS__CWORD82__NMEA -->");
+
+ /* Insert Antenna Connection Status and Sensor Counter */
+ pst_data->uc_data[1] = antennaState; /* Insert Antennas into 2byte Eyes */
+ /* Place counters at 3byte */
+ pst_data->uc_data[2] = static_cast<u_int8>(sensCount - (u_int8)(((GPS_NMEA_SZ * 10) / 1200) + 1));
+
+ uc_chg_type = VehicleSensSetGps_CWORD82_NmeaG(pst_data); /* Ignore->MISRA-C++:2008 Rule 5-2-5 */
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__,
+ "VehicleSens_GpsDataDelivery VEHICLE_DID_GPS__CWORD82__NMEA <--");
+ break;
+ }
+ /* GPS raw data(FullBinary) */
+ case POSHAL_DID_GPS__CWORD82__FULLBINARY:
+ {
+ /* FullBin data */
+ FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__,
+ "VehicleSens_GpsDataDelivery POSHAL_DID_GPS__CWORD82__FULLBINARY -->");
+
+ /* Insert Antenna Connection Status and Sensor Counter */
+ pst_data->uc_data[0] = antennaState; /* Insert Antennas into 1byte Eyes */
+ /* Place counters at 2byte */
+ pst_data->uc_data[1] = static_cast<u_int8>(sensCount - (u_int8)(((GPS_CMD_FULLBIN_SZ * 10) / 1200) + 1));
+
+ uc_chg_type = VehicleSensSetGps_CWORD82_FullBinaryG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ FRAMEWORKUNIFIEDLOG(ZONE_27, __FUNCTION__,
+ "VehicleSens_GpsDataDelivery POSHAL_DID_GPS__CWORD82__FULLBINARY <--");
+ break;
+ }
+ /* GPS raw data(Specific information) */
+ case POSHAL_DID_GPS__CWORD82___CWORD44_GP4:
+ {
+ /* GPS-specific information */
+ uc_chg_type = VehicleSensSetGps_CWORD82__CWORD44_Gp4G(pst_data); /* Ignore->MISRA-C++:2008 Rule 5-2-5 */
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ break;
+ }
+ case POSHAL_DID_GPS_CUSTOMDATA:
+ {
+ pstCustomData = reinterpret_cast<MDEV_GPS_CUSTOMDATA*>(pst_data->uc_data);
+ /* Latitude/LongitudeInformation */
+ (void)memcpy(&lstLonLat, &(pstCustomData->st_lonlat), sizeof(SENSORLOCATION_LONLATINFO_DAT));
+ lstLonLat.SyncCnt = VehicleSensGetSensorCnt(); /* Synchronization counter setting */
+ uc_chg_type = VehicleSensSetLocationLonLatG(&lstLonLat);
+ (*p_data_master_set_n)(VEHICLE_DID_LOCATION_LONLAT, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+
+ /* Altitude information */
+ (void)memcpy(&lstAltitude, &(pstCustomData->st_altitude), sizeof(SENSORLOCATION_ALTITUDEINFO_DAT));
+ lstAltitude.SyncCnt = VehicleSensGetSensorCnt(); /* Synchronization counter setting */
+ uc_chg_type = VehicleSensSetLocationAltitudeG(&lstAltitude);
+ (*p_data_master_set_n)(VEHICLE_DID_LOCATION_ALTITUDE, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+
+ /* Bearing information */
+ (void)memcpy(&lstHeading, &(pstCustomData->st_heading), sizeof(SENSORMOTION_HEADINGINFO_DAT));
+ lstHeading.SyncCnt = VehicleSensGetSensorCnt(); /* Synchronization counter setting */
+ uc_chg_type = VehicleSensSetMotionHeadingG(&lstHeading);
+ (*p_data_master_set_n)(VEHICLE_DID_MOTION_HEADING, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+
+ /* GPS time information */
+ uc_chg_type = VehicleSensSetGpsTimeG(&(pstCustomData->st_gps_time));
+ (*p_data_master_set_n)(POSHAL_DID_GPS_TIME, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+
+ /* Set GPS time to CLOCK */
+ eStatus = ClockIfDtimeSetGpsTime(&(pstCustomData->st_gps_time), &bIsAvailable);
+ if ((bIsAvailable == TRUE) && (eStatus != eFrameworkunifiedStatusOK)) {
+ ucResult = SENSLOG_RES_FAIL;
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
+ "ClockIfDtimeSetGpsTime ERROR!! [ret=%d, y=%d, m=%d, d=%d, h=%d, n=%d, s=%d, sts=%d]",
+ eStatus, pstCustomData->st_gps_time.utc.year, pstCustomData->st_gps_time.utc.month,
+ pstCustomData->st_gps_time.utc.date,
+ pstCustomData->st_gps_time.utc.hour, pstCustomData->st_gps_time.utc.minute,
+ pstCustomData->st_gps_time.utc.second, pstCustomData->st_gps_time.tdsts);
+ }
+ us_pno = _pb_CnvName2Pno(SENSLOG_PNAME_CLOCK);
+ SensLogWriteOutputData(SENSLOG_DATA_O_TIME_CS, 0, us_pno,
+ reinterpret_cast<uint8_t *>(&(pstCustomData->st_gps_time)),
+ sizeof(pstCustomData->st_gps_time), ucResult);
+
+ /* Diag Info */
+ uc_chg_type = VehicleSensSetNaviinfoDiagGPSg(&(pstCustomData->st_diag_gps));
+ (*p_data_master_set_n)(VEHICLE_DID_NAVIINFO_DIAG_GPS, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ break;
+ }
+ /* GPS raw data(NMEA except _CWORD82_) */
+ case POSHAL_DID_GPS_NMEA:
+ {
+ /* NMEA data */
+ uc_chg_type = VehicleSensSetGpsNmeaG(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ break;
+ }
+ /* GPS version(except _CWORD82_) */
+ case POSHAL_DID_GPS_VERSION:
+ {
+ VehicleSensSetGpsVersion(pst_data);
+ break;
+ }
+ /* Raw GPS time data */
+ case POSHAL_DID_GPS_TIME_RAW:
+ {
+ (void)VehicleSensSetGpsTimeRawG(reinterpret_cast<SENSOR_GPSTIME_RAW*>(pst_data->uc_data));
+ break;
+ }
+ case POSHAL_DID_GPS_TIME:
+ {
+ uc_chg_type = VehicleSensSetGpsTimeG(reinterpret_cast<SENSOR_MSG_GPSTIME*>(pst_data->uc_data));
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ break;
+ }
+ case POSHAL_DID_GPS_WKNROLLOVER:
+ {
+ (void)VehicleSensSetWknRolloverG(reinterpret_cast<SENSOR_WKNROLLOVER*>(pst_data->uc_data));
+ break;
+ }
+ /* GPS clock drift */
+ case POSHAL_DID_GPS_CLOCK_DRIFT:
+ {
+ uc_chg_type = VehicleSensSetGpsClockDriftG(reinterpret_cast<int32_t*>(pst_data->uc_data));
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ break;
+ }
+ /* GPS clock frequency */
+ case POSHAL_DID_GPS_CLOCK_FREQ:
+ {
+ uc_chg_type = VehicleSensSetGpsClockFreqG(reinterpret_cast<uint32_t*>(pst_data->uc_data));
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+ break;
+ }
+
+ default:
+ break;
+ }
+}
+
+/*******************************************************************************
+ * MODULE : VehicleSensSetDataMasterData
+ * ABSTRACT : Vehicle sensor data master common data set processing
+ * FUNCTION : Set vehicle data
+ * ARGUMENT : *pstMsg : Received message data
+ * : p_data_master_set_n : Data Master Set Notification(Callback function)
+ * NOTE :
+ * RETURN : void
+ ******************************************************************************/
+void VehicleSensSetDataMasterData(const POS_MSGINFO *pstMsg,
+ PFUNC_DMASTER_SET_N p_data_master_set_n) {
+ u_int8 uc_chg_type = 0;
+ const POS_POSDATA *pstPosData = NULL;
+ const u_int16 *pucSpeed = 0;
+ SENSORLOCATION_LONLATINFO_DAT stLonLat;
+ SENSORLOCATION_ALTITUDEINFO_DAT stAltitude;
+ SENSORMOTION_SPEEDINFO_DAT stSpeed;
+ SENSORMOTION_HEADINGINFO_DAT stHeading;
+ const SENSOR_MSG_GPSTIME *pstGpsTime;
+
+// RET_API ret;
+
+// char* pEnvPositioning_CWORD86_ = NULL;
+// BOOL sndFlg;
+
+
+ EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusFail;
+ BOOL bIsAvailable;
+ u_int8 ucResult = SENSLOG_RES_SUCCESS;
+ PNO us_pno;
+
+ /*------------------------------------------------------*/
+ /* Call the data set processing associated with the DID */
+ /* Call the data master set notification process */
+ /*------------------------------------------------------*/
+ switch (pstMsg->did) {
+ case POSHAL_DID_GPS_CUSTOMDATA_NAVI:
+ {
+ pstPosData = (const POS_POSDATA *) & (pstMsg->data);
+
+ /* Latitude/LongitudeInformation */
+ if (((pstPosData->status & POS_LOC_INFO_LAT) == POS_LOC_INFO_LAT) ||
+ ((pstPosData->status & POS_LOC_INFO_LON) == POS_LOC_INFO_LON)) {
+ memset(&stLonLat, 0x00, sizeof(stLonLat));
+ stLonLat.getMethod = SENSOR_GET_METHOD_NAVI;
+ stLonLat.SyncCnt = VehicleSensGetSensorCnt();
+ stLonLat.isEnable = SENSORLOCATION_STATUS_ENABLE;
+ stLonLat.posSts = pstPosData->posSts;
+ stLonLat.posAcc = pstPosData->posAcc;
+ stLonLat.Longitude = pstPosData->longitude;
+ stLonLat.Latitude = pstPosData->latitude;
+ uc_chg_type = VehicleSensSetLocationLonLatN((const SENSORLOCATION_LONLATINFO_DAT *)&stLonLat);
+ (*p_data_master_set_n)(VEHICLE_DID_LOCATION_LONLAT_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI);
+ }
+
+ /* Altitude information */
+ if ((pstPosData->status & POS_LOC_INFO_ALT) == POS_LOC_INFO_ALT) {
+ memset(&stAltitude, 0x00, sizeof(stAltitude));
+ stAltitude.getMethod = SENSOR_GET_METHOD_NAVI;
+ stAltitude.SyncCnt = VehicleSensGetSensorCnt();
+ stAltitude.isEnable = SENSORLOCATION_STATUS_ENABLE;
+ stAltitude.Altitude = pstPosData->altitude;
+ uc_chg_type = VehicleSensSetLocationAltitudeN((const SENSORLOCATION_ALTITUDEINFO_DAT *)&stAltitude);
+ (*p_data_master_set_n)(VEHICLE_DID_LOCATION_ALTITUDE_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI);
+ }
+
+ /* Bearing information */
+ if ((pstPosData->status & POS_LOC_INFO_HEAD) == POS_LOC_INFO_HEAD) {
+ memset(&stHeading, 0x00, sizeof(stHeading));
+ stHeading.getMethod = SENSOR_GET_METHOD_NAVI;
+ stHeading.SyncCnt = VehicleSensGetSensorCnt();
+ stHeading.isEnable = SENSORMOTION_STATUS_ENABLE;
+ stHeading.posSts = pstPosData->posSts;
+ stHeading.Heading = pstPosData->heading;
+ uc_chg_type = VehicleSensSetMotionHeadingN((const SENSORMOTION_HEADINGINFO_DAT *)&stHeading);
+ (*p_data_master_set_n)(VEHICLE_DID_MOTION_HEADING_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI);
+ }
+
+ ( *p_data_master_set_n )( POSHAL_DID_GPS_CUSTOMDATA_NAVI, VEHICLESENS_NEQ, VEHICLESENS_GETMETHOD_NAVI );
+
+ break;
+ }
+ case VEHICLE_DID_MOTION_SPEED_NAVI:
+ {
+ pucSpeed = (const u_int16 *) & (pstMsg->data);
+
+ /* Vehicle speed information */
+ memset(&stSpeed, 0x00, sizeof(stSpeed));
+ stSpeed.getMethod = SENSOR_GET_METHOD_NAVI;
+ stSpeed.SyncCnt = VehicleSensGetSensorCnt();
+ stSpeed.isEnable = SENSORMOTION_STATUS_ENABLE;
+ stSpeed.Speed = *pucSpeed;
+ uc_chg_type = VehicleSensSetMotionSpeedN((const SENSORMOTION_SPEEDINFO_DAT *)&stSpeed);
+ (*p_data_master_set_n)(VEHICLE_DID_MOTION_SPEED_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI);
+ break;
+ }
+ case POSHAL_DID_GPS_TIME:
+ {
+ pstGpsTime = (const SENSOR_MSG_GPSTIME*)(pstMsg->data);
+ uc_chg_type = VehicleSensSetGpsTimeG((const SENSOR_MSG_GPSTIME *)pstGpsTime);
+ (*p_data_master_set_n)(POSHAL_DID_GPS_TIME, uc_chg_type, VEHICLESENS_GETMETHOD_GPS);
+
+ /* Set GPS time to CLOCK */
+ eStatus = ClockIfDtimeSetGpsTime(pstGpsTime, &bIsAvailable);
+ if ((bIsAvailable == TRUE) && (eStatus != eFrameworkunifiedStatusOK)) {
+ ucResult = SENSLOG_RES_FAIL;
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
+ "ClockIfDtimeSetGpsTime ERROR!! [ret=%d, y=%d, m=%d, d=%d, h=%d, n=%d, s=%d, sts=%d]",
+ eStatus, pstGpsTime->utc.year, pstGpsTime->utc.month, pstGpsTime->utc.date,
+ pstGpsTime->utc.hour, pstGpsTime->utc.minute, pstGpsTime->utc.second, pstGpsTime->tdsts);
+ }
+ us_pno = _pb_CnvName2Pno(SENSLOG_PNAME_CLOCK);
+ SensLogWriteOutputData(SENSLOG_DATA_O_TIME_CS, 0, us_pno,
+ (uint8_t *)(pstGpsTime), // NOLINT(readability/casting)
+ sizeof(SENSOR_MSG_GPSTIME), ucResult);
+ break;
+ }
+ case VEHICLE_DID_SETTINGTIME:
+ {
+ /* GPS time information */
+ uc_chg_type = VehicleSensSetSettingTimeclock((const POS_DATETIME *) & (pstMsg->data));
+ (*p_data_master_set_n)(VEHICLE_DID_SETTINGTIME, uc_chg_type, VEHICLESENS_GETMETHOD_OTHER);
+ break;
+ }
+
+ case VEHICLE_DID_LOCATIONINFO_NMEA_NAVI:
+ {
+ uc_chg_type = VehicleSens_SetLocationInfoNmea_n((const POS_LOCATIONINFO_NMEA*)&(pstMsg->data));
+ (*p_data_master_set_n)(VEHICLE_DID_LOCATIONINFO_NMEA_NAVI, uc_chg_type, VEHICLESENS_GETMETHOD_NAVI );
+ break;
+ }
+
+ default:
+ break;
+ }
+ return;
+}
+
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterGyroTrouble
+* ABSTRACT : Vehicle Sensor Data Master Gyro Failure Status Setting Process
+* FUNCTION : Set a gyro fault condition
+* ARGUMENT : *pst_data : Gyro Failure Status Notification Data
+* : p_data_master_set_n : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+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)
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ u_int8 uc_chg_type;
+
+ if ((pst_data != NULL) && (p_data_master_set_n != NULL)) {
+ if (pst_data->ul_did == VEHICLE_DID_GYRO_TROUBLE) {
+ uc_chg_type = VehicleSensSetGyroTrouble(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
+ }
+}
+// LCOV_EXCL_STOP
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterSysGpsInterruptSignal
+* ABSTRACT : Vehicle Sensor Data Master SYS GPS Interrupt Signal Setting
+* FUNCTION : Setting SYS GPS Interrupt Signals
+* ARGUMENT : *pst_data : SYS GPS interrupt notification
+* : p_data_master_set_shared_memory : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+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)
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ u_int8 uc_chg_type;
+ if ((pst_data != NULL) && (p_data_master_set_shared_memory != NULL)) {
+ if (pst_data->ul_did == VEHICLE_DID_SYS_GPS_INTERRUPT_SIGNAL) {
+ uc_chg_type = VehicleSensSetSysGpsInterruptSignal(pst_data);
+ /* As SYS GPS interrupt signals are not registered for delivery, */
+ /* Disposal quantity,To avoid risks,DeliveryProc shall not be called. */
+ (*p_data_master_set_shared_memory)(pst_data->ul_did, uc_chg_type);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
+ }
+}
+// LCOV_EXCL_STOP
+
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterMainGpsInterruptSignal
+* ABSTRACT : Vehicle Sensor Data Master MAIN GPS Interrupt Signal Setting
+* FUNCTION : Setting MAIN GPS Interrupt Signals
+* ARGUMENT : *pst_data : MAIN GPS interrupt notification
+* : p_data_master_set_shared_memory : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+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)
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ u_int8 uc_chg_type;
+
+ if ((pst_data != NULL) &&
+ (p_data_master_set_shared_memory != NULL)) {
+ if (pst_data->ul_did == VEHICLE_DID_MAIN_GPS_INTERRUPT_SIGNAL) {
+ uc_chg_type = VehicleSensSetMainGpsInterruptSignal(pst_data);
+ /* As MAIN GPS interrupt signals are not registered for delivery, */
+ /* Disposal quantity,To avoid risks,DeliveryProc shall not be called. */
+ (*p_data_master_set_shared_memory)(pst_data->ul_did, uc_chg_type);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
+ }
+}
+// LCOV_EXCL_STOP
+
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterGyroConnectStatus
+* ABSTRACT : Vehicle Sensor Data Master Gyro Connection Status Setting Processing
+* FUNCTION : Set the state of the gyro connection
+* ARGUMENT : *pst_data : Gyro Connect Status Notification Data
+* : p_data_master_set_n : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+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)
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ u_int8 uc_chg_type;
+
+ if ((pst_data != NULL) &&
+ (p_data_master_set_shared_memory != NULL)) {
+ if (pst_data->ul_did == VEHICLE_DID_GYRO_CONNECT_STATUS) {
+ uc_chg_type = VehicleSensSetGyroConnectStatus(pst_data);
+ /* As MAIN GPS interrupt signals are not registered for delivery, */
+ /* Disposal quantity,To avoid risks,DeliveryProc shall not be called. */
+ (*p_data_master_set_shared_memory)(pst_data->ul_did, uc_chg_type);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
+ }
+}
+// LCOV_EXCL_STOP
+
+/*******************************************************************************
+* MODULE : VehicleSensSetDataMasterGpsAntennaStatus
+* ABSTRACT : Vehicle Sensor Data Master GPS Antenna Connection Status Setting Processing
+* FUNCTION : Setting the GPS Antenna Connection Status
+* ARGUMENT : *pst_data : GPS antenna connection status notification data
+* : p_data_master_set_n : Data Master Set Notification(Callback function)
+* NOTE :
+* RETURN : void
+******************************************************************************/
+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)
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ u_int8 uc_chg_type;
+
+ if ((pst_data != NULL) && (p_data_master_set_n != NULL)) {
+ if (pst_data->ul_did == POSHAL_DID_GPS_ANTENNA) {
+ uc_chg_type = VehicleSensSetGpsAntennaStatus(pst_data);
+ (*p_data_master_set_n)(pst_data->ul_did, uc_chg_type, VEHICLESENS_GETMETHOD_LINE);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", pst_data->ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ARGUMENT is NULL\r\n");
+ }
+}
+// LCOV_EXCL_STOP
+
+/*******************************************************************************
+* MODULE : VehicleSensGetDataMaster
+* ABSTRACT : Vehicle Sensor Data Master Get Processing
+* FUNCTION : Provide vehicle sensor data master
+* ARGUMENT : ul_did : Data ID corresponding to the vehicle information
+* : uc_get_method : Data collection way
+* : VEHICLESENS_GETMETHOD_CAN: CAN communication
+* : VEHICLESENS_GETMETHOD_LINE: LineSensor drivers
+* : *pst_data : Pointer to the data master provider
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensGetDataMaster(DID ul_did,
+ u_int8 uc_get_method,
+ VEHICLESENS_DATA_MASTER *pst_data) {
+ /*------------------------------------------------------*/
+ /* Call the data Get processing associated with the DID */
+ /*------------------------------------------------------*/
+ switch (ul_did) { // LCOV_EXCL_BR_LINE 6:some DID is not used
+ /*------------------------------------------------------*/
+ /* Vehicle sensor data group */
+ /*------------------------------------------------------*/
+ case POSHAL_DID_SPEED_PULSE:
+ {
+ VehicleSensGetSpeedPulse(pst_data, uc_get_method);
+ break;
+ }
+// case POSHAL_DID_GYRO_X:
+// {
+// VehicleSensGetGyroX(pst_data, uc_get_method);
+// break;
+// }
+ case POSHAL_DID_GYRO_Y:
+ {
+ VehicleSensGetGyroY(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_Z:
+ {
+ VehicleSensGetGyroZ(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_X:
+ case POSHAL_DID_GYRO_EXT: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ VehicleSensGetGyroRev(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GSNS_X:
+ {
+ VehicleSensGetGsnsX(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GSNS_Y:
+ {
+ VehicleSensGetGsnsY(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GSNS_Z:
+ {
+ VehicleSensGetGsnsZ(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_REV:
+ {
+ VehicleSensGetRev(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_SPEED_PULSE_FLAG:
+ {
+ /* Data acquisition not selected */
+ VehicleSensGetSpeedPulseFlag(pst_data);
+ break;
+ }
+ case POSHAL_DID_GPS_ANTENNA:
+ {
+ VehicleSensGetGpsAntenna(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_SNS_COUNTER:
+ {
+ VehicleSensGetSnsCounter(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GPS_INTERRUPT_FLAG:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ /* Data acquisition not selected */
+ VehicleSensGetGpsInterruptFlag(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case POSHAL_DID_SPEED_KMPH:
+ {
+ VehicleSensGetSpeedKmph(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_TEMP:
+ {
+ VehicleSensGetGyroTemp(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_PULSE_TIME:
+ {
+ VehicleSensGetPulseTime(pst_data, uc_get_method);
+ break;
+ }
+ case VEHICLE_DID_LOCATION_LONLAT:
+ case VEHICLE_DID_LOCATION_LONLAT_NAVI:
+ {
+ VehicleSensGetLocationLonLat(pst_data, uc_get_method);
+ break;
+ }
+ case VEHICLE_DID_LOCATION_ALTITUDE:
+ case VEHICLE_DID_LOCATION_ALTITUDE_NAVI:
+ {
+ VehicleSensGetLocationAltitude(pst_data, uc_get_method);
+ break;
+ }
+ case VEHICLE_DID_MOTION_SPEED_NAVI:
+ case VEHICLE_DID_MOTION_SPEED_INTERNAL:
+ {
+ VehicleSensGetMotionSpeed(pst_data, uc_get_method);
+ break;
+ }
+ case VEHICLE_DID_MOTION_HEADING:
+ case VEHICLE_DID_MOTION_HEADING_NAVI:
+ {
+ VehicleSensGetMotionHeading(pst_data, uc_get_method);
+ break;
+ }
+ case VEHICLE_DID_SETTINGTIME:
+ {
+ VehicleSensGetSettingTime(pst_data, uc_get_method);
+ break;
+ }
+
+ default:
+ break;
+ }
+}
+
+#if CONFIG_SENSOR_EXT_VALID /* Initial Sensor Support */
+/*******************************************************************************
+* MODULE : VehicleSensGetDataMasterExt
+* ABSTRACT : Vehicle Sensor Data Master Get Processing(Initial delivery)
+* FUNCTION : Provide vehicle sensor data master
+* ARGUMENT : ul_did : Data ID corresponding to the vehicle information
+* : uc_get_method : Data collection way
+* : VEHICLESENS_GETMETHOD_CAN: CAN communication
+* : VEHICLESENS_GETMETHOD_LINE: LineSensor drivers
+* : VEHICLESENS_GETMETHOD_NAVI: Navi
+* : VEHICLESENS_GETMETHOD_CLOCK:Clock
+* : *pst_data : Pointer to the data master provider
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensGetDataMasterExt(DID ul_did,
+ u_int8 uc_get_method,
+ VEHICLESENS_DATA_MASTER_EXT *pst_data) {
+ /*------------------------------------------------------*/
+ /* Call the data Get processing associated with the DID */
+ /*------------------------------------------------------*/
+ switch (ul_did) {
+ /*------------------------------------------------------*/
+ /* Vehicle sensor data group */
+ /*------------------------------------------------------*/
+ case POSHAL_DID_SPEED_PULSE:
+ {
+ VehicleSensGetSpeedPulseExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GSNS_X:
+ {
+ VehicleSensGetGsnsXExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GSNS_Y:
+ {
+ VehicleSensGetGsnsYExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GSNS_Z:
+ {
+ VehicleSensGetGsnsZExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_SNS_COUNTER:
+ {
+ VehicleSensGetSnsCounterExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_X:
+ case POSHAL_DID_GYRO_EXT: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ VehicleSensGetGyroExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_Y:
+ {
+ VehicleSensGetGyroYExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_Z:
+ {
+ VehicleSensGetGyroZExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_REV:
+ {
+ VehicleSensGetRevExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_TEMP:
+ {
+ VehicleSensGetGyroTempExt(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_PULSE_TIME:
+ {
+ VehicleSensGetPulseTimeExt(pst_data, uc_get_method);
+ break;
+ }
+ default: /* Ignore->MISRA-C++:2008 Rule 6-3-1, 6-4-1 */
+ break;
+ }
+}
+
+/*******************************************************************************
+* MODULE : VehicleSensGetDataMasterFst
+* ABSTRACT : Vehicle Sensor Data Master Get Processing(Initial transmission data)
+* FUNCTION : Provide vehicle sensor data master
+* ARGUMENT : ul_did : Data ID corresponding to the vehicle information
+* : uc_get_method : Data collection way
+* : VEHICLESENS_GETMETHOD_CAN: CAN communication
+* : VEHICLESENS_GETMETHOD_LINE: LineSensor drivers
+* : *pst_data : Pointer to the data master provider
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensGetDataMasterFst(DID ul_did,
+ u_int8 uc_get_method,
+ VEHICLESENS_DATA_MASTER_FST *pst_data) {
+ /*------------------------------------------------------*/
+ /* Call the data Get processing associated with the DID */
+ /*------------------------------------------------------*/
+ switch (ul_did) {
+ /*------------------------------------------------------*/
+ /* Vehicle sensor data group */
+ /*------------------------------------------------------*/
+ case POSHAL_DID_GYRO_X_FST: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ VehicleSensGetGyroXFst(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_Y_FST: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ VehicleSensGetGyroYFst(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_Z_FST: /* 3 to 14bit A/D value,0bit:REV */
+ {
+ VehicleSensGetGyroZFst(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_SPEED_PULSE_FST:
+ {
+ VehicleSensGetSpeedPulseFst(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_SPEED_PULSE_FLAG_FST:
+ {
+ VehicleSensGetSpeedPulseFlagFst(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_REV_FST:
+ {
+ VehicleSensGetRevFst(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GYRO_TEMP_FST:
+ {
+ VehicleSensGetGyroTempFst(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GSNS_X_FST:
+ {
+ VehicleSensGetGsnsXFst(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GSNS_Y_FST:
+ {
+ VehicleSensGetGsnsYFst(pst_data, uc_get_method);
+ break;
+ }
+ case POSHAL_DID_GSNS_Z_FST:
+ {
+ VehicleSensGetGsnsZFst(pst_data, uc_get_method);
+ break;
+ }
+ default:
+ break;
+ }
+}
+#endif
+
+/*******************************************************************************
+* MODULE : VehicleSensGetGpsDataMaster
+* ABSTRACT : Vehicle Sensor Data Master GPS Data Get Processing
+* FUNCTION : Provide vehicle sensor data master GPS data
+* ARGUMENT : ul_did : Data ID corresponding to the vehicle information
+* : uc_get_method : Data collection way
+* : VEHICLESENS_GETMETHOD_GPS: GPS
+* : *pst_data : Pointer to the data master provider
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensGetGpsDataMaster(DID ul_did,
+ u_int8 uc_get_method,
+ SENSOR_MSG_GPSDATA_DAT *pst_data) {
+ /*------------------------------------------------------*/
+ /* Call the data Get processing associated with the DID */
+ /*------------------------------------------------------*/
+ switch (ul_did) { // LCOV_EXCL_BR_LINE 6:some DID is not used
+ /*------------------------------------------------------*/
+ /* GPS data group */
+ /*------------------------------------------------------*/
+
+ case VEHICLE_DID_GPS_UBLOX_NAV_VELNED:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ VehicleSensGetNavVelnedG(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_TIMEUTC:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ VehicleSensGetNavTimeUtcG(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_TIMEGPS:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ VehicleSensGetNavTimeGpsG(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_SVINFO:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ VehicleSensGetNavSvInfoG(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_STATUS:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ VehicleSensGetNavStatusG(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_POSLLH:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ VehicleSensGetNavPosllhG(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_CLOCK:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ VehicleSensGetNavClockG(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_NAV_DOP:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED();
+ VehicleSensGetNavDopG(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_UBLOX_MON_HW:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED();
+ VehicleSensGetMonHwG(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS_COUNTER:
+ {
+ // LCOV_EXCL_START 8 : dead code
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ VehicleSensGetGpsCounterg(pst_data);
+ break;
+ // LCOV_EXCL_STOP
+ }
+ case VEHICLE_DID_GPS__CWORD82__NMEA:
+ {
+ VehicleSensGetGps_CWORD82_NmeaG(pst_data);
+ break;
+ }
+ case POSHAL_DID_GPS__CWORD82__FULLBINARY:
+ {
+ VehicleSensGetGps_CWORD82_FullBinaryG(pst_data);
+ break;
+ }
+ case POSHAL_DID_GPS__CWORD82___CWORD44_GP4:
+ {
+ VehicleSensGetGps_CWORD82__CWORD44_Gp4G(pst_data);
+ break;
+ }
+ case VEHICLE_DID_NAVIINFO_DIAG_GPS:
+ {
+ VehicleSensGetNaviinfoDiagGPSg(pst_data);
+ break;
+ }
+ case POSHAL_DID_GPS_TIME:
+ {
+ VehicleSensGetGpsTimeG(pst_data);
+ break;
+ }
+ case POSHAL_DID_GPS_TIME_RAW:
+ {
+ VehicleSensGetGpsTimeRawG(pst_data);
+ break;
+ }
+ case POSHAL_DID_GPS_NMEA:
+ {
+ VehicleSensGetGpsNmeaG(pst_data);
+ break;
+ }
+ case POSHAL_DID_GPS_WKNROLLOVER:
+ {
+ VehicleSensGetWknRolloverG(pst_data);
+ break;
+ }
+ case POSHAL_DID_GPS_CLOCK_DRIFT:
+ {
+ VehicleSensGetGpsClockDriftG(pst_data);
+ break;
+ }
+ case POSHAL_DID_GPS_CLOCK_FREQ:
+ {
+ VehicleSensGetGpsClockFreqG(pst_data);
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+/*******************************************************************************
+* MODULE : VehicleSensGetDataMasterGyroTrouble
+* ABSTRACT : Vehicle Sensor Data Master Gyro Failure Status Get Processing
+* FUNCTION : Provide a gyro fault condition
+* ARGUMENT : ul_did : Data ID
+* : uc_get_method : Data collection way(Not used)
+* : VEHICLESENS_GETMETHOD_CAN : CAN communication
+* : VEHICLESENS_GETMETHOD_LINE : LineSensor drivers
+* : VEHICLESENS_GETMETHOD_GPS : GPS
+* : *pst_data : Pointer to the data master provider
+* NOTE :
+* RETURN : void
+******************************************************************************/
+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)
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ if (pst_data != NULL) {
+ if (ul_did == VEHICLE_DID_GYRO_TROUBLE) {
+ VehicleSensGetGyroTrouble(pst_data);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
+ }
+}
+
+/*******************************************************************************
+* MODULE : VehicleSensGetDataMasterSysGpsInterruptSignal
+* ABSTRACT : Vehicle Sensor Data Master SYS GPS Interrupt Signal Get Processing
+* FUNCTION : Provide SYS GPS interrupt signals
+* ARGUMENT : ul_did : Data ID
+* : uc_get_method : Data collection way(Not used)
+* : VEHICLESENS_GETMETHOD_CAN : CAN communication
+* : VEHICLESENS_GETMETHOD_LINE : LineSensor drivers
+* : VEHICLESENS_GETMETHOD_GPS : GPS
+* : *pst_data : Pointer to the data master provider
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensGetDataMasterSysGpsInterruptSignal(DID ul_did,
+ u_int8 uc_get_method,
+ VEHICLESENS_DATA_MASTER_GPS_INTERRUPT_SIGNAL *pst_data) {
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ if (pst_data != NULL) {
+ if (ul_did == VEHICLE_DID_SYS_GPS_INTERRUPT_SIGNAL) {
+ VehicleSensGetSysGpsInterruptSignal(pst_data);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
+ }
+}
+
+/*******************************************************************************
+* MODULE : VehicleSensGetDataMasterMainGpsInterruptSignal
+* ABSTRACT : Vehicle Sensor Data Master MAIN GPS Interrupt Signal Get Processing
+* FUNCTION : Provide MAIN GPS interrupt signals
+* ARGUMENT : ul_did : Data ID
+* : uc_get_method : Data collection way(Not used)
+* : VEHICLESENS_GETMETHOD_CAN : CAN communication
+* : VEHICLESENS_GETMETHOD_LINE : LineSensor drivers
+* : VEHICLESENS_GETMETHOD_GPS : GPS
+* : *pst_data : Pointer to the data master provider
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensGetDataMasterMainGpsInterruptSignal(DID ul_did,
+ u_int8 uc_get_method,
+ VEHICLESENS_DATA_MASTER_GPS_INTERRUPT_SIGNAL *pst_data) {
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ if (pst_data != NULL) {
+ if (ul_did == VEHICLE_DID_MAIN_GPS_INTERRUPT_SIGNAL) {
+ VehicleSensGetMainGpsInterruptSignal(pst_data);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
+ }
+}
+
+/*******************************************************************************
+* MODULE : VehicleSensGetDataMasterGyroConnectStatus
+* ABSTRACT : Vehicle Sensor Data Master Gyro Connection Status Get Processing
+* FUNCTION : Provide the status of the gyro connection
+* ARGUMENT : ul_did : Data ID
+* : uc_get_method : Data collection way(Not used)
+* : VEHICLESENS_GETMETHOD_CAN : CAN communication
+* : VEHICLESENS_GETMETHOD_LINE : LineSensor drivers
+* : VEHICLESENS_GETMETHOD_GPS : GPS
+* : *pst_data : Pointer to the data master provider
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensGetDataMasterGyroConnectStatus(DID ul_did,
+ u_int8 uc_get_method,
+ VEHICLESENS_DATA_MASTER_GYRO_CONNECT_STATUS *pst_data) {
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ if (pst_data != NULL) {
+ if (ul_did == VEHICLE_DID_GYRO_CONNECT_STATUS) {
+ VehicleSensGetGyroConnectStatus(pst_data);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x)\r\n", ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
+ }
+}
+
+/*******************************************************************************
+* MODULE : VehicleSensGetDataMasterGpsAntennaStatus
+* ABSTRACT : Vehicle Sensor Data Master GPS Antenna Connection Status Get Processing
+* FUNCTION : Provide GPS antenna connection status
+* ARGUMENT : ul_did : Data ID
+* : uc_get_method : Data collection way(Not used)
+* : VEHICLESENS_GETMETHOD_CAN : CAN communication
+* : VEHICLESENS_GETMETHOD_LINE : LineSensor drivers
+* : VEHICLESENS_GETMETHOD_GPS : GPS
+* : *pst_data : Pointer to the data master provider
+* NOTE :
+* RETURN : void
+******************************************************************************/
+void VehicleSensGetDataMasterGpsAntennaStatus(DID ul_did,
+ u_int8 uc_get_method,
+ VEHICLESENS_DATA_MASTER_GPS_ANTENNA_STATUS *pst_data) {
+ AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
+ if (pst_data != NULL) {
+ if (ul_did == POSHAL_DID_GPS_ANTENNA) {
+ VehicleSensGetGpsAntennaStatus(pst_data);
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "UNKNOWN DID(%x) \r\n", ul_did);
+ }
+ } else {
+ FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pst_data == NULL\r\n");
+ }
+}
+// LCOV_EXCL_STOP
+
+/**
+ * @brief
+ * Sensor counter acquisition
+ *
+ * @return Sensor Counter
+ *
+ */
+static uint8_t VehicleSensGetSensorCnt(void) {
+ VEHICLESENS_DATA_MASTER st_data;
+ uint8_t sensCnt;
+
+ /* Synchronous counter acquisition */
+ VehicleSensGetSnsCounterl(&st_data);
+
+ sensCnt = st_data.uc_data[0];
+
+ return sensCnt;
+}