source: rc_autosar_rh850/trunk/os-application/ModelCarControl.h@ 112

Last change on this file since 112 was 112, checked in by ertl-honda, 9 years ago

最初のリリースファイルの追加

File size: 5.9 KB
Line 
1/*
2 * TOPPERS Software
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 * Copyright (C) 2014-2015 by Center for Embedded Computing Systems
6 * Graduate School of Information Science, Nagoya Univ., JAPAN
7 *
8 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
13 * スコード中に含まれていること.
14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
17 * の無保証規定を掲載すること.
18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
20 * と.
21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
22 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
24 * 報告すること.
25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
29 * 免責すること.
30 *
31 *
32 * 本ソフトウェアは,AUTOSAR(AUTomotive Open System ARchitecture)仕
33 * 様に基づいている.上記の許諾は,AUTOSARの知的財産権を許諾するもので
34 * はない.AUTOSARは,AUTOSAR仕様に基づいたソフトウェアを商用目的で利
35 * 用する者に対して,AUTOSARパートナーになることを求めている.
36 *
37 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
38 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
39 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
40 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
41 * の責任を負わない.
42 *
43 * $Id: ModelCarControl.h 113 2015-05-26 04:04:18Z honda $
44 */
45
46/*
47 * モデルーカー制御プログラムヘッダファイル
48 */
49
50#ifndef TOPPERS_MODEL_CAR_CONTROL_H
51#define TOPPERS_MODEL_CAR_CONTROL_H
52
53/*
54 * 共通ヘッダファイル
55 */
56#include "driver_if.h"
57#include "can_if.h"
58
59/*
60 * パワトレ関連 : ニュートラル時のステアリング角度の初期値
61 */
62#define STEER_NEUTRAL_INIT 0
63
64/*
65 * 車速,ステアリング最大/最小値
66 */
67#define DRIVE_SPEED_MAX 64
68#define DRIVE_SPEED_MIN -63
69#define STEER_ANGLE_MAX 64
70#define STEER_ANGLE_MIN -63
71
72/*
73 * ステアリングニュートラル調整値の最大/最小値
74 */
75#define STEER_NEUTRAL_MIN -32
76#define STEER_NEUTRAL_MAX 32
77
78/*
79 * ゲイン調整値
80 */
81#define SPEED_GAIN_INIT 6
82#define SPEED_GAIN_MID 10
83#define SPEED_GAIN_MIN 3
84#define SPEED_GAIN_MAX 17
85
86/*
87 * ボディ系の起動周期
88 */
89#define BODY_CYCLE_MS 100U
90
91/*
92 * DriveManagerタスクの起動周期
93 */
94#define DRIVEMANAGER_TASK_CYCLE_MS 20
95
96/*
97 * 制御系 : 起動時のボディー系の接続テスト用設定
98 * 点滅回数,点滅周期
99 */
100#define INIT_BODY_BLINK_COUNT 3
101#define INIT_BODY_BLINK_CYCLE_MS 500
102
103/*
104 * 制御系 : CAN送信周期
105 */
106#define BODYCMD_CANMSG_SEND_CYCLE_MS 100
107
108/*
109 * ウィンカーの点滅周期
110 */
111#define WINKER_INTERVAL_MS 500U
112
113/*
114 * ブザー用アラームコールバックの周期
115 */
116#define BUZZER_CYCLE_NS 125U
117
118/*
119 * ブザーの周期
120 */
121#define BUZZER_INTERVAL_MS 500U
122
123/*
124 * ブザーの操作定義
125 */
126#define BUZZER_OFF 0U
127#define BUZZER_ON 1U
128#define BUZZER_INTERVAL_ON 2U
129
130/*
131 * ウィンカーの操作定義
132 */
133#define WINKER_OFF 0U
134#define WINKER_L_ON 1U
135#define WINKER_R_ON 2U
136#define WINKER_LR_ON 3U
137#define WINKER_L_BLINK 4U
138#define WINKER_R_BLINK 5U
139#define WINKER_LR_BLINK 6U
140
141/*
142 * CANに関する定義
143 */
144
145/*
146 * CAN関連 : ボディ系コマンド用CANメッセージID
147 */
148#define BODYCMD_CANMSG_ID 16
149
150/*
151 * CAN関連 : 制御系コマンド用CANメッセージID
152 */
153#define CONTCMD_CANMSG_ID 3
154
155/*
156 * 各系の動作状況(同一ECUで動作していればTRUEとなる)
157 */
158extern boolean IsBodyOnECU;
159extern boolean IsOperatorOnECU;
160extern boolean IsControlerOnECU;
161
162/*
163 * ボディー系への状態指示構造体
164 */
165typedef struct {
166 boolean headlamp;
167 boolean foglamp;
168 boolean brakelamp;
169 boolean backlamp;
170 uint8 winker;
171 uint8 buzzer;
172}BODYCMD;
173
174/*
175 * ボディー系への状態指示用変数
176 */
177extern volatile BODYCMD g_bodycmd;
178
179/*
180 * ボディ系コマンドをCANメッセージとして送信する
181 */
182extern void SendBodyCmdCanMag(void);
183
184/*
185 * ボディ系コマンドのCANメッセージからのアンパック
186 */
187extern void UnpackBodyCmdCanMsg(uint8 *p_rx_data);
188
189/*
190 * 制御系への指示構造体
191 */
192typedef struct {
193 sint8 angle;
194 sint8 speed;
195 sint8 steern;
196 sint8 gain;
197 boolean brake;
198 boolean headlamp;
199 boolean foglamp;
200 boolean winker_l;
201 boolean winker_r;
202 boolean hazard;
203}CONTCMD;
204
205/*
206 * 制御系へのステアリングニュートラル関連の指示
207 */
208#define CONTCMD_STEERN_I 1U
209#define CONTCMD_STEERN_R 2U
210#define CONTCMD_STEERN_L 3U
211
212/*
213 * 制御系へのモータゲイン関連の指示
214 */
215#define CONTCMD_GAIN_I 1U
216#define CONTCMD_GAIN_U 2U
217#define CONTCMD_GAIN_D 3U
218
219/*
220 * 制御系へのコマンド更新通知用変数(同一ECU時)
221 */
222extern volatile boolean UpDateContCmd;
223
224/*
225 * 制御系への指示用変数
226 */
227extern volatile CONTCMD g_contcmd;
228
229/*
230 * 制御系コマンドをCANメッセージとして送信
231 */
232extern void SendContCmdCanMag(void);
233
234/*
235 * 制御系コマンドのCANメッセージからのアンパック
236 */
237extern void UnpackContCmdCanMsg(uint8 *p_rx_data);
238
239/*
240 * ステアリング値設定用API
241 */
242extern void SetSteerAngle(sint8 angle);
243
244/*
245 * 車速設定用API
246 */
247extern void SetDriveSpeed(sint8 speed);
248
249/*
250 * ブレーキ値設定用API
251 */
252extern void SetBrake(boolean brake);
253
254/*
255 * BlinLed用の初期化(blinkled.c)
256 */
257extern void LedBlinkerInit(void);
258
259/*
260 * ボディ系の初期化(BodyControl.c)
261 */
262extern void BodyControlInit(void);
263
264
265/*
266 * 制御系の初期化(RcCar.c)
267 */
268extern void RcCarInit(void);
269
270
271/*
272 * 操作系の初期化(RcCar.c)
273 */
274extern void OperationInit(void);
275
276#endif /* TOPPERS_MODEL_CAR_CONTROL_H */
Note: See TracBrowser for help on using the repository browser.