概要
EV3RTプログラムを、C++でプログラミングするテンプレートファイルです。これはクラス利用を目的としたテンプレートファイルです。
C++ファイルを利用することで、C言語にはないクラスの概念を利用することができます。ライブラリはC言語のAPIを使用し、クラスはC++の構文を使用します。
ファイル構造
cpp_template
|- app.cpp
|- app.h
|- app.cfg
|- Makefile.inc
|- parameters.h
プログラム(必須)
Makefile.inc
は、自動化の設定ファイルです。
Makefile.inc
APPL_COBJS +=
APPL_CXXOBJS +=
SRCLANG := c++
APPL_COBJS
は、C言語のライブラリを指定します。
APPL_CXXOBJS
は、C++のライブラリを指定します。
通常タスク
app.cpp
は、EV3RTプログラムのメインファイルです。
app.cpp
#include "ev3api.h"
#include "app.h"
#include "parameters.h"
void main_task(intptr_t unused) {
}
app.h
は、EV3RTプログラムのヘッダーファイルです。
app.h
#ifdef __cplusplus
extern "C" {
#endif
#include "target_test.h"
#ifndef STACK_SIZE
#define STACK_SIZE 4096
#endif
#ifndef TOPPERS_MACRO_ONLY
extern void main_task(intptr_t exinf);
#endif
#ifdef __cplusplus
}
#endif
app.cfg
は、プログラムの実行単位であるタスクを生成するためのファイルです。
app.cfg
INCLUDE("app_common.cfg");
#include "app.h"
DOMAIN(TDOM_APP) {
CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, TMIN_APP_TPRI, STACK_SIZE, NULL });
}
ATT_MOD("app.o");
周期タスク
追加予定
プログラム(任意)
parameters.h
は、EV3RTのパラメータをマクロ定義したヘッダーファイルです。
parameters.h
// ポート設定
#ifndef PORT_PARAMETERS_H
// TODO: モータのポートを指定する
#define tail_motor EV3_PORT_A
#define right_motor EV3_PORT_B
#define left_motor EV3_PORT_C
// TODO: センサのポートを指定する
#define touch_sensor EV3_PORT_1
#define sonic_sensor EV3_PORT_2
#define color_sensor EV3_PORT_3
#define gyro_sensor EV3_PORT_4
#endif