コンテンツにスキップ

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.1. QRコードの概要 図1

1.2 クイックスタート

1.2.1 開発環境の準備

このドキュメントを初めて読む場合は、『スタートガイド/開発環境の準備/Easy-Eaiコンパイル環境の準備と更新』を一読し、その手順に従ってコンパイル環境の構築を行ってください。

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-qrcode/
./build.sh

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

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

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

1.2.3 サンプルの実行

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

Terminal window
cd /userdata/Demo/common-qrcode

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

Terminal window
./test-QRCode

1.2.4 実行結果

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

テストプログラムを実行すると、「QRCode.png」という名前の画像が生成されます

1.2.4 実行結果 図4

1.2.4 実行結果 図4

【コンパイルウィンドウ】に戻り、eog コマンドを使用して直接画像を開きます。

Terminal window
eog /mnt/userdata/Demo/common-qrcode/QRCode.png

1.2.4 実行結果 図5

1.2.4 実行結果 図5

もし EASY-EAI コンパイル環境で eog コマンドが見つからないというプロンプトが出た場合は、以下の操作でインストールしてください。

Terminal window
sudo apt-get update
sudo apt-get install eog

または、画像をボードからPCにコピーすることも可能です。

Terminal window
cp /mnt/userdata/Demo/common-qrcode/QRCode.png ./Release

APIの詳細な説明、および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 !");