summaryrefslogtreecommitdiffstats
path: root/video_in_hal/vehicleservice/positioning/client/src/POS_sensor_API/Sensor_API.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'video_in_hal/vehicleservice/positioning/client/src/POS_sensor_API/Sensor_API.cpp')
-rwxr-xr-xvideo_in_hal/vehicleservice/positioning/client/src/POS_sensor_API/Sensor_API.cpp784
1 files changed, 0 insertions, 784 deletions
diff --git a/video_in_hal/vehicleservice/positioning/client/src/POS_sensor_API/Sensor_API.cpp b/video_in_hal/vehicleservice/positioning/client/src/POS_sensor_API/Sensor_API.cpp
deleted file mode 100755
index 179eb92..0000000
--- a/video_in_hal/vehicleservice/positioning/client/src/POS_sensor_API/Sensor_API.cpp
+++ /dev/null
@@ -1,784 +0,0 @@
-/*
- * @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 :Sensor_API.cpp
- * System name :GPF
- * Subsystem name :Sensor I/F library
- * Program name :SensorI/F API
- ******************************************************************************/
-
-#include <stdio.h>
-#include <vehicle_service/POS_sensor_API.h>
-#include <vehicle_service/POS_define.h>
-#include <vehicle_service/POS_sensor_API.h>
-#include <vehicle_service/positioning_base_library.h>
-#include "POS_sensor_private.h"
-#include "Sensor_Common_API.h"
-#include "Sensor_API_private.h"
-#include "Sensor_Common_API.h"
-#include "Vehicle_API_Dummy.h"
-#include "Vehicle_API_private.h"
-#include "Naviinfo_API.h"
-#include "POS_private.h"
-
-/*************************************************/
-/* Global variable */
-/*************************************************/
-/********************************************************************************
- * TAG :TG_GPS_REQ_RESET
- * ABSTRACT :GPS reset request
- * NOTE :I/F information between host applications(Reset mode)
- ********************************************************************************/
-/**
- * @brief POS_RegisterListenerPkgSensData Return code list
- */
-static const SENSOR_RET_PKG g_ret_list_reg_lis_pkg_sens_data[SENSOR_PUBLIC_DID_NUM] = {
- /* GRADE2 GRADE1 DID (Key) */
- {TRUE, TRUE, POS_DID_SPEED_PULSE },
- {FALSE, TRUE, POS_DID_SPEED_KMPH },
- {TRUE, TRUE, POS_DID_GYRO_X },
- {TRUE, TRUE, POS_DID_GYRO_Y },
- {TRUE, TRUE, POS_DID_GYRO_Z },
- {TRUE, TRUE, POS_DID_GSNS_X },
- {TRUE, TRUE, POS_DID_GSNS_Y },
- {TRUE, TRUE, POS_DID_GSNS_Z },
- {FALSE, TRUE, POS_DID_GPS_ANTENNA },
- {TRUE, TRUE, POS_DID_SNS_COUNTER },
- {FALSE, TRUE, POS_DID_SPEED_PULSE_FST },
- {FALSE, TRUE, POS_DID_GYRO_X_FST },
- {FALSE, TRUE, POS_DID_GYRO_Y_FST },
- {FALSE, TRUE, POS_DID_GYRO_Z_FST },
- {FALSE, TRUE, POS_DID_GPS__CWORD82__NMEA },
- {FALSE, TRUE, POS_DID_GPS__CWORD82___CWORD44_GP4 },
- {FALSE, TRUE, POS_DID_GPS__CWORD82__FULLBINARY },
- {FALSE, TRUE, POS_DID_GPS_NMEA },
- {TRUE, TRUE, POS_DID_REV },
- {FALSE, TRUE, POS_DID_REV_FST },
- {TRUE, TRUE, POS_DID_GYRO_TEMP },
- {FALSE, TRUE, POS_DID_GYRO_TEMP_FST },
- {FALSE, TRUE, POS_DID_GSNS_X_FST },
- {FALSE, TRUE, POS_DID_GSNS_Y_FST },
- {FALSE, TRUE, POS_DID_GSNS_Z_FST },
- {TRUE, TRUE, POS_DID_PULSE_TIME },
- {FALSE, TRUE, POS_DID_GPS_CLOCK_DRIFT },
- {FALSE, TRUE, POS_DID_GPS_CLOCK_FREQ },
- {FALSE, TRUE, VEHICLE_DID_GPS_TIME }, /* For local use */
- {FALSE, TRUE, VEHICLE_DID_GPS_TIME_RAW }, /* For local use */
- {FALSE, TRUE, VEHICLE_DID_GPS_WKNROLLOVER} /* For local use */
-};
-
-/**
- * @brief POS_RegisterListenerSensData Return code list
- */
-static const SENSOR_RET_PKG g_ret_list_reg_lis_sens_data[SENSOR_PUBLIC_DID_NUM] = {
- /* GRADE2 GRADE1 DID (Key) */
- {TRUE, TRUE, POS_DID_SPEED_PULSE },
- {FALSE, TRUE, POS_DID_SPEED_KMPH },
- {TRUE, TRUE, POS_DID_GYRO_X },
- {TRUE, TRUE, POS_DID_GYRO_Y },
- {TRUE, TRUE, POS_DID_GYRO_Z },
- {TRUE, TRUE, POS_DID_GSNS_X },
- {TRUE, TRUE, POS_DID_GSNS_Y },
- {TRUE, TRUE, POS_DID_GSNS_Z },
- {TRUE, TRUE, POS_DID_GPS_ANTENNA },
- {FALSE, TRUE, POS_DID_SNS_COUNTER },
- {TRUE, TRUE, POS_DID_SPEED_PULSE_FST },
- {TRUE, TRUE, POS_DID_GYRO_X_FST },
- {TRUE, TRUE, POS_DID_GYRO_Y_FST },
- {TRUE, TRUE, POS_DID_GYRO_Z_FST },
- {TRUE, TRUE, POS_DID_GPS__CWORD82__NMEA },
- {FALSE, TRUE, POS_DID_GPS__CWORD82___CWORD44_GP4 },
- {TRUE, TRUE, POS_DID_GPS__CWORD82__FULLBINARY },
- {FALSE, TRUE, POS_DID_GPS_NMEA },
- {FALSE, TRUE, POS_DID_REV },
- {TRUE, TRUE, POS_DID_REV_FST },
- {TRUE, TRUE, POS_DID_GYRO_TEMP },
- {TRUE, TRUE, POS_DID_GYRO_TEMP_FST },
- {TRUE, TRUE, POS_DID_GSNS_X_FST },
- {TRUE, TRUE, POS_DID_GSNS_Y_FST },
- {TRUE, TRUE, POS_DID_GSNS_Z_FST },
- {FALSE, TRUE, POS_DID_PULSE_TIME },
- {FALSE, TRUE, POS_DID_GPS_CLOCK_DRIFT },
- {FALSE, TRUE, POS_DID_GPS_CLOCK_FREQ },
- {FALSE, TRUE, VEHICLE_DID_GPS_TIME }, /* For local use */
- {FALSE, TRUE, VEHICLE_DID_GPS_TIME_RAW }, /* For local use */
- {FALSE, TRUE, VEHICLE_DID_GPS_WKNROLLOVER } /* For local use */
-};
-
-/**
- * @brief POS_GetSensData Return code list
- */
-static const SENSOR_RET_PKG g_ret_list_get_sens_data[SENSOR_PUBLIC_DID_NUM] = {
- /* GRADE2 GRADE1 DID (Key) */
- {TRUE, TRUE, POS_DID_SPEED_PULSE },
- {FALSE, TRUE, POS_DID_SPEED_KMPH },
- {TRUE, TRUE, POS_DID_GYRO_X },
- {TRUE, TRUE, POS_DID_GYRO_Y },
- {TRUE, TRUE, POS_DID_GYRO_Z },
- {TRUE, TRUE, POS_DID_GSNS_X },
- {TRUE, TRUE, POS_DID_GSNS_Y },
- {TRUE, TRUE, POS_DID_GSNS_Z },
- {TRUE, TRUE, POS_DID_GPS_ANTENNA },
- {FALSE, TRUE, POS_DID_SNS_COUNTER },
- {FALSE, TRUE, POS_DID_SPEED_PULSE_FST },
- {FALSE, TRUE, POS_DID_GYRO_X_FST },
- {FALSE, TRUE, POS_DID_GYRO_Y_FST },
- {FALSE, TRUE, POS_DID_GYRO_Z_FST },
- {TRUE, TRUE, POS_DID_GPS__CWORD82__NMEA },
- {FALSE, TRUE, POS_DID_GPS__CWORD82___CWORD44_GP4 },
- {TRUE, TRUE, POS_DID_GPS__CWORD82__FULLBINARY },
- {FALSE, TRUE, POS_DID_GPS_NMEA },
- {FALSE, TRUE, POS_DID_REV },
- {FALSE, TRUE, POS_DID_REV_FST },
- {TRUE, TRUE, POS_DID_GYRO_TEMP },
- {FALSE, TRUE, POS_DID_GYRO_TEMP_FST },
- {FALSE, TRUE, POS_DID_GSNS_X_FST },
- {FALSE, TRUE, POS_DID_GSNS_Y_FST },
- {FALSE, TRUE, POS_DID_GSNS_Z_FST },
- {FALSE, TRUE, POS_DID_PULSE_TIME },
- {FALSE, TRUE, POS_DID_GPS_CLOCK_DRIFT },
- {FALSE, TRUE, POS_DID_GPS_CLOCK_FREQ },
- {FALSE, TRUE, VEHICLE_DID_GPS_TIME }, /* For local use */
- {FALSE, TRUE, VEHICLE_DID_GPS_TIME_RAW }, /* For local use */
- {FALSE, TRUE, VEHICLE_DID_GPS_WKNROLLOVER } /* For local use */
-};
-
-/**
- * @brief
- * DID-decision functions for Sensor API
- *
- * Determines whether or not the DID specified by the public API corresponds to the DID.
- *
- * @param[in] did Data ID
- * @param[in] mode Operation mode 1:For Package Delivery Registration API<br>
- * 2:For Sensor Data Delivery Registration API<br>
- * 3:For Sensor Data Acquisition API
- *
- * @return TRUE Be supported
- * FALSE Not supported
- */
-BOOL SensorJudgeDid(DID did, uint8_t mode) {
- BOOL ret = FALSE;
- UNIT_TYPE type;
- const SENSOR_RET_PKG *pkg_list = NULL;
- int32_t i;
-
- /* Set Return pakage list */
- switch (mode) {
- case MODE_REGISTER_LISTENER_PKG_SENS_DATA: /* POS_RegisterListenerPkgSensData */
- {
- pkg_list = g_ret_list_reg_lis_pkg_sens_data;
- break;
- }
- case MODE_REGISTER_LISTENER_SENSDATA: /* POS_RegisterListenerSensData */
- {
- pkg_list = g_ret_list_reg_lis_sens_data;
- break;
- }
- case MODE_GET_SENSDATA: /* POS_GetSensData */
- {
- pkg_list = g_ret_list_get_sens_data;
- break;
- }
- default:
- /* Error log */
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Argument ERROR [mode = %d]", mode);
- break;
- }
-
- if (pkg_list != NULL) {
- /* Search Return code list for DID */
- for (i = 0; i < SENSOR_PUBLIC_DID_NUM; i++) {
- if (did == pkg_list[i].did) {
- break;
- }
- }
-
- if (i != SENSOR_PUBLIC_DID_NUM) {
- /* Get Unit type */
- type = GetEnvSupportInfo();
- switch (type) {
- case UNIT_TYPE_GRADE1:
- {
- ret = pkg_list[i].GRADE1_ret;
- break;
- }
- case UNIT_TYPE_GRADE2:
- {
- /*
- * Note.
- * This feature branches processing depending on the unit type.
- */
- ret = pkg_list[i].GRADE2_ret;
- break;
- }
- default:
- /* Error log */
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "GetEnvSupportInfo ERROR [type = %d]", type);
- break;
- }
- } else {
- /* Error log */
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Argument ERROR [did = %d]", did);
- }
- }
-
- return ret;
-}
-
-/**
- * @brief
- * Vehicle Sensor Information Extended Package Delivery Registration
- * Sensor information is delivered for the first time.,Extension Packaging and Registering for Delivery.
- *
- * @param[in] hApp Application handle
- * @param[in] notifyName Destination thread name
- * @param[in] ucPkgNum Number of package data(1 to 16)
- * @param[in] *pulDid Pointer to an array of data IDs for vehicle information
- * @param[in] ucCtrlFlg Delivery control<br>
- * Delivery registration: SENSOR_DELIVERY_REGIST<br>
- * Delivery stop: SENSOR_DELIVERY_STOP (Note: Not mounted)<br>
- * Resume delivery: SENSOR_DELIVERY_RESTART (Note: Not mounted)
- * @param[in] ucDeliveryTiming Delivery timing<br>
- * Updating : SENSOR_DELIVERY_TIMING_UPDATE<br>
- * Changing : SENSOR_DELIVERY_TIMING_CHANGE
- *
- * @return SENSOR_RET_NORMAL Successful registration<br>
- * SENSOR_RET_ERROR_CREATE_EVENT Event generation failure<br>
- * SENSOR_RET_ERROR_PARAM Parameter error<br>
- * SENSOR_RET_ERROR_DID Unregistered ID<br>
- * SENSOR_RET_ERROR_BUFFULL FULL of delivery registers<br>
- * SENSOR_RET_ERROR_NOSUPPORT Unsupported environment<br>
- * SENSOR_RET_ERROR_INNER Internal abnormality
- *
- */
-SENSOR_RET_API POS_RegisterListenerPkgSensData(HANDLE hApp,
- PCSTR notifyName,
- uint8_t ucPkgNum,
- DID *pulDid, uint8_t ucCtrlFlg, uint8_t ucDeliveryTiming) {
- SENSOR_RET_API ret; /* Return value */
- BOOL ret_b;
- RET_API ret_api; /* System API return value */
- EventID event_id; /* Event ID */
- int32_t event_val; /* Event value */
- SENSOR_MSG_DELIVERY_ENTRY_DAT data; /* Message data */
- int32_t i; /* Generic counters */
- PNO ch_pno; /* Converted internal PNO */
- UNIT_TYPE type; /* Supported HW Configuration Type */
-
- /* Internal debug log output */
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "+");
-
- ret = SENSOR_RET_NORMAL;
- /* Check Handle */
- if (hApp == NULL) {
- /* NULL terminates with an abnormal parameter */
- ret = SENSOR_RET_ERROR_PARAM;
- }
-
- if (ret == SENSOR_RET_NORMAL) {
- /* Positioning Base API initialization */
- _pb_Setup_CWORD64_API(hApp);
-
- /* Supported HW Configuration Check */
- type = GetEnvSupportInfo();
- if (UNIT_TYPE_GRADE1 == type) {
- /* GRADE1 */
- ret = SENSOR_RET_NORMAL;
- } else if (UNIT_TYPE_GRADE2 == type) {
- /*
- * Note.
- * This feature branches processing depending on the unit type.
- */
- ret = SENSOR_RET_ERROR_NOSUPPORT;
- } else {
- /* Environment error */
- ret = SENSOR_RET_ERROR_NOSUPPORT;
- }
- }
-
- if (ret == SENSOR_RET_NORMAL) {
- /* Check Delivery Control Designation */
- if (SENSOR_DELIVERY_REGIST != ucCtrlFlg) {
- /* Parameters other than delivery registration terminated abnormally. */
- ret = SENSOR_RET_ERROR_PARAM;
- } else if ((ucDeliveryTiming != SENSOR_DELIVERY_TIMING_CHANGE) &&
- (ucDeliveryTiming != SENSOR_DELIVERY_TIMING_UPDATE)) {
- /* Check delivery timing */
- /* Change delivery timing,Terminate as a parameter error except update */
- ret = SENSOR_RET_ERROR_PARAM;
- } else if (notifyName == NULL) {
- /* Check Thread Name */
- /* NULL terminates with an abnormal parameter */
- ret = SENSOR_RET_ERROR_PARAM;
- } else if ((0 == ucPkgNum) || (SENSOR_PKG_DELIVERY_MAX < ucPkgNum)) {
- /* Check Package Data Count */
- /* Out-of-range is terminated as a parameter error. */
- ret = SENSOR_RET_ERROR_PARAM;
- } else if (pulDid == NULL) {
- /* Check Data ID */
- /* NULL terminates with an abnormal parameter */
- ret = SENSOR_RET_ERROR_PARAM;
- } else {
- /* Check if data ID is acceptable */
- for (i = 0; i < ucPkgNum; i++) {
- /* Judge DID */
- ret_b = SENSOR_DID_JUDGE_REGLIS_PKG(pulDid[i]);
- if (ret_b == FALSE) {
- /* An unacceptable ID terminates with an abnormal parameter. */
- ret = SENSOR_RET_ERROR_PARAM;
- break;
- } else {
- ret = SENSOR_RET_NORMAL;
- }
- }
- }
- }
-
- if (ret == SENSOR_RET_NORMAL) {
- /* Resource acquisition */
- if (VehicleGetResource() == TRUE) {
-
- /* Initialization */
- event_id = 0;
- event_val = 0;
- memset(reinterpret_cast<void *>(&data), 0, sizeof(SENSOR_MSG_DELIVERY_ENTRY_DAT));
-
- /* Get PNO from Thread Name */
- ch_pno = _pb_CnvName2Pno(notifyName);
-
- /* Event Generation */
- event_id = PosCreateEvent(ch_pno);
-
- if (0 != event_id) {
- /* Successful event generation */
-
- /*--------------------------------------------------------------*
- * Send Vehicle Sensor Information Delivery Registration Message *
- *--------------------------------------------------------------*/
- /* Create Message Data */
- data.pno = ch_pno;
- data.pkg_num = ucPkgNum;
- data.delivery_timing = ucDeliveryTiming;
- data.ctrl_flg = ucCtrlFlg;
- data.event_id = event_id;
- for (i = 0; i < ucPkgNum; i++) {
- data.did[i] = pulDid[i];
- }
-
- /* Messaging */
- ret_api = PosSndMsg(ch_pno,
- PNO_VEHICLE_SENSOR,
- CID_SENSORIF_PKG_DELIVERY_ENTRY_EXT,
- (uint16_t)sizeof(SENSOR_MSG_DELIVERY_ENTRY_DAT),
- (const void *)&data);
-
- if (RET_NORMAL == ret_api) {
- /* Message transmission processing is successful */
- /* Wait for completion event from vehicle sensor thread */
- ret_api = _pb_WaitEvent(event_id,
- SAPI_EVWAIT_VAL,
- SENSOR_RET_ERROR_MIN,
- SENSOR_RET_NORMAL,
- &event_val,
- POS_API_TIME_OUT_MS);
- if (RET_NORMAL != ret_api) {
- /* Return an internal error */
- ret = SENSOR_RET_ERROR_INNER;
- } else {
- /* Return from Event Wait */
- /* Set event value (processing result) as return value */
- ret = (SENSOR_RET_API)event_val;
- }
- } else {
- /* Message transmission processing failed */
- /* Return an internal error */
- ret = SENSOR_RET_ERROR_INNER;
- }
-
- /* Event deletion */
- ret_api = PosDeleteEvent(event_id);
- } else {
- /* Event generation failure */
- ret = SENSOR_RET_ERROR_CREATE_EVENT;
- }
- } else {
- /* When resource shortage occurs, the system terminates with an insufficient resource error. */
- ret = SENSOR_RET_ERROR_RESOURCE;
- }
- /* Resource release */
- VehicleReleaseResource();
- }
-
- /* Internal debug log output */
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "- [ret = %d]", ret);
-
- return ret;
-}
-
-/*******************************************************************************
- * MODULE : PosCreateEvent
- * ABSTRACT : Event creation process
- * FUNCTION : Generate an event
- * ARGUMENT : pno : Thread ID
- * NOTE :
- * RETURN : Non-zero : Event ID
- * : Zero : Event generation failure
- ******************************************************************************/
-EventID PosCreateEvent(PNO pno) {
- EventID event_id; /* Event ID */
- char event_name[32]; /* Event name character string buffer */
- RET_API ret_api; /* System API return value */
-
- /* Initialization of event name character string buffer */
- (void)memset(reinterpret_cast<void *>(event_name), 0, sizeof(event_name));
-
- /* Event name creation */
- snprintf(event_name, sizeof(event_name), "SENSOR_%X", pno); /* Ignore->MISRA-C++:2008 Rule 5-2-12 */
-
- /* Event Generation */
- event_id = _pb_CreateEvent(FALSE , 0, event_name); /* Ignore->MISRA-C++:2008 Rule 5-2-12 */
-
- if (0 != event_id) {
- /* For successful event generation */
-
- /* Initialize the event */
- ret_api = _pb_SetEvent(event_id, SAPI_EVSET_ABSOLUTE, SENSOR_EVENT_VAL_INIT);
- if (RET_NORMAL != ret_api) {
- /* Event initialization failed */
-
- /* Delete Event and Return Event Generation Failed */
- ret_api = PosDeleteEvent(event_id);
- event_id = 0;
- }
- }
-
- return event_id;
-}
-
-/*******************************************************************************
- * MODULE : PosDeleteEvent
- * ABSTRACT : Event deletion processing
- * FUNCTION : Delete events
- * ARGUMENT : event_id : Event ID of the event to delete
- * NOTE :
- * RETURN : RET_NORMAL : Normal completion
- * : RET_EV_NONE : Specified event does not exist
- ******************************************************************************/
-RET_API PosDeleteEvent(EventID event_id) {
- return(_pb_DeleteEvent(event_id));
-}
-
-/*******************************************************************************
- * MODULE : SensorLinkShareData
- * ABSTRACT : Link to shared memory
- * FUNCTION : Link to shared memory
- * ARGUMENT : **share_top : Storage destination of shared memory top address
- * : *share_size : Storage destination of shared memory area size
- * : *offset : Offset storage destination to free shared memory area
- * NOTE :
- * RETURN : RET_NORMAL : Normal completion
- * : RET_ERROR : There is no shared memory area.
- ******************************************************************************/
-RET_API SensorLinkShareData(void **share_top, uint32_t *share_size, uint16_t *offset) { // LCOV_EXCL_START 8:dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- RET_API ret_api; /* System API return value */
- SemID sem_id; /* Semaphore ID */
- SENSOR_SHARE *share_top_tmp;
- int32_t i;
-
- /* Initialization */
- ret_api = RET_ERROR;
-
- /* Create Semaphore */
- sem_id = _pb_CreateSemaphore(const_cast<char *>(SENSOR_SEMAPHO_NAME));
- if (0 != sem_id) {
- /* Semaphore Lock */
- ret_api = _pb_SemLock(sem_id);
- if (RET_NORMAL == ret_api) {
- /* Link to shared memory */
- ret_api = _pb_LinkShareData(const_cast<char *>(SENSOR_SHARE_NAME), share_top, share_size);
- if (RET_NORMAL == ret_api) {
- /* By searching the free shared memory area,Offset is calculated if there is free space. */
- share_top_tmp = reinterpret_cast<SENSOR_SHARE *>(*share_top);
-
- /* Because the first block of the shared memory area is the control area,Loop from i = 1 */
- for (i = 1; i < SENSOR_SHARE_BLOCK_NUM; i++) {
- if (SENSOR_SHARE_UNLOCK == share_top_tmp->mng.lock_info[i]) {
- break;
- }
- }
- if (i < SENSOR_SHARE_BLOCK_NUM) {
- /* Empty space */
- /* Lock the block */
- share_top_tmp->mng.lock_info[i] = SENSOR_SHARE_LOCK;
-
- /* Calculate the offset to the block */
- *offset = static_cast<uint16_t>(i * SENSOR_SHARE_BLOCK_SIZE);
-
- /* Normal completion */
- ret_api = RET_NORMAL;
- } else {
- /* No free space */
- ret_api = RET_ERROR;
- }
- } else {
- /* Failed link to shared memory */
- ret_api = RET_ERROR;
- }
- /* Semaphore unlock */
- _pb_SemUnlock(sem_id);
- } else {
- /* Semaphore lock failed */
- ret_api = RET_ERROR;
- }
- } else {
- /* Semaphore creation failed */
- ret_api = RET_ERROR;
- }
-
- return ret_api;
-}
-// LCOV_EXCL_STOP
-
-/*******************************************************************************
- * MODULE : SensorUnLinkShareData
- * ABSTRACT : Unlinking shared memory
- * FUNCTION : Unlink shared memory
- * ARGUMENT : *share_top : Start address of shared memory
- * : offset : Offset to shared memory free area
- * NOTE :
- * RETURN : RET_NORMAL : Normal completion
- * : RET_ERROR : There is no shared memory area./semaphore error
- ******************************************************************************/
-RET_API SensorUnLinkShareData(SENSOR_SHARE *share_top, uint16_t offset) { // LCOV_EXCL_START 8:dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- RET_API ret_api; /* System API return value */
- SemID sem_id; /* Semaphore ID */
- int32_t i;
-
- /* Initialization */
- ret_api = RET_ERROR;
-
- /* Create Semaphore */
- sem_id = _pb_CreateSemaphore(const_cast<char *>(SENSOR_SEMAPHO_NAME));
- if (0 != sem_id) {
- /* Semaphore Lock */
- ret_api = _pb_SemLock(sem_id);
- if (RET_NORMAL == ret_api) {
- /* Unlock the block */
- i = static_cast<int32>(offset) / SENSOR_SHARE_BLOCK_SIZE;
- share_top->mng.lock_info[i] = SENSOR_SHARE_UNLOCK;
-
- /* Semaphore unlock */
- _pb_SemUnlock(sem_id);
-
- /* Normal completion */
- ret_api = RET_NORMAL;
- } else {
- /* Semaphore lock failed */
- ret_api = RET_ERROR;
- }
- } else {
- /* Semaphore creation failed */
- ret_api = RET_ERROR;
- }
-
- return ret_api;
-}
-// LCOV_EXCL_STOP
-
-/*******************************************************************************
- * MODULE : SensorSetShareData
- * ABSTRACT : Write processing to shared memory
- * FUNCTION : Write shared memory
- * ARGUMENT : *share_top : Start address of shared memory
- * : offset : Offsets to shared memory write destination
- * : *data_src :
- : size_src :
- * NOTE :
- * RETURN : void
- ******************************************************************************/
-void SensorSetShareData(void *share_top, uint16_t offset, const void *data_src, uint16_t size_src) { // LCOV_EXCL_START 8:dead code // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SENSOR_SHARE_BLOCK_DAT *share_dat;
-
- /* Calculate Shared Memory Write Address */
- share_dat = reinterpret_cast<SENSOR_SHARE_BLOCK_DAT *>(reinterpret_cast<uint8_t *>(share_top) + offset);
- /* #QAC confirmation Rule11.4 Use structure for member reference(Cast according to shared memory link IF) */
-
- /* Clear Shared Memory */
- memset(reinterpret_cast<void *>(share_dat), 0, sizeof(SENSOR_SHARE_BLOCK_DAT));
-
- /* Set write size to shared memory */
- share_dat->size = size_src;
-
- /* Set specified data in shared memory */
- memcpy(reinterpret_cast<void *>(&share_dat->data), data_src, (size_t)size_src);
-}
-// LCOV_EXCL_STOP
-
-/*******************************************************************************
- * MODULE : PosSndMsg
- * ABSTRACT : Message transmission processing
- * FUNCTION : Send a message to the specified PNO
- * ARGUMENT : pno_src : Source PNO
- * : pno_dest : Destination PNO
- * : cid : Command ID
- * : msg_len : Message data body length
- * : *msg_len : Pointer to message data
- * NOTE :
- * RETURN : RET_NORMAL : Normal completion
- * : RET_ERRNOTRDY : Destination process is not wakeup
- * : RET_ERRMSGFULL : Message queue overflows
- * : RET_ERRPARAM : Buffer size error
- ******************************************************************************/
-RET_API PosSndMsg(PNO pno_src, PNO pno_dest, CID cid, uint16_t msg_len, const void *msg_data) {
- SENSOR_INTERNAL_MSG_BUF msg_buf; /* message buffer */
- T_APIMSG_MSGBUF_HEADER *msg_hdr; /* Pointer to the message header */
- RET_API ret_api; /* Return value */
- PCSTR thread_name; /* Destination thread name */
-
- /* Internal debug log output */
- FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__, "+");
-
- /* _CWORD71_ processing speed(Memset modification) */
- /* Initializing the header of the message buffer */
- memset(reinterpret_cast<void *>(&msg_buf.hdr), 0, sizeof(T_APIMSG_MSGBUF_HEADER));
-
- /* Get pointer to send buffer */
- msg_hdr = reinterpret_cast<T_APIMSG_MSGBUF_HEADER *>(reinterpret_cast<void *>(&msg_buf));
-
- /*--------------------------------------------------------------*
- * Create message headers *
- *--------------------------------------------------------------*/
- msg_hdr->hdr.sndpno = pno_src; /* Source PNO */
- msg_hdr->hdr.cid = cid; /* Command ID */
- msg_hdr->hdr.msgbodysize = msg_len; /* Message data body length */
-
- /*--------------------------------------------------------------*
- * Create message data *
- *--------------------------------------------------------------*/
- if ((0 != msg_data) && (0 != msg_len)) { /* Ignore->MISRA-C++:2008 Rule 5-0-5 */
- /* Set the message data */
- memcpy(reinterpret_cast<void *>(msg_buf.data), msg_data, (size_t)msg_len);
- }
- /*--------------------------------------------------------------*
- * Send messages *
- *--------------------------------------------------------------*/
- /* Get Thread Name from PNO */
- if (pno_dest <= SYS_PNO_MAX) {
- thread_name = POS_THREAD_NAME;
- } else {
- thread_name = _pb_CnvPno2Name(pno_dest);
- }
-
- if ((pno_dest <= SYS_PNO_MAX) && (pno_src <= SYS_PNO_MAX)) {
- /* Internal debug log output */
- FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__, "[LOG pno_dest = 0x%x]", pno_dest);
-
- /* Internal Process Transmission and Reception Messages */
- ret_api = _pb_SndMsg(pno_dest,
- (uint16_t)(sizeof(T_APIMSG_MSGBUF_HEADER) + msg_len),/* Ignore->MISRA-C++:2008 Rule 5-0-5 */
- reinterpret_cast<void *>(&msg_buf), 0);
- } else {
- /* Internal debug log output */
- FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__,
- "[LOG thread_name = %s, cid = 0x%x]", thread_name, cid);
-
- /* External Process Transmission and Reception Messages */
- ret_api = _pb_SndMsg_Ext(thread_name,
- cid,
- (uint16_t)(msg_len), /* Ignore->MISRA-C++:2008 Rule 5-0-5 */
- reinterpret_cast<void *>(&(msg_buf.data)), 0);
- }
- /* If RET_ERROR,Register a dialog if called from a Vehicle related thread */ /* Task_30332 */
- if (ret_api == RET_ERROR) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "[ERROR]");
- }
-
- /* Internal debug log output */
- FRAMEWORKUNIFIEDLOG(ZONE_26, __FUNCTION__, "- [ret = %d]", ret_api);
-
- return ret_api;
-}
-
-/**
- * @brief
- * Sensor information acquisition
- *
- * Obtain sensor information
- *
- * @param[in] hApp HANDLE - Application handle
- * @param[in] did DID - Data ID for vehicle information
- * @param[in] dest_data void* - Pointer representing the storage destination of vehicle sensor information
- * @param[in] dest_size uint16_t - Storage destination size of vehicle sensor information(byte)
- *
- * @return 0 or more Stored data size(Include illegal)<br>
- * POS_RET_ERROR_CREATE_EVENT Event generation failure<br>
- * POS_RET_ERROR_OUTOF_MEMORY Shared memory allocation failed<br>
- * POS_RET_ERROR_SIZE Storage destination size error<br>
- * POS_RET_ERROR_DID Unregistered ID<br>
- * POS_RET_ERROR_NOSUPPORT Unsupported environment
- *
- */
-POS_RET_API POS_GetSensData(HANDLE hApp, DID did, void *dest_data, uint16_t dest_size)
-{
- POS_RET_API ret; /* Return value */
- UNIT_TYPE type = UNIT_TYPE_NONE; /* Supported HW Configuration Type */
- BOOL ret_b;
-
- /** NULL checking */
- if ((hApp == NULL) || (dest_data == NULL)) {
- /** Parameter error */
- ret = POS_RET_ERROR_PARAM;
- } else {
- /* Positioning Base API initialization */
- _pb_Setup_CWORD64_API(hApp);
-
- /* Supported HW Configuration Check */
- type = GetEnvSupportInfo();
- if (UNIT_TYPE_GRADE1 == type) {
- /* GRADE1 */
- ret = POS_RET_NORMAL;
- } else if (UNIT_TYPE_GRADE2 == type) {
- /*
- * Note.
- * This feature branches processing depending on the unit type.
- */
- ret = POS_RET_ERROR_NOSUPPORT;
- } else {
- /* Environment error */
- ret = POS_RET_ERROR_NOSUPPORT;
- }
- }
-
- if (ret == NAVIINFO_RET_NORMAL) {
- /* Judge DID*/
- ret_b = SENSOR_DID_JUDGE_GET(did);
- if (ret_b == FALSE) {
- /* An unacceptable ID is regarded as a parameter error. */
- ret = POS_RET_ERROR_PARAM;
- } else {
- /* Data acquisition process */
- ret = PosGetProc(did, dest_data, dest_size);
- }
- }
-
- return ret;
-}