2 Replies Latest reply on Nov 12, 2020 1:20 AM by NoTa_4591161

    Community Translation - Using emWin's QR-Code functions – KBA231613

    NoTa_4591161

      Hi,               

       

      I would like to translate KBA231613 into Japanese.

      Please confirm to my work.

       

      Thanks,

      Kenshow

        • 1. Re: Community Translation - Using emWin's QR-Code functions – KBA231613
          JuyoungJ_06

          Hi, Kenshow-san

          Confirm to work this KBA.

           

          Thanks,

          Jenna

          • 2. Re: Community Translation - Using emWin's QR-Code functions – KBA231613
            NoTa_4591161

            Hi Jenna-san,

                                            

            Japanese translation was over.
            Please check below.

             

            Original KBA:

            Using emWin's QR-Code functions – KBA231613

             

            Thanks.

            Kenshow

            ==============================

             

            タイトル: emWinのQRコード機能の使用 – KBA231613

             

            バージョン:**

             

            SEGGER emWinライブラリをPSoC®デバイスで使用して、ディスプレイにGUI要素を作成できます。 バージョン5.34では、ユーザーがGUIディスプレイでQRコードを簡単に作成できる機能が追加されました。

             

            それらは4つの関数へのAPI呼び出しを単純化しました:

            • GUI_QR_Create() コードのRAMベースの構造体を作成します。注:QRコードを読み取るための最良のコントラストを提供するには、明るい(白)背景色を使用します。
            • GUI_QR_Delete() コードのRAMベースの構造体を削除します。
            • GUI_QR_Draw() ディスプレイにQRコードのRAMベースの構造体を描画します。
            • GUI_QR_GetInfo() コードに関する物理情報を取得します。

             

              詳細については、emWinユーザーガイドおよびリファレンスマニュアルを参照してください。


            GUIのプールメモリへのRAM割り当て:

                                          

            QRコードの生成には、かなりのRAMリソースが必要になる場合があります。より多くのRAMを必要とする要因は次のとおりです。

             

            • エンコードするコンテンツが大きいほど、より多くのRAMが必要になります。つまり、短いテキスト文字列はより少ないRAMを使用します。テキスト文字列が長いほど、より多くのRAMが必要になります。
            • QR「モジュール」で使用されるピクセル数。「モジュール」は、正方形の論理エンコーディング要素です。
            • ECCレベル。エラー訂正レベルが高いほど、より大きなQRビットマップが必要になります。
            • 「バージョン」が高いほど、間接的により多くのRAMが必要になる可能性があります。通常、Version = 0を使用して、コンテンツに基づいて必要なバージョンを自動検出します。

             

            十分なGUIRAMメモリを使用できるようにするには、GUIConf.h#defineGUI_NUMBYTES設定しますSeggerは、この値を少なくとも0x10000設定することをお勧めします。これにより、ライブラリ全体にGUIプールRAMメモリが割り当てられ、QRコードや必要に応じて他のGUI機能に使用されます。

             

            このRAMの量がアプリケーションに必要な量を超える場合は、提供できる最大量を割り当てます。次のステップとして、開発フェーズで、できるだけ多くのさまざまなユースケースを表示してアプリケーションを実行します。GUI_ALLOC_GetMaxUsedBytes()関数を含めて、アプリケーションで使用されているGUIRAMの実行時ピークカウントを取得します。GUI_NUMBYTESの値は、この最大値(プラス予防措置として10%)で修正することができます。

             

            注: 通常、emWinライブラリに十分なRAMが割り当てられていない場合、SysLibフォルトでクラッシュする可能性があります。

             

            コード例:

             

            #include "GUI.h"

             

            /* この例は、ディスプレイの右下隅に配置する単純なQRコード生成です。

            「モジュール」は、最小の論理要素のQR定義です。「モジュール」のサイズは、使用されたピクセル数(1次元)です。このサイズは、「X」と「Y」の両方の大きさに使用されます。

            */

                  GUI_HMEM qrCode = GUI_QR_Create(

            “This is a text string.  It could be a URL address”,

            // QRコードに使用されるUTF-8テキスト

                  2, //「モジュール」サイズの1次元ピクセルサイズを定義します。

                  GUI_QR_ECLEVEL_H, // ECCレベル。レベルが高いほど、エラー訂正が向上します。

                   0 ); // QRの「バージョン」エンコーディングスタイル。値0は、必要なものを自動検出します。

             

            /* QRCodeが仮想的に作成されたので、その大きさの情報を取得します。GUI_QR_GetInfo()を使用します。*/

            GUI_QR_INFO pInfo;

                GUI_QR_GetInfo(

                qrCode,    // 描画するQRコードのハンドル。

                  &pInfo);    // QR情報構造のメモリへのポインタ。

             

            /* QR情報を使用して、1次元のQRCodeのサイズ(pInfo.Size)を決定します。右下隅に配置するには、ディスプレイのXサイズとYサイズから差し引きます */

                UI_QR_Draw(

                qrCode,                         //描画するQRコードのハンドル。

                LCD_GetXSize()-pInfo.Size, //ディスプレイのXサイズからビットマップの1次元サイズを減算します。

                LCD_GetYSize()-pInfo.Size); //ディスプレイのYサイズからビットマップの1次元サイズを減算します。

             

                GUI_QR_Delete(qrCode);  //描画するQRコードの処理。これはもう必要ありません。割り当てられたGUIRAMを解放します。

             

            /* 使用しているディスプレイ(EINKなど)によっては、更新機能が必要になる場合があります。その他は自動的に更新される場合があります。*/

                /* ディスプレイバッファデータをディスプレイに送信します */

                UpdateDisplay(CY_EINK_FULL_4STAGE, true);   //表示を更新します。

             

            SeggerWikiページの例を参照してください:https://wiki.segger.com/QR_Code_(Sample)

             

            添付のPSoCCreator™ およびModusToolbox® プロジェクトは、さまざまなGUI_QR_Create()パラメータの設定の表示効果を示しています。

             

             

            ==============================

            12-Nov-2020

            Kenshow