コンテンツにスキップ

INIファイルの操作

1.1. INIファイルの概要

INIファイルは「Initialization File」の略で、初期化ファイルを意味します。INIファイルはWindowsシステムで一般的な設定ファイルの保存形式ですが、現在ではLinuxの設定ファイルとしても広く使用されています。INIファイルは「セクション (Section)」、「キー (Key)」、「値(Value)」で構成されます。「セクション」の表現方法は [Section1 Name]のように角括弧 []で囲みます。これは段落の開始を示します。INIファイルはプロジェクト全体で共有される可能性があるため、異なる用途のパラメータ領域を区別するために「セクション」を使用する必要があります。「キー」と「値」の組み合わせの表現方法は KeyName=value であり、等号 =で区切られます。INIファイルのコメントはセミコロン ;で表され、セミコロン以降の文字はその行の終わりまで全てコメントとして扱われます。例は以下の通りです。なお、値(value)の型はint 型と string 型のみであることに注意してください。

; comment textINIファイルデータ形式の例(設定ファイルの内容)
[Section1 Name]
KeyName1=value1
KeyName2=value2
...
[Section2 Name]
KeyName21=value21
KeyName22=value22

1.2. クイックスタート

1.2.1 開発環境の準備

PC上のUbuntuシステムで run スクリプトを実行し、EASY-EAIコンパイル環境に入ります。詳細は以下の通りです。

Terminal window
cd ~/develop_environment
./run.sh 2204

1.2.2 ソースコードのダウンロードとサンプルのコンパイル

EASY-EAIコンパイル環境下で、ソースコードリポジトリを管理するディレクトリを作成します。

Terminal window
cd /opt
mkdir EASY-EAI-Toolkit
cd EASY-EAI-Toolkit
  • ダウンロードリンク: Demos.zip 上記のリンクから Demos.zip 圧縮ファイルをダウンロードし、仮想マシンの /opt/EASY-EAI-Toolkit ディレクトリにアップロードして解凍します。 対応するサンプルのディレクトリに移動し、コンパイル操作を実行します。具体的なコマンドは以下の通りです。
Terminal window
cd EASY-EAI-Toolkit-1126B/Demos/common-ini/
./build.sh

💡 注意 : 依存ライブラリがボード上に配置されているため、クロスコンパイル中は必ず/mnt のマウントを維持してください。

1.2.2 ソースコードのダウンロードとサンプルのコンパイル 図7

1.2.2 ソースコードのダウンロードとサンプルのコンパイル 図7

1.2.3 サンプルの実行

シリアルデバッグまたはSSHデバッグを通じてボードのバックグラウンドに入り、サンプルが配置されている場所に移動します。以下の通りです。

Terminal window
cd /userdata/Demo/common-ini

サンプルの実行コマンドは以下の通りです。

Terminal window
./test-iniWrapper

1.2.4 実行結果

実行結果は以下のようになります。

1.2.4 実行結果 図8

1.2.4 実行結果 図8

APIの詳細な説明、およびAPIの呼び出し(本サンプルのソースコード)については、以下の説明を参照してください。

1.3. INIファイルAPIの説明

1.3.1 インクルード/参照方法

EASY EAI api ライブラリは、本リポジトリの easyeai-apiディレクトリにあります。お客様がローカルプロジェクトで EASY EAI apiライブラリを直接呼び出せるように、プロジェクト内でリンクする必要があるライブラリやヘッダーファイル等を以下にリストアップしています。

説明CMakeでの記述Makefileでの記述
api.cmake${common_root}/ini/api.cmake無し
ヘッダーファイルディレクトリ${INI_INCLUDE_DIRS}-I ../../easyeai-api/common/ini
ソースファイルディレクトリ${INI_SOURCE_DIRS}../../easyeai-api/common/ini
ライブラリファイルディレクトリ無し無し
ライブラリリンクパラメータ${INI_LIBS}無し

APIソースコードのパスは EASY-EAI-Toolkit-1126B/easyeai-api/common/ini/です。ユーザーはソースコードを通じてインターフェースの実装を確認でき、ソースコードを直接変更することも可能です。

1.3.2 INIからの整数データの読み取り

関数のプロトタイプは以下の通りです。

int32_t ini_read_int(const char \*file, const char \*pcSection, const char \*pcKey, int \*pVal);

具体的な説明は以下の通りです。

関数名:ini_read_int()詳細
ヘッダーファイルeasyeai-api/common/ini/ini_wrapper.h
入力パラメータfile:設定ファイルのパス
pcSection:パラメータが含まれるセクション
pcKey:パラメータのキー
pVal:読み取ったパラメータ値を格納するための int 型ポインタ
戻り値成功時は 0 を返す
失敗時は -1 を返す
注意事項無し

1.3.3 INIへの整数データの書き込み

関数のプロトタイプは以下の通りです。

int32_t ini_write_int(const char \*file, const char \*pcSection, const char \*pcKey, int Val);

具体的な説明は以下の通りです。

関数名:ini_write_int()詳細
ヘッダーファイルeasyeai-api/common/ini/ini_wrapper.h
入力パラメータfile:設定ファイルのパス
pcSection:パラメータが含まれるセクション
pcKey:パラメータのキー
Val:書き込む int 型のパラメータ値
戻り値成功時は 0 を返す
失敗時は -1 を返す
注意事項設定ファイルが存在しない場合は、自動的に設定ファイルが作成されます。

1.3.4 INIからの文字列データの読み取り

関数のプロトタイプは以下の通りです。

int32_t ini_read_string(const char \*file, const char \*pcSection, const char \*pcKey, char \*pcStr, int len);

具体的な説明は以下の通りです。

関数名:ini_read_string()詳細
ヘッダーファイルeasyeai-api/common/ini/ini_wrapper.h
入力パラメータfile:設定ファイルのパス
pcSection:パラメータが含まれるセクション
pcKey:パラメータのキー
pcStr:読み取ったパラメータ値を格納するための文字列ポインタ
len:パラメータを格納するバッファの最大長(バイト数)
戻り値成功時は 0 を返す
失敗時は -1 を返す
注意事項無し

1.3.5 INIへの文字列データの書き込み

関数のプロトタイプは以下の通りです。

int32_t ini_write_string(const char \*file, const char \*pcSection, const char \*pcKey, const char \*pcStr);

具体的な説明は以下の通りです。

関数名:ini_write_string()詳細
ヘッダーファイルeasyeai-api/common/ini/ini_wrapper.h
入力パラメータfile:設定ファイルのパス
pcSection:パラメータが含まれるセクション
pcKey:パラメータのキー
pcStr:書き込む文字列データへのポインタ
戻り値成功時は 0 を返す
失敗時は -1 を返す
注意事項設定ファイルが存在しない場合は、自動的に設定ファイルが作成されます。

1.4. INIファイル操作関数の使用例

使用するコードのパスはEASY-EAI-Toolkit-1126B/Demos/common-ini/test-iniWrapper.cであり、プログラムのロジックはとなります。

1.4. INIファイル操作関数の使用例 図9

1.4. INIファイル操作関数の使用例 図9