summaryrefslogtreecommitdiffstats
path: root/positioning/client/include/Sensor_API_private.h
blob: 9314316c980feb8fdc7c3df12e1c9a5c927f15af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
/*
 * @copyright Copyright (c) 2016-2019 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.
 */

#ifndef POSITIONING_CLIENT_INCLUDE_SENSOR_API_PRIVATE_H_
#define POSITIONING_CLIENT_INCLUDE_SENSOR_API_PRIVATE_H_
/******************************************************************************
 * File name        :Sensor_API_private.h
 * System name        :GPF
 * Subsystem name    Vehicle I/F library
 ******************************************************************************/

/************************************************************************
*            Macro definitions                                          *
************************************************************************/
#define SENSOR_PUBLIC_DID_NUM                25

/*----------------------------------------------------------------------*
 *    Shared Memory Related Extensions                                                     *
 *----------------------------------------------------------------------*/
#define SENSOR_SHARE_LOCK                    0xFF           /* Locking */
#define SENSOR_SHARE_UNLOCK                  0x00           /* Unlocking */

#define SENSOR_SHARE_BLOCK_MNUM              1              /* Number of shared memory control blocks */
#define SENSOR_SHARE_BLOCK_DNUM              10             /* Number of shared memory data blocks */
/* Number of shared memory blocks */
#define SENSOR_SHARE_BLOCK_NUM               (SENSOR_SHARE_BLOCK_MNUM+SENSOR_SHARE_BLOCK_DNUM)

#define SENSOR_SHARE_BLOCK_SIZE              512            /* Shared Memory Block Size(byte) */
#define SENSOR_SHARE_HEAD_SIZE               40             /* Vehicle Sensor Information Header( (4)+1+3+16*2) */
/* Shared Memory Data Size */
#define SENSOR_SHARE_BLOCK_DSIZE             (SENSOR_SHARE_BLOCK_SIZE - SENSOR_SHARE_HEAD_SIZE)
/* Size of shared memory allocation area */
#define SENSOR_SHARE_SIZE                    (SENSOR_SHARE_BLOCK_SIZE * SENSOR_SHARE_BLOCK_NUM)

#define SENSOR_SEMAPHO_NAME                  ("SENSOR_SHARE_SEMAPHO")            /* Semaphore name */
#define GPS_INTERRUPT_SIGNAL_SEMAPHO_NAME    ("GPS_INT_SIGNAL_SHARE_SEMAPHO")    /* Semaphore name(MAX 32Byte) */
#define GYRO_CONNECT_STATUS_SEMAPHO_NAME     ("GYRO_CONNECT_STTS_SHARE_SEMAPHO") /* Semaphore name(MAX 32Byte) */
#define EPHEMERIS_NUM_SEMAPHO_NAME           ("EPHEMERIS_NUM_SHARE_SEMAPHO")     /* Semaphore name(MAX 32Byte) */
#define LOCALTIME_SEMAPHO_NAME               ("LOCALTIME_SHARE_SEMAPHO")         /* Semaphore name(MAX 32Byte) */

/*----------------------------------------------------------------------*
 *    Event Related Extensions                                                       *
 *----------------------------------------------------------------------*/
#define SENSOR_EVENT_VAL_INIT                (SENSOR_RET_ERROR_MIN - 1)    /* Event initial value */

/*----------------------------------------------------------------------*
 *    Shared Memory Related Extensions                                                     *
 *----------------------------------------------------------------------*/
#define SENSOR_SHARE_NAME                    ("SENSOR_SHARE_MEMORY")            /* Shared memory name */
#define GPS_INTERRUPT_SIGNAL_SHARE_NAME      ("GPS_INT_SIGNAL_SHARE_MEMORY")    /* Shared memory name(MAX 32Byte) */
#define GYRO_CONNECT_STATUS_SHARE_NAME       ("GYRO_CONNECT_STTS_SHARE_MEMORY") /* Shared memory name(MAX 32Byte) */
#define EPHEMERIS_NUM_SHARE_NAME             ("EPHEMERIS_NUM_SHARE_MEMORY")     /* Shared memory name(MAX 32Byte) */
#define LOCALTIME_SHARE_NAME                 ("LOCALTIME_SHARE_MEMORY")         /* Shared memory name(MAX 32Byte) */

/*-----------------------------------------------------------------------------
 * GPS local CID define
 *----------------------------------------------------------------------------*/
#define CID_DEV_REQGPS                       MAKECID(CID_DEVHIGH, 0x00)    /* GPS request          */
#define CID_DEV_REQRST                       MAKECID(CID_DEVHIGH, 0x01)    /* GPS reset request */

#define CID_GPS_SERIAL0                      (CID)0x0100    /* GPS reset request function definition    */
/* GPS reset request CID        */

/*---------------------------------------------------------------------------
 * GPS error log output
 ---------------------------------------------------------------------------*/
#define GPS_DBGMSG                           0         /* Product Shipping Log Output(WPF_DEBUGMSG)            */
#define GPS_RTLMSG                           1         /* Development test log output(WPF_RETAILMSG)        */

/*----------------------------------------------------------------------*
 *    for message                                                       *
 *----------------------------------------------------------------------*/
#define CID_SENSORIF_PKG_DELIVERY_ENTRY_EXT  0x0602    /* sensor extra package register command ID        */

/*----------------------------------------------------------------------*
 *    for JudgeDid                                                      *
 *----------------------------------------------------------------------*/
#define MODE_REGISTER_LISTENER_PKG_SENS_DATA 0         /* POS_RegisterListenerPkgSensData        */
#define MODE_REGISTER_LISTENER_SENSDATA      1         /* POS_RegisterListenerSensData        */
#define MODE_GET_SENSDATA                    2         /* POS_GetSensData        */

/************************************************************************
*            Typedef definitions                                                *
************************************************************************/

/************************************************************************
*            Struct definitions                                                 *
************************************************************************/

/************************************************************************
* TAG       : SENSOR_SHARE_MNG
* ABSTRACT  : Shared memory management area
************************************************************************/
typedef struct {
    u_int8                        lock_info[SENSOR_SHARE_BLOCK_NUM];    /* Usages    */
    u_int8                        reserve[501];                         /* 512-11    */
} SENSOR_SHARE_MNG;

/************************************************************************
* TAG       : SENSOR_SHARE_BLOCK_DAT_DAT
* ABSTRACT  : Shared memory data area(Data section details)
************************************************************************/
typedef struct {
    u_int8                        pkg_num;                              /* Number of packages    */
    u_int8                        reserve[3];
    u_int16                       offset[SENSOR_PKG_DELIVERY_MAX];      /* Offset value */
    u_int8                        data[SENSOR_SHARE_BLOCK_DSIZE];       /* Data portion        */
} SENSOR_SHARE_BLOCK_DAT_DAT;

/************************************************************************
* TAG       : SENSOR_SHARE_BLOCK_DAT
* ABSTRACT  : Shared memory data area(One block)
************************************************************************/
typedef struct {
    u_int16                       size;                                 /* Size of the data    */
    u_int8                        reserve[2];
    SENSOR_SHARE_BLOCK_DAT_DAT    data;                                 /* Data portion        */
} SENSOR_SHARE_BLOCK_DAT;

/************************************************************************
* TAG       : SENSOR_SHARE_BLOCK_MNG
* ABSTRACT  : Areas of memory that are shared
************************************************************************/
typedef struct {
    SENSOR_SHARE_MNG              mng;                                  /* Shared memory management information */
    SENSOR_SHARE_BLOCK_DAT        data[SENSOR_SHARE_BLOCK_DNUM];        /* Shared memory data portion */
} SENSOR_SHARE;

/**
 * @brief Return code list structure
 */
typedef struct {
/*
 *  Note.
 *  This feature needs to be defined according to the unit type.
 */
    BOOL                          GRADE2_ret;    /**< Return code in GRADE2 */
    BOOL                          GRADE1_ret;    /**< Return code in GARDE1 */
    DID                           did;           /**< DID                   */
} SENSOR_RET_PKG;


/************************************************************************
*            Function prototype                                            *
************************************************************************/
RET_API PosDeleteEvent(EventID event_id);
RET_API SensorLinkShareData(void **share_top, u_int32 *share_size, u_int16 *offset);
RET_API SensorUnLinkShareData(SENSOR_SHARE *share_top, u_int16 offset);

EventID PosCreateEvent(PNO pno);
void SensorSetShareData(void *share_top, u_int16 offset, const void *data_src, u_int16 size_src);
RET_API PosSndMsg(PNO pno_src, PNO pno_dest, CID cid, u_int16 msg_len, const void *msg_data);

BOOL SensorJudgeDid(DID did, uint8_t mode);

/* Function macro */
#define SENSOR_DID_JUDGE_REGLIS_PKG(did)    SensorJudgeDid(did, MODE_REGISTER_LISTENER_PKG_SENS_DATA)
#define SENSOR_DID_JUDGE_REGLIS(did)        SensorJudgeDid(did, MODE_REGISTER_LISTENER_SENSDATA)
#define SENSOR_DID_JUDGE_GET(did)           SensorJudgeDid(did, MODE_GET_SENSDATA)

#endif  // POSITIONING_CLIENT_INCLUDE_SENSOR_API_PRIVATE_H_ */