2 * @copyright Copyright (c) 2017-2020 TOYOTA MOTOR CORPORATION.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef HAL_API_VEHICLE_HAL_H_
18 #define HAL_API_VEHICLE_HAL_H_
23 /** @addtogroup vehicle
26 /** @addtogroup vehicle_hal
31 #include <native_service/frameworkunified_types.h>
34 * \~english Name of the send thread
36 #define TN_LINE_SENS_READ "Vehicle Hal"
39 * @enum LineSensReadInternalServiceProtocol
40 * \~english Command ID used by Vehicle_hal to send the vehicle signal input from the jicage line to the user \n
41 To receive events with this command ID, use the interface defined in framework_unified as follows
43 * ret_status = FrameworkunifiedAttachCallbackToDispatcher(h_app, TN_LINE_SENS_READ, CID_VEHICLEHAL_LINESENS, CbCallbackFunc);
46 enum LineSensReadInternalServiceProtocol {
47 CID_VEHICLEHAL_LINESENS = 0x00000101, //!< \~english LineSens Message Command ID
48 CID_VEHICLEHAL_SPDPULSE = 0x00000102, //!< \~english SpeedPulse Message Command ID
49 CID_VEHICLEHAL_SPD = 0x00000103, //!< \~english Speed Message Command ID
50 CID_VEHICLEHAL_LINESENS_POL = 0x00000104,
51 //!< \~english voltage and RHEOSTAT Message Command ID
55 * @enum VehiclehalLinesenskindMicBit
58 enum VehiclehalLinesenskindMicBit {
59 VEHICLEHAL_LINESENSKIND_MIC_BIT_MIC = 0x01, //!< \~english MIC
60 VEHICLEHAL_LINESENSKIND_MIC_BIT_ANALOGMIC1 = 0x02, //!< \~english ANALOGMIC1
61 VEHICLEHAL_LINESENSKIND_MIC_BIT_ANALOGMIC2 = 0x04, //!< \~english ANALOGMIC2
65 * @enum VehiclehalLinesenskindMic2Bit
68 enum VehiclehalLinesenskindMic2Bit {
69 VEHICLEHAL_LINESENSKIND_MIC2_BIT_A2BHUB = 0x01, //!< \~english A2BHUB
70 VEHICLEHAL_LINESENSKIND_MIC2_BIT_MULTIMIC1 = 0x02, //!< \~english MULTIMIC1
71 VEHICLEHAL_LINESENSKIND_MIC2_BIT_MULTIMIC2 = 0x04, //!< \~english MULTIMIC2
72 VEHICLEHAL_LINESENSKIND_MIC2_BIT_MULTIMIC3 = 0x08, //!< \~english MULTIMIC3
73 VEHICLEHAL_LINESENSKIND_MIC2_BIT_MULTIMIC4 = 0x10, //!< \~english MULTIMIC4
74 VEHICLEHAL_LINESENSKIND_MIC2_BIT_MULTIMIC5 = 0x20, //!< \~english MULTIMIC5
75 VEHICLEHAL_LINESENSKIND_MIC2_BIT_MULTIMIC6 = 0x40, //!< \~english MULTIMIC6
76 VEHICLEHAL_LINESENSKIND_MIC2_BIT_ANC = 0x80, //!< \~english ANC
80 * @enum VehicleHalLineSensKind
81 * \~english Line Sensor kind
83 enum VehicleHalLineSensKind {
84 VEHICLEHAL_LINESENSKIND_IG = 0, //!< \~english IG
85 VEHICLEHAL_LINESENSKIND_PKB, //!< \~english PKB
86 VEHICLEHAL_LINESENSKIND_REV, //!< \~english REV
87 VEHICLEHAL_LINESENSKIND_ILL, //!< \~english ILL
88 VEHICLEHAL_LINESENSKIND_LOWVOLTAGE, //!< \~english LOWVOLTAGE
89 VEHICLEHAL_LINESENSKIND_ADIM, //!< \~english ADIM
90 VEHICLEHAL_LINESENSKIND_MIC, //!< \~english MIC,ANALOGMIC1,ANALOGMIC2
91 VEHICLEHAL_LINESENSKIND_USBPOWERSUPPLY, //!< \~english USB Power Supply[10mA]
92 VEHICLEHAL_LINESENSKIND_MIC2, //!< \~english A2BHUB,MULTIMIC1 to 6,ANC
93 VEHICLEHAL_LINESENSKIND_NUM, //!< \~english MAX Number
97 * @enum VEHICLEHAL_RET_TYPE
98 * \~english The return value of vehicle_hal API
104 VEHICLEHAL_RET_SUCCESS = 0,
106 * \~english Car Signal Ctrl Api Initialize failed
108 VEHICLEHAL_RET_ERR_HARDINIT,
110 * \~english McSend Open failed
112 VEHICLEHAL_RET_ERR_MCOPEN,
114 * \~english Create Thread failed
116 VEHICLEHAL_RET_ERR_THREADSTART,
118 * \~english Invalid paramter
120 VEHICLEHAL_RET_ERR_PARAM,
121 }VEHICLEHAL_RET_TYPE;
124 * @struct VehicleHalSpeedPulse
125 * \~english Struct of SpeedPulse
127 struct VehicleHalSpeedPulse {
128 float pulse; //!< \~english speed pulse[Hz]
129 float period; //!< \~english pulse period[ms]
133 * @struct VehicleHalLineSensMsg
134 * \~english Struct of Meassage
136 struct VehicleHalLineSensMsg {
137 uint8_t stdata[VEHICLEHAL_LINESENSKIND_NUM]; //!< \~english line data
141 * @struct VehicleHalPol
142 * \~english Struct of VehicleHalPolling
144 struct VehicleHalPol {
145 uint8_t vb; //!< \~english voltage [10 * v]
146 uint8_t rheostat; //!< \~english RHEOSTAT [10 * v]
150 * \ingroup VehicleHalStart
151 * \~english @par Brief
152 * API to start the vehicle_hal
153 * \~english @param [in] happ
154 * HANDLE - Handle for Application
155 * \~english @retval VEHICLEHAL_RET_SUCCESS : Success
156 * \~english @retval VEHICLEHAL_RET_ERR_HARDINIT : Car Signal Ctrl Api Initialize failed
157 * \~english @retval VEHICLEHAL_RET_ERR_MCOPEN : McSend Open failed
158 * \~english @retval VEHICLEHAL_RET_ERR_THREADSTART : Create Thread failed
159 * \~english @retval VEHICLEHAL_RET_ERR_PARAM : Invalid paramter
160 * \~english @par Prerequisite
162 * \~english @par Change of internal state
163 * - If start successfully, vehicle_hal changes from stop to start.
164 * - If start failed, the state of the vehicle_hal remains no change.
165 * \~english @par Conditions of processing failure
166 * - Car Signal Ctrl Api Initialize failed.
167 * - McSend Open failed.
168 * - Create Thread failed.
169 * \~english @par Classification
171 * \~english @par Type
173 * \~english @par Detail
174 * - Start the vehicle_hal service.
175 * - The API can only be used by 1 process.
179 VEHICLEHAL_RET_TYPE VehicleHalStart(HANDLE happ);
182 * \ingroup VehicleHalStop
183 * \~english @par Brief
184 * API to stop the vehicle_hal
185 * \~english @param [in] happ
186 * HANDLE - Handle for Application
187 * \~english @retval VEHICLEHAL_RET_SUCCESS : Success
188 * \~english @retval VEHICLEHAL_RET_ERR_PARAM : Invalid paramter
189 * \~english @par Prerequisite
190 * vehicle_hal start successfully.
191 * \~english @par Change of internal state
192 * - If start successfully, vehicle_hal changes from start to stop.
193 * - If start failed, the state of the vehicle_hal remains no change.
194 * \~english @par Conditions of processing failure
196 * \~english @par Classification
198 * \~english @par Type
200 * \~english @par Detail
201 * - Stop the vehicle_hal service.
202 * - The API can only be used by 1 process.
206 VEHICLEHAL_RET_TYPE VehicleHalStop(HANDLE happ);
208 /** @}*/ //!< end of vehicle_hal
209 /** @}*/ //!< end of vehicle
210 #endif // HAL_API_VEHICLE_HAL_H_