QRコードの生成
1.1 QRコードの概要
QRコードは2次元バーコード(二次元コード)とも呼ばれ、一般的に普及しているものはQR Codeです。QRはQuick Responseの略で、近年モバイルデバイス上で非常に流行しているエンコード方式であり、従来のバーコード(Bar Code)よりも多くの情報を保存でき、より多くのデータ型を表現することができます。 QRコードには全部で40のサイズがあります。公式にはバージョン(Version)と呼ばれています。Version 1は 21 x 21 の行列、Version 2は 25 x 25 の行列、Version 3は 29 x 29のサイズです。1バージョン上がるごとにサイズが4増えます。計算式は(V-1)*4 + 21(Vはバージョン番号)です。最大は Version 40であり、(40-1)*4+21 = 177 となるため、最大で 177 x 177正方形になります。 QRコードには一定の誤り訂正能力があり、この誤り訂正機能は主にリード・ソロモン誤り訂正アルゴリズム(Reed-Solomon error correction)によって実現されています。
QRコードの構造:

1.1. QRコードの概要 図1
1.2 クイックスタート
1.2.1 開発環境の準備
このドキュメントを初めて読む場合は、『スタートガイド/開発環境の準備/Easy-Eaiコンパイル環境の準備と更新』を一読し、その手順に従ってコンパイル環境の構築を行ってください。
PC上のUbuntuシステムで runスクリプトを実行し、EASY-EAIコンパイル環境に入ります。詳細は以下の通りです。
cd ~/develop_environment./run.sh 22041.2.2 ソースコードのダウンロードとサンプルのコンパイル
EASY-EAIコンパイル環境下で、ソースコードリポジトリを管理するディレクトリを作成します。
cd /optmkdir EASY-EAI-Toolkitcd EASY-EAI-ToolkitDemos.zip は、次のリンクからダウンロードできます。
上記のリンクから Demos.zip 圧縮ファイルをダウンロードし、仮想マシンの /opt/EASY-EAI-Toolkit ディレクトリにアップロードして解凍します。 対応するサンプルのディレクトリに移動し、コンパイル操作を実行します。具体的なコマンドは以下の通りです。
cd EASY-EAI-Toolkit-1126B/Demos/common-qrcode/./build.sh💡 注意 : 依存ライブラリがボード上に配置されているため、クロスコンパイル中は必ず/mnt のマウントを維持してください。

1.2.2 ソースコードのダウンロードとサンプルのコンパイル 図3
1.2.3 サンプルの実行
シリアルデバッグまたはSSHデバッグを通じてボードのバックグラウンドに入り、サンプルが配置されている場所に移動します。以下の通りです。
cd /userdata/Demo/common-qrcodeサンプルの実行コマンドは以下の通りです。
./test-QRCode1.2.4 実行結果
実行結果は以下のようになります。
テストプログラムを実行すると、「QRCode.png」という名前の画像が生成されます

1.2.4 実行結果 図4
【コンパイルウィンドウ】に戻り、eog コマンドを使用して直接画像を開きます。
eog /mnt/userdata/Demo/common-qrcode/QRCode.png
1.2.4 実行結果 図5
もし EASY-EAI コンパイル環境で eog コマンドが見つからないというプロンプトが出た場合は、以下の操作でインストールしてください。
sudo apt-get updatesudo apt-get install eogまたは、画像をボードからPCにコピーすることも可能です。
cp /mnt/userdata/Demo/common-qrcode/QRCode.png ./ReleaseAPIの詳細な説明、およびAPIの呼び出し(本サンプルのソースコード)については、以下の説明を参照してください。
1.3 QRコード生成APIの説明
EASY EAI API はQRコード生成ツールをカプセル化しており、情報を渡すだけでQRコード画像を生成できるため、ユーザーが自身のアプリケーション用のQRコード画像を簡単に生成できるようになっています。
1.3.1 インクルード/参照方法
EASY EAI API ライブラリは、本リポジトリの easyeai-api ディレクトリにあります。お客様がローカルプロジェクトで EASY EAI API ライブラリを直接呼び出せるように、プロジェクト内でリンクする必要があるライブラリやヘッダーファイル等を以下にリストアップしています。
| 説明 | CMakeでの記述 | Makefileでの記述 |
|---|---|---|
| api.cmake | ${common_root}/qrcode/api.cmake | 無し |
| ヘッダーファイルディレクトリ | ${QRCODE_INCLUDE_DIRS} | -I ../../easyeai-api/common/qrcode |
| ソースファイルディレクトリ | ${QRCODE_SOURCE_DIRS} | ../../easyeai-api/common/qrcode |
| ライブラリファイルディレクトリ | 無し | 無し |
| ライブラリリンクパラメータ | ${QRCODE_LIBS} | 無し |
APIソースコードのパスは EASY-EAI-Toolkit-1126B/easyeai-api/common/qrcode/ です。ユーザーはソースコードを通じてインターフェースの実装を確認でき、ソースコードを直接変更することも可能です。
1.3.2 QRコード生成の操作
QRコード生成関数のプロトタイプは以下の通りです。
long StrToQRCode(const char *file, const char *pStr);具体的な説明は以下の表の通りです。
| 関数名:StrToQRCode() | 詳細 |
|---|---|
| ヘッダーファイル | easyeai-api/common/qrencode/qrcode.h |
| 入力パラメータ | file:生成するQRコード画像の保存パス(ディレクトリを含む) 例:/userdata/myQRCode.png pStr:QRコード生成に必要な文字列 |
| 戻り値 | 成功時は 0 を返す 失敗時は -1 を返す |
| 注意事項 | 無し |
1.4 使用例
QRコード操作APIの使用例のコードパスは以下の通りです:
EASY-EAI-Toolkit-1126B/Demos/common-qrcode/test-QRCode.c
StrToQRCode(QRCODE_PATH, "hello! my name is EasyEai-api !");