1 Reply Latest reply on May 10, 2020 7:24 PM by NoTa_4591161
      • 1. Re: Community Translation - Generating Formatted Output Using EZ-USB FX3 SDK - KBA229781
        NoTa_4591161

        Hi,

         

        I would like to translate KBA229781 into Japanese.

         

        Thanks,

        Kenshow


        Original KBA:

        Generating Formatted Output Using EZ-USB FX3 SDK - KBA229781

         

        Translated by Kenshow

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

         

        タイトル:PSoC Creator:EZ-USB FX3 SDKを使用してフォーマットされた出力を生成する - KBA229781

         

        バージョン:**

         

        質問
        EZ-USB FX3 SDKを使用してsnprintf()機能を実装するにはどうすればよろしいでしょうか?

         

        回答
        snprintf()の実装には、CyU3PDebugStringPrint() API関数を使用できます。これは、snprintfルーチンのより単純なバージョンであり、フォーマットされたデバッグ情報をユーザー指定のバッファに出力します。

         

        この関数は「c」、「d」、「u」、「x」、「s」の変換仕様のみをサポートすることに注意してください。また、精度やタイプ修飾子もサポートしていません。このAPI関数は、その定義で以下のパラメータを使用します。

         

        extern CyU3PReturnStatus_t

        CyU3PDebugStringPrint (

                uint8_t *buffer,    /**< データが出力されるバッファ。*/

                uint16_t maxLength, /**< /**< バッファサイズ。*/

                char *fmt,          /**< 書式の指定文字。*/

            ...                /**< 可変引数リスト。*/

                );

         

        このAPIの戻り値は、バッファへの出力が成功した場合はCY_U3P_SUCCESSとなり 、フォーマットされた文字列の長さがmaxLength を超える場合のCY_U3P_ERROR_BAD_ARGUMENTのいずれかになります。

         

        要件が、フォーマットされたメッセージをユーザー定義のバッファに格納することであるとします。たとえば、「He has ‘x’ books.」というメッセージです。ユーザー提供のバッファに格納する必要があり、「x」は変数です。この場合、次のコードスニペットを使用できます。

         

        char c1[SIZE_STRING];

        uint8_t n =5;

        CyU3PDebugStringPrint ((uint8_t*)c1, SIZE_STRING, "He has %d books.\n", n);

        CyU3PDebugPrint(4,c1);

         

        このコードスニペットは、「He has 5 books.」という文字列をバッファc1に格納します。これはCyU3PDebugPrint() API関数を使用してTera Termで表示できます。

         

        Tera Termで取得した出力のスナップショットを以下に示します。

        8.png

        注: FX3 SDKに付属するサンプルプロジェクトGpioappは、上記の例を実装するように変更されています。このプロジェクトは、この記事とともに.zipファイルとして添付されます。

         

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

        11-May-2020

        Kenshow