EV3RT C API Reference  V1.0
An RTOS-based development platform for LEGO Mindstorms EV3.
ファイルシステム

ファイルシステムに関するAPI. [詳解]

データ構造

struct  memfile_t
 メモリファイルの構造体.メモリファイルのデータは,SDカードではなく,メモリに格納される. [詳解]
 
struct  fileinfo_t
 ファイル情報の構造体. [詳解]
 

マクロ定義

#define TMAX_FILENAME_LEN   (255)
 ファイル名の最大の長さ
 

型定義

typedef uint8_t ev3_bt_addr_t[6]
 BluetoothのMACアドレスを格納する型
 

列挙型

enum  serial_port_t {
  EV3_SERIAL_DEFAULT = 0,
  EV3_SERIAL_UART = 1,
  EV3_SERIAL_BT = 2,
  EV3_SERIAL_SPP_MASTER = 3
}
 シリアルポートを表す番号 [詳解]
 

関数

ER_ID ev3_sdcard_opendir (const char *path)
 ディレクトリをオープンする. [詳解]
 
ER ev3_sdcard_readdir (ID dirid, fileinfo_t *p_fileinfo)
 ディレクトリ内のファイル情報を読み込む. [詳解]
 
ER ev3_sdcard_closedir (ID dirid)
 ディレクトリをクローズする. [詳解]
 
ER ev3_memfile_load (const char *path, memfile_t *p_memfile)
 SDカードのファイルをメモリファイルとしてロードする. [詳解]
 
ER ev3_memfile_free (memfile_t *p_memfile)
 メモリファイルを解放する. [詳解]
 
FILE * ev3_serial_open_file (serial_port_t port)
 シリアルポートをファイルとしてオープンする. [詳解]
 
bool_t ev3_bluetooth_is_connected ()
 Bluetooth (Serial Port Profile)が接続されているかどうかをチェックする. [詳解]
 
ER ev3_spp_master_reset ()
 既存の通信チャンネルをクローズして、SPPマスタ機能をリセットする。 [詳解]
 
ER ev3_spp_master_connect (ev3_bt_addr_t addr, const char *pin, const char *service)
 SPPサービスへの接続を開始する。 [詳解]
 
bool_t ev3_spp_master_is_connected ()
 SPPマスタ機能とリモートサービスの接続状態をチェックする [詳解]
 

詳解

ファイルシステムに関するAPI.

このページは本プラットフォーム独自のAPIしか記述しないが,fopen()等標準Cライブラリのファイル操作関数もサポートする.

列挙型詳解

◆ serial_port_t

シリアルポートを表す番号

列挙値
EV3_SERIAL_DEFAULT 

デフォルトのシリアルポート(ログタスク用ポート)

EV3_SERIAL_UART 

UARTポート(センサポート1)

EV3_SERIAL_BT 

Bluetooth仮想シリアルポート

EV3_SERIAL_SPP_MASTER 

Bluetooth SPPマスタの仮想シリアルポート

関数詳解

◆ ev3_bluetooth_is_connected()

bool_t ev3_bluetooth_is_connected ( )

Bluetooth (Serial Port Profile)が接続されているかどうかをチェックする.

戻り値
true接続済み.Bluetooth仮想シリアルポートで通信できる.
false接続切れ.

◆ ev3_memfile_free()

ER ev3_memfile_free ( memfile_t p_memfile)

メモリファイルを解放する.

メモリファイルにより確保されたリソース(メモリ領域)を解放する.正常終了の場合,p_memfilebuffer はNULLにクリアする.

引数
p_memfile解放するメモリファイルのポインタ
戻り値
E_OK正常終了
E_MACVメモリアクセス違反(p_memfile)
E_OBJp_memfile で指定したメモリファイルは無効

◆ ev3_memfile_load()

ER ev3_memfile_load ( const char *  path,
memfile_t p_memfile 
)

SDカードのファイルをメモリファイルとしてロードする.

メモリファイルのオブジェクトを生成して,指定したファイルをSDカードからこのメモリファイルに読み込む.エラーが発生する場合,p_memfilebuffer はNULLにクリアする.

引数
pathファイルのパス
p_memfile生成したメモリファイルのオブジェクトを格納する場所へのポインタ
戻り値
E_OK正常終了
E_MACVメモリアクセス違反(pathかp_memfile)
E_NOMEMメモリ不足
E_PARパス名は無効
E_SYSI/Oエラーが発生した(SDカード不良の可能性が高い)

Open file

Get file size & allocate memory

Perform reading

◆ ev3_sdcard_closedir()

ER ev3_sdcard_closedir ( ID  dirid)

ディレクトリをクローズする.

成功した場合,オープンされたディレクトリのリソースを解放して,そのIDは使えなくなる.

引数
diridディレクトリのID
戻り値
E_OK正常終了
E_CTX非タスクコンテストから呼び出す
E_ID不正ID番号
E_SYSI/Oエラーが発生した(SDカード不良の可能性が高い)

◆ ev3_sdcard_opendir()

ER_ID ev3_sdcard_opendir ( const char *  path)

ディレクトリをオープンする.

成功した場合,オープンされたディレクトリのIDを戻り値として返す.このIDはディレクトリ内のファイル情報を取得するために使える.

引数
pathディレクトリのパス
戻り値
>0オープンされたディレクトリのID
E_CTX非タスクコンテストから呼び出す
E_MACVメモリアクセス違反(path)
E_NOIDID番号不足
E_PARパス名は無効
E_SYSI/Oエラーが発生した(SDカード不良の可能性が高い)

dirent.h

◆ ev3_sdcard_readdir()

ER ev3_sdcard_readdir ( ID  dirid,
fileinfo_t p_fileinfo 
)

ディレクトリ内のファイル情報を読み込む.

オープンされたディレクトリから次のファイルの情報を返す.

引数
diridディレクトリのID
p_fileinfoファイル情報を格納する場所へのポインタ
戻り値
E_OK正常終了
E_CTX非タスクコンテストから呼び出す
E_ID不正ID番号
E_MACVメモリアクセス違反(p_fileinfo)
E_OBJこれ以上読み込めるファイルの情報がない
E_SYSI/Oエラーが発生した(SDカード不良の可能性が高い)

◆ ev3_serial_open_file()

FILE* ev3_serial_open_file ( serial_port_t  port)

シリアルポートをファイルとしてオープンする.

失敗の場合,NULLを返す(エラーログが出力される).

引数
portシリアルポート番号
戻り値
シリアルポートのファイル

◆ ev3_spp_master_connect()

ER ev3_spp_master_connect ( ev3_bt_addr_t  addr,
const char *  pin,
const char *  service 
)

SPPサービスへの接続を開始する。

引数
addr接続先のBluetoothデバイスのMACアドレス
pinPINコード
service接続したいSPPサービスの名前のプレフィックス
戻り値
E_OK正常に開始した。
E_CTXSPPマスタ機能はアイドル状態でないため、開始できなかった。

◆ ev3_spp_master_is_connected()

bool_t ev3_spp_master_is_connected ( )

SPPマスタ機能とリモートサービスの接続状態をチェックする

戻り値
true接続済み.Bluetooth仮想シリアルポートで通信できる.
false接続切れ.

◆ ev3_spp_master_reset()

ER ev3_spp_master_reset ( )

既存の通信チャンネルをクローズして、SPPマスタ機能をリセットする。

戻り値
E_OKアイドル状態にリセット完了