summaryrefslogtreecommitdiffstats
path: root/positioning_hal/inc/Common/positioning_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'positioning_hal/inc/Common/positioning_def.h')
-rw-r--r--positioning_hal/inc/Common/positioning_def.h307
1 files changed, 307 insertions, 0 deletions
diff --git a/positioning_hal/inc/Common/positioning_def.h b/positioning_hal/inc/Common/positioning_def.h
new file mode 100644
index 00000000..df95cb3a
--- /dev/null
+++ b/positioning_hal/inc/Common/positioning_def.h
@@ -0,0 +1,307 @@
+/*
+ * @copyright Copyright (c) 2017-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 positioning_def.h
+*/
+
+#ifndef INC_COMMON_POSITIONING_DEF_H_
+#define INC_COMMON_POSITIONING_DEF_H_
+
+/*---------------------------------------------------------------------------*/
+// Include files
+
+#include <string.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+
+#include <native_service/frameworkunified_types.h>
+#include <native_service/frameworkunified_application.h>
+#include <native_service/frameworkunified_framework_if.h>
+#include <native_service/frameworkunified_multithreading.h>
+#include <native_service/frameworkunified_service_protocol.h>
+#include <vehicle_service/std_types.h>
+#include <vehicle_service/pos_message_header.h>
+#include <vehicle_service/sys_timerapi.h>
+#include <vehicle_service/WPF_STD.h>
+
+#include "gps_hal.h"
+#include "positioning_hal.h"
+
+#include "positioning_log.h"
+
+/*---------------------------------------------------------------------------*/
+// Definition
+
+#define POS_THREAD_NAME "Positioning"
+
+/**
+ * @enum ENUM_GPS_NMEA_INDEX
+ * \~english NMEA index
+ */
+typedef enum {
+ GPS_NMEA_INDEX_GGA = 0, //!< \~english GGA
+ GPS_NMEA_INDEX_DGGA, //!< \~english DGGA
+ GPS_NMEA_INDEX_VTG, //!< \~english VTG
+ GPS_NMEA_INDEX_RMC, //!< \~english RMC
+ GPS_NMEA_INDEX_DRMC, //!< \~english DRMC
+ GPS_NMEA_INDEX_GLL, //!< \~english GLL
+ GPS_NMEA_INDEX_DGLL, //!< \~english DGLL
+ GPS_NMEA_INDEX_GSA, //!< \~english GSA
+ GPS_NMEA_INDEX_GSV1, //!< \~english GSV1
+ GPS_NMEA_INDEX_GSV2, //!< \~english GSV2
+ GPS_NMEA_INDEX_GSV3, //!< \~english GSV3
+ GPS_NMEA_INDEX_GSV4, //!< \~english GSV4
+ GPS_NMEA_INDEX_GSV5, //!< \~english GSV5
+ GPS_NMEA_INDEX_GST, //!< \~english GST
+ GPS_NMEA_INDEX__CWORD44__GP_3, //!< \~english _CWORD44_,GP,3
+ GPS_NMEA_INDEX__CWORD44__GP_4, //!< \~english _CWORD44_,GP,4
+ GPS_NMEA_INDEX_P_CWORD82_F_GP_0, //!< \~english _CWORD44_,GP,0
+ GPS_NMEA_INDEX_P_CWORD82_J_GP_1, //!< \~english _CWORD44_,GP,1
+ GPS_NMEA_INDEX_MAX //!< \~english GGA
+} ENUM_GPS_NMEA_INDEX;
+
+//!< \~english Gps cycle Data Event
+#define GPS_EVT_CYCLEDATA_PROV ("GPS_EVT_CYCLEDATA_PROV")
+//!< \~english Event value: Waiting.
+#define GPS_EVT_PROV_WAIT (0x00000000)
+//!< \~english Event value: Clear Waiting status.
+#define GPS_EVT_PROV_RELEASE (0x00000001)
+
+//!< \~english Gps received
+#define GPS_CYCLECMD_NOTRCV (0x00)
+//!< \~english Gps no received
+#define GPS_CYCLECMD_RCV (0x01)
+
+//!< \~english store position of Hour data
+#define GPSCMD_DRMC_HOUR_POS (7)
+//!< \~english store position of minute data
+#define GPSCMD_DRMC_MIN_POS (9)
+//!< \~english store position of second data
+#define GPSCMD_DRMC_SEC_POS (11)
+//!< \~english store position of status
+#define GPSCMD_DRMC_STATUS_POS (14)
+//!< \~english store position of day data
+#define GPSCMD_DRMC_DAY_POS (54)
+//!< \~english store position of month data
+#define GPSCMD_DRMC_MONTH_POS (56)
+//!< \~english store position of year data
+#define GPSCMD_DRMC_YEAR_POS (58)
+
+//!< \~english store position of control code
+#define GPSCMD_RTC_CTRLCODE_POS (0)
+//!< \~english store position of year data (BCD)
+#define GPSCMD_RTC_BCD_YEAR_POS (1)
+//!< \~english store position of month data(BCD)
+#define GPSCMD_RTC_BCD_MONTH_POS (2)
+//!< \~english store position of day data(BCD)
+#define GPSCMD_RTC_BCD_DAY_POS (3)
+//!< \~english store position of hour data(BCD)
+#define GPSCMD_RTC_BCD_HOUR_POS (4)
+//!< \~english store position of minute data(BCD)
+#define GPSCMD_RTC_BCD_MIN_POS (5)
+//!< \~english store position of second data(BCD)
+#define GPSCMD_RTC_BCD_SEC_POS (6)
+//!< \~english store position of status
+#define GPSCMD_RTC_STATUS_POS (7)
+
+#define GPSCMD_RTC_CTRLCODE (0xA4) //!< \~english control code (RTC)
+#define GPSCMD_RTC_STATUS_UTCTIME (0x00) //!< \~english Normal
+#define GPSCMD_RTC_STATUS_ERRTIME (0x03) //!< \~english AbNormal
+
+// Internal thread activation status determination
+#define THREAD_STS_MSK_POS_MAIN (0x01)
+#define THREAD_STS_MSK_POS_SENS (0x02)
+#define THREAD_STS_MSK_POS_GPS (0x04)
+#define THREAD_STS_MSK_POS_GPS_RECV (0x08)
+#define THREAD_STS_MSK_POS_GPS_ROLLOVER (0x10)
+#define POS_DID_GPS_NMEA 0x8000009AU /* QAC 1281 */
+#define POS_DID_GPS_CLOCK_DRIFT 0x800000B3U /* QAC 1281 */
+#define POS_DID_GPS_CLOCK_FREQ 0x800000B4U /* QAC 1281 */
+#define VEHICLE_DID_GPS_CUSTOMDATA 0x80000094U
+#define VEHICLE_DID_GPS_CLOCK_DRIFT POS_DID_GPS_CLOCK_DRIFT
+#define VEHICLE_DID_GPS_CLOCK_FREQ POS_DID_GPS_CLOCK_FREQ
+#define CID_NAVIINFO_DELIVER (0x0205) /* Navigation information setting CID */
+#define CID_NAVIINFO_SPEED_DELIVER (0x0206) /* Vehicle speed setting CID */
+#define VEHICLE_DID_GPS_WKNROLLOVER 0x800000B2U
+#define VEHICLE_DID_GPS_TIME_RAW 0x800000B1
+#define POS_DID_GYRO_TEMP 0x80000090
+#define VEHICLE_DID_SPEED_PULSE 0x80000012
+#define VEHICLE_DID_GYRO_X 0x80000014
+#define VEHICLE_DID_GYRO_Y 0x80000020
+#define VEHICLE_DID_GYRO_Z 0x80000021
+#define VEHICLE_DID_GYRO VEHICLE_DID_GYRO_X
+#define VEHICLE_DID_REV 0x80000017
+#define VEHICLE_DID_SNS_COUNTER 0x8000001A
+#define VEHICLE_DID_GPS_COUNTER 0x8000001B
+#define VEHICLE_DID_GYRO_EXT 0x80000027 /* 3 ~ 14bit A/D value,0bit:REV */
+#define VEHICLE_DID_SPEED_PULSE_FST 0x80000028 /* Pulse(Number) */
+#define VEHICLE_DID_GYRO_FST_X 0x80000029
+#define VEHICLE_DID_GYRO_FST_Y 0x80000022
+#define VEHICLE_DID_GYRO_FST_Z 0x80000023
+#define VEHICLE_DID_GYRO_FST VEHICLE_DID_GYRO_FST
+#define VEHICLE_DID_GYRO_TEMP POS_DID_GYRO_TEMP
+#define VEHICLE_DID_SPEED_KMPH 0x80000013
+#define VEHICLE_DID_GSNS_X 0x80000015
+#define VEHICLE_DID_GSNS_Y 0x80000016
+#define VEHICLE_DID_GSNS_Z 0x80000024
+#define VEHICLE_DID_PULSE_TIME 0x8000003A
+#define CID__CWORD83__CMD_RCV 0x0103
+#define CID__CWORD83__CMD_SND_STS 0x0104
+#define CID_GPS_SERIAL0 (CID)0x0100
+#define CID_GPS_REQRESET (CID)(CID_GPS_BASE | CID_GPS_SERIAL0)
+
+#define VEHICLE_CONFIG_GPS_UNITSET_NOGPS (0x00U) //!< \~english no Gps
+#define VEHICLE_CONFIG_GPS_UNITSET__CWORD82_ (0x01U) //!< \~english _CWORD82_ Gps
+#define VEHICLE_CONFIG_GPS_UNITSET_EXTBOX (0x02U) //!< \~english extern u-blox
+
+//!< \~english no Navi
+#define VEHICLE_CONFIG_NAVI_FUNCTION_NONAVI (0x00U)
+//!< \~english Navi has AW navi
+#define VEHICLE_CONFIG_NAVI_FUNCTION_AWNAVI (0x01U)
+
+#define VEHICLE_GPS_SYSTIME_YEAR_MAX (2085U) //!< \~english Gps Time allowed max year
+#define VEHICLE_GPS_SYSTIME_MONTH_MAX (12U) //!< \~english Gps Time allowed max month
+#define VEHICLE_GPS_SYSTIME_DAY_MAX (31U) //!< \~english Gps Time allowed max day
+#define VEHICLE_GPS_SYSTIME_HOUR_MAX (23U) //!< \~english Gps Time allowed max hour
+#define VEHICLE_GPS_SYSTIME_MINUTE_MAX (59U) //!< \~english Gps Time allowed max minute
+#define VEHICLE_GPS_SYSTIME_SECOND_MAX (59U) //!< \~english Gps Time allowed max second
+
+#define VEHICLE_GPS_SYSTIME_YEAR_MIN (1986U) //!< \~english Gps Time allowed min year
+#define VEHICLE_GPS_SYSTIME_MONTH_MIN (1U) //!< \~english Gps Time allowed min month
+#define VEHICLE_GPS_SYSTIME_DAY_MIN (1U) //!< \~english Gps Time allowed min day
+#define VEHICLE_GPS_SYSTIME_HOUR_MIN (0U) //!< \~english Gps Time allowed min hour
+#define VEHICLE_GPS_SYSTIME_MINUTE_MIN (0U) //!< \~english Gps Time allowed min minute
+#define VEHICLE_GPS_SYSTIME_SECOND_MIN (0U) //!< \~english Gps Time allowed min second
+#define VEHICLE_EVENT_VAL_INIT (-14) /* Event initial value */
+//!< \~english check OK (value not change)
+#define MDEV_GPS_SRAM_CHK_OK (0)
+//!< \~english check OK(vaule change)
+#define MDEV_GPS_SRAM_CHK_CHG (1)
+//!< \~english check NG
+#define MDEV_GPS_SRAM_CHK_NG (-1)
+
+/*---------------------------------------------------------------------------*/
+// ENUMERATION
+
+/*!
+ @brief Positioning operating status definitions
+*/
+typedef enum EnumExeStsPos {
+ EPOS_EXE_STS_STOP = 0, /* Stopped */
+ EPOS_EXE_STS_RUNNING, /* Running (from FrameworkunifiedOnStart to FrameworkunifiedOnStop) */
+ EPOS_EXE_STS_RUNNING_COLDSTART /* Running after cold start */
+} EnumExeSts_POS;
+
+/*!
+ @brief Positioning Thread Startup Modes
+*/
+typedef enum EnumSetupModePos {
+ EPOS_SETUP_MODE_NORMAL = 0, /* Normal start */
+ EPOS_SETUP_MODE_DATA_RESET /* Data reset start */ /* QAC 930 */
+} EnumSetupMode_POS;
+
+/**
+ * @struct TG_GPS_RCV_DATA
+ * \~english Struct of Gps receive data for VehicleSens
+ */
+typedef struct TgGpsRcvData {
+ uint32_t dwret_status; //!< \~english return status
+ uint16_t bydata_len; //!< \~english data length
+ uint8_t bygps_data[GPS_READ_LEN]; //!< \~english receive data
+ uint8_t u_reserve2[2]; //!< \~english reserve
+} TG_GPS_RCV_DATA;
+
+/**
+ * @struct TG_GPS_NMEA_DAT
+ * \~english Struct of NMEA data
+ */
+typedef struct TgGpsNmeaDat {
+ u_int8 uc_data[GPS_NMEA_MAX_SZ]; //!< \~english NMEA data
+} TG_GPS_NMEA_DAT;
+
+/**
+ * @struct TG_GPS_CYCLEDATA_NMEA
+ * \~english Struct of NMEA cycle data
+ */
+typedef struct TgGpsCycledataNmea {
+ //!< \~english receive flag
+ u_int8 uc_rcvflag[GPS_NMEA_INDEX_MAX];
+ //!< \~english reserve
+ u_int8 u_reserve[3];
+ //!< \~english structure of NMEA data
+ TG_GPS_NMEA_DAT st_nmea[GPS_NMEA_INDEX_MAX];
+} TG_GPS_CYCLEDATA_NMEA;
+
+/**
+ * @struct TG_GPS_CYCLEDATA_BINARY
+ * \~english Struct of binary cycle data
+ */
+typedef struct TgGpsCycledataBinary {
+ u_int8 uc_rcvflag; //!< \~english receive flag
+ u_int8 u_reserve[3]; //!< \~english reserve
+ u_int8 uc_data[GPS_CMD_BINARY_SZ]; //!< \~english binary data
+ u_int8 u_reserve2[3]; //!< \~english reserve flag
+} TG_GPS_CYCLEDATA_BINARY;
+
+/**
+ * @struct TG_GPS_CYCLEDATA_FULLBIN
+ * \~english Struct of full bin cycle data
+ */
+typedef struct TgGpsCycledataFullbin {
+ u_int8 uc_rcvflag; //!< \~english receive flag
+ u_int8 u_reserve[3]; //!< \~english reserve
+ u_int8 uc_data[GPS_CMD_FULLBIN_SZ]; //!< \~english fullbin data
+ u_int8 u_reserve2; //!< \~english reserve
+} TG_GPS_CYCLEDATA_FULLBIN;
+
+/**
+ * @struct TG_GPS_CYCLEDATA_RTC
+ * \~english Struct of RTC cycle data
+ */
+typedef struct TgGpsCycledataRtc {
+ u_int8 uc_rcvflag; //!< \~english receive flag
+ u_int8 u_reserve[3]; //!< \~english reserve
+ u_int8 uc_data[GPS_DATASIZE_RTC]; //!< \~english Rtc data
+} TG_GPS_CYCLEDATA_RTC;
+
+/**
+ * @struct TG_GPS_CYCLEDATA
+ * \~english Struct of Gps cycle data
+ */
+typedef struct TgGpsCycledata {
+ u_int8 uc_sesncnt; //!< \~english count value
+ u_int8 u_reserve[3]; //!< \~english reserve
+ TG_GPS_CYCLEDATA_NMEA st_nmea_data; //!< \~english NMEA Data
+ TG_GPS_CYCLEDATA_BINARY st_binary_data; //!< \~english binary Data
+ TG_GPS_CYCLEDATA_FULLBIN st_fullbin_data; //!< \~english Full Bin Data
+ TG_GPS_CYCLEDATA_RTC st_rtc_data; //!< \~english RTC Data
+} TG_GPS_CYCLEDATA;
+
+typedef struct {
+ u_int16 year; /* YEAR */
+ u_int8 month; /* MONTH */
+ u_int8 date; /* DAY */
+ u_int8 hour; /* HOUR */
+ u_int8 minute;/* MINUTE */
+ u_int8 second;/* SECOND */
+ u_int8 flag; /* Whether or not the time is set */
+} ST_GPS_SET_TIME;
+
+/*---------------------------------------------------------------------------*/
+#endif // INC_COMMON_POSITIONING_DEF_H_
+
+/*---------------------------------------------------------------------------*/
+/*EOF*/