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=value1KeyName2=value2...[Section2 Name]KeyName21=value21KeyName22=value221.2. クイックスタート
1.2.1 開発環境の準備
PC上のUbuntuシステムで run スクリプトを実行し、EASY-EAIコンパイル環境に入ります。詳細は以下の通りです。
cd ~/develop_environment./run.sh 22041.2.2 ソースコードのダウンロードとサンプルのコンパイル
EASY-EAIコンパイル環境下で、ソースコードリポジトリを管理するディレクトリを作成します。
cd /optmkdir EASY-EAI-Toolkitcd EASY-EAI-Toolkit- ダウンロードリンク: Demos.zip 上記のリンクから Demos.zip 圧縮ファイルをダウンロードし、仮想マシンの /opt/EASY-EAI-Toolkit ディレクトリにアップロードして解凍します。 対応するサンプルのディレクトリに移動し、コンパイル操作を実行します。具体的なコマンドは以下の通りです。
cd EASY-EAI-Toolkit-1126B/Demos/common-ini/./build.sh💡 注意 : 依存ライブラリがボード上に配置されているため、クロスコンパイル中は必ず/mnt のマウントを維持してください。

1.2.2 ソースコードのダウンロードとサンプルのコンパイル 図7
1.2.3 サンプルの実行
シリアルデバッグまたはSSHデバッグを通じてボードのバックグラウンドに入り、サンプルが配置されている場所に移動します。以下の通りです。
cd /userdata/Demo/common-iniサンプルの実行コマンドは以下の通りです。
./test-iniWrapper1.2.4 実行結果
実行結果は以下のようになります。

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