コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2

LUA APIコールバック関数説明{{LUA APIこーるばかんすうせつめい}}

概要:概要

この記事では、LUAスクリプトAPI関数のコールバック関数の使用方法とコールバック関数の呼び出しに関する注意点、一般的なAPIコールバックインターフェイスを以下に示します。

  1. 初期化関数on_init
  2. システム·ティック1sコールバック関数on_systick
  3. コントロールはコールバック关数をトリガします。on__notify screen value
  4. 画面の切り替えコールバック関数on_screen_change screen
  5. タイマ·タイムアウト·コールバック関数on_timer timer_id
  6. 図面/線分/ジオメトリのコールバック関数on_draw screen
  7. USBドライブ、SDカード用のコールバック関数on_usb_inserted dir/on_usb_removed/on_sd_inserted dir/on_sd_removed

注:LUAの詳細はこちらLUAスクリプトAPI関数インタフェース{{LUAすくりぷとAPIかんすういんたふぇ ーす}} チャプターとウェブサイト:w w w.runoob.com/lua

対象範囲Mシリーズ、Wシリーズ、Xシリーズ、Fシリーズファームウェアバージョン= V4.2.401.0

ダウンロードリンク:LUA APIコールバック関数説明{{LUA APIこーるばかんすうせつめい}}”クリックジャンプ

注意事項について

  • 大彩lua api内のコールバック関数は他の関数に呼び出されないことができません。受動的なトリガー、自動コールバック、例えばユーザーはテキストコントロールのキー値入力、トリガーコールバック関数on_control_notify screen control value
  • コールバック関数の関数名、パラメータなどは変更できません

1.1関数on_init

このコールバック関数は、システムが起動してLUAスクリプトファイルをロードした直後に呼び出されます。通常、初期化操作を1回だけ実行します。

画面の設定

画面に2つのテキストコントロールを追加します。ID1は電圧値を表示し、ID2は電流を表示します。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图

LUAスクリプト

on_init()関数にテキストボックスの数値を設定するAPI関数を入力し、システムの初期化時に実行を呼び出します。具体的なコードを示す。

--***************************************************************************
** name on_
** tions   このコールバック関数は、システムの初期化時に実行されます。
                   注意:コールバック関数のパラメータと関数名は変更できません。
***************************************************************************--]]
function on_init
    set_value 1,1,10--テキストコントロールの値を設定します。
    set_value 1,2,2--テキストコントロールの値を設定します。
End of Endシングル

プレビューの実行

仮想スクリーンを運行し、この画面の電圧値は10で、電流値は2で、以下のように、ユーザーはluaスクリプトによって対応する値を修正することができ、更に熟知して了解する

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图1

1.2関数on_systick

このコールバック関数は1秒ごとに自動的に呼び出されます

画面の設定

この画面には、on_systick()コールバックがトリガーされた回数をカウントするテキストコントロールが追加されます。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图2

LUAスクリプト

チュートリアルでは、on_systick()関数にコールバック関数の実行回数を表示するプログラムを追加しました。

--***************************************************************************
** Function name on_systick
** Descriptions 1秒ごとに自動的に呼び出されるタイミングコールバック関数。
                  注意:コールバック関数のパラメータと関数名は変更できません。
***************************************************************************--]]
function on_systick
    _   
    set_value 2,1,sys_mer
End of Endシングル

プレビューの実行

on_systick()関数が毎秒トリガーされ、次のようになります。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图3

1.3関数on_timer timer_id

on_timer timer_idタイマータイムアウトコールバック関数。単独では有効ではありません。この関数は、start_timer timer_id timer_id timeout countdown repeatとともにコールバックをトリガーし、タイマーオーバーフローがタイムアウトするとon_timer timer_idをトリガーするためにタイマーをオンにします。

画面の設定

画面には2つのボタンがあります。1つは有効タイマー、1つは停止タイマー、およびタイマーがタイムアウトした後に呼び出された回数を示すテキストボックスです。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图4

LUAスクリプト

チュートリアルでは、on_timer()関数にコールバック関数が実行された回数を表示するプログラムを追加しました。

--***************************************************************************
** Function name on_timer
** Descriptionsタイマがタイムアウトしました。このコールバック関数を実行します。
                  注意:コールバック関数のパラメータと関数名は変更できません。
** Input value timer_idタイミングタイムアウトのタイマID番号、タイマ番号0~31
***************************************************************************--]]
function on_mer mer_id
     タイマー 0のタイムアウト。
    if timer_id == 0
    そして、Then
        timer_out = timer_out +1
        set_value 3,3,timer_out
    End of Endシングル
End of Endシングル

--***************************************************************************
** Function name on_control_notify
** Descriptionsユーザーがタッチでコントロールを変更した後に、このコールバック関数を実行します。
                  ボタンコントロールのタップ、テキストコントロールの変更、スライドバーの変更によってトリガーされます。注意:コールバック関数のパラメータと関数名は変更できません。
** Input value screen 画面ID
                  Control IDコントロールID
                  valueコントロール値テキストコントロールの入力値を含む
***************************************************************************--]]
function on__noscreen value
 --***********************************************************
 --機能:画面4のコントロール1を押してタイマー 0を起動する
 --関数を呼び出しますstart_timer timer_id timeout countdown repeat
 機能:タイマーを起動する。
 パラメータ:timer_id,タイマー ID;
 --      タイムアウト、タイムアウト;
 --      カウントダウン、1ダウン、0カウントダウン
 --      repeatの   タイミング回数,0無限ループ 
 --***********************************************************
    画面== 3、制御== 1、値== 1の場合 
    そして、Then 
        start_timer 0、1000、1、0       --タイマー 0が作動し、タイマーを1秒に1回on_timerをトリガーする
    画面== 3、制御== 2、値== 1 
    そして、Then                            
       stop_timer 0          タイマー 0を停止します。
       timer_out = 0        
    End of Endシングル
    ……
End of Endシングル

プレビューの実行

タイマがオンになると、タイムアウトがon_timerをトリガし、以下のようになります。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图5

1.4関数on_control_notify screen control value

このコールバック関数は、ユーザーが修正コントロールにタッチした後に実行されます。ボタンコントロールをクリックし、テキストコントロールを変更し、スライドバーを変更するなど、この機能をトリガーします。シングルチップシリアルコマンドが制御値を変更する場合、スクリプト設定set_valueまたは他のコントロールをトリガーする内蔵コマンドのボタンはコールバック関数をトリガーしません。ユーザー操作画面コントロールのみがトリガーされます。

PSボタンコントロールでは、次の2つの構成のいずれかが設定されています。ボタンコントロールはon_control_notifyをトリガーしません。

1.個々のボタンコントロールに対しては、[イベント通知]をNOに設定すると、ボタンコントロールが押下されても、次のようにon_control_notifyはトリガされない

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图6

2.エンジニアリングプロパティ構成、グローバル構成ボタンプロパティ【ボタンイベント通知】では、次のようになります。

  • オフに設定すると、すべてのボタンコントロールがトリガーされません。
  • “押すときのみ”に設定すると、すべてのボタンコントロールが押されたときにのみトリガーされます。
  • “アップ時のみ”に設定すると、すべてのボタンコントロールがアップ時のみトリガーされます。
  • “押してアップするとき”にしたすべてのボタンコントロールが押してアップするときにトリガーする
コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图7

画面の設定

画面には、ボタン(ID1)、テキスト(ID2、キーボード入力)、アイコン(ID3、タッチ可能)、スライド選択コントロール(ID4)、メニューコントロール(ID5)、スライド選択コントロール(ID6)などの一般的なコントロールが設定されています。次に示すように、トリガーされたコントロールを記録するテキストコントロール(ID7)を追加します。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图8

LUAスクリプト

この章では、コールバック関数表示でon_control_notify対応するコントロールをトリガーし、押下された情報をテキストコントロールID7に表示します。具体的なコードは以下のとおりです。

--***************************************************************************
** Function name on_control_notify
** Descriptionsユーザーがタッチでコントロールを変更した後に、このコールバック関数を実行します。
                  ボタンコントロールのタップ、テキストコントロールの変更、スライドバーの変更によってトリガーされます。注意:コールバック関数のパラメータと関数名は変更できません。
** Input value screen 画面ID
                  Control IDコントロールID
                  valueコントロール値テキストコントロールの入力値を含む
***************************************************************************--]]
function on__noscreen value
 --***********************************************************
 --機能:画面4のコントロール1を押してタイマー 0を起動する
 --関数を呼び出しますstart_timer timer_id timeout countdown repeat
 機能:タイマーを起動する。
 パラメータ:timer_id,タイマー ID;
 --       タイムアウト、タイムアウト;
 --     カウントダウン、1ダウン、0カウントダウン
 --     repeatの   タイミング回数,0無限ループ 
 --***********************************************************
    ……
    スクリーンの場合== 4 
    そして、Then 
        制御== 1と値== 1の場合        --value == 1ボタンを押す
        そして、Then
            set_text 4、7、“ボタン押し”
        制御== 1と値== 0    --value == 0ボタンアップ
        そして、Then
            set_text 4、7、“ボタンアップ”
        Elseif Control == 2                  - テキスト入力。
        そして、Then
            set_text 4 7“テキスト入力”   
        elseif control == 3                  --アイコンコントロール
        そして、Then
            set_text 4,7“タッチアイコン”
        elseif control == 4                   - 選択コントロールのスライド
        そして、Then
            set_text 4、7、“選択のスライド”
        elseif control == 5                   - メニューのコントロール
        そして、Then
            set_text 4 7“メニュー选択”
        elseif control == 6                   --スライダコントロール
        そして、Then
            set_text 4、7、“スライダスライド”
        End of Endシングル
    End of Endシングル
    ……
End of Endシングル

プレビューの実行

コントロールID1~ID6をクリックすると、以下のようになります。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图9

1.5関数on_screen_change screen {{かんすうon_screen_change screen}}

画面が切り替わると、このコールバック関数を実行します。

  • screen:画面切り替え后の目的画面ID.画面Aが画面Bに切り替わり、この動作が完了すると、screenは画面Bの画面ID値となる

注:on_screen_change screenでchange_screen切り替え画面を呼び出しても、on_screen_changeはトリガされません。

画面の設定

本稿では,ボタンコントロールの属性を画面切替に設定し,このボタンコントロールをクリックすると指定した画面に画面が切り替わり,以下のようになる.

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图10

テスト画面に、二つのテキストコントロールを追加し、スクリプトがコールバック関数on_screen_changeをトリガする時、コントロールID1が現在の画面のIDを表示し、コントロールID2が数値を表示し、設定は以下の通りである

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图11

LUAスクリプト

画面を切り替えると同時に、コールバック関数on_screen_changeをトリガし、画面を切り替えると、ターゲット画面の2つのテキストコントロールを変更することができます。

--***************************************************************************
** name on_screen_change
** DescriptionsピクチャがターゲットピクチャIDに切り替わったときにこのコールバック関数を実行する
                  注意:コールバック関数のパラメータと関数名は変更できません。
** Input value screenターゲット画面ID
*******************************************************************************--]]
function on_screen_change screen
    スクリーンの場合== 8             --画面9に切り替えたとき、コントロール1、2のデータを修正する
        set_value 8 1 screen       コントロール1のデータを変更する
        set_value 8、2、30           コントロール2のデータを変更する。
    End of Endシングル
End of Endシングル

プレビューの実行

on_screen_changeをトリガーすると、次のようになります。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图12

1.6関数on_draw {{かんすうon_draw}}

このコールバック関数は、再描画時に実行されます。通常、すべての描画、描画ジオメトリ円、長方形、線、点などの操作はこの関数で実装されます。この関数は、画面のコントロールが更新されたときにもトリガーされます。通常はredrawで使用されます。

  • screen :必要な画像ID

画面の設定

この画面に2つのボタンコントロールを追加し、それぞれを押すと、異なる画像が表示されます。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图13

LUAスクリプト

LUAのボタンが押されたときに、show_pictureに別の値を割り当て、redrawを呼び出したときにコールバック関数on_drawをトリガして指定されたピクチャを表示する

--***************************************************************************
** name on_w
** Descriptions画面が更新されたとき、またはAPI関数redrawを使用して再描画をリクエストしたときに、このコールバック関数を実行します。
                  注意:コールバック関数のパラメータと関数名は変更できません。
** Input value screenターゲット画面ID
***************************************************************************--]]
function on_draw screen
    --******************************************************************************
    --関数を呼び出します。draw_image image_id frame_id dstx dsty width height srcx srcy
    --機能:画像IDに基づいて描画
    --引数:image_id画像リソースのID
    -frame_id対応アイコン、フレームIDを設定でき、その他の画像は0に固定
    -DSTX   X座標の画像
    -DSTY   Y座標を示す。
    --width    画像は幅を示す。
    -height。   写真は高さ。
    -srCX   画像のX座標
    -SRCY   画像のカットと座標   
    --*****************************************************************************
    screen == 6とshow_picture == 1の場合
    そして、Then
        draw_image 23、0、190、160、430、230、0、0
    elseif screen == 6およびshow_picture === 2 
    そして、Then 
        draw_image 24、0、190、160、430、230、0、0 
    End of Endシングル
End of Endシングル

function on__noscreen value
    スクリーンの場合== 5
    そして、Then
        制御== 1と値== 1の場合             - 絵を描く1
        そして、Then
            show_picture = 1
            redraw                             --再描画の申請
        制御== 2と値== 1         写真を描く2。
        そして、Then
            show_picture = 2
            redraw                               - 再描画の申請
        End of Endシングル
    End of Endシングル
End of Endシングル

プレビューの実行

描画の効果は次のとおりです

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图14

1.7 USB/SDカードコールバック関数

USBドライブとSDカードが挿入されると、on_usb_inserted dirまたはon_sd_inserted dir関数が起動されます。USBドライブとSDカードを取り外すと、on_usb_removed関数またはon_sd_removed関数がトリガーされます。

  • dir:USBドライブまたはSDカードの文字を表します。

注:具体的にはSDまたはUディスク、物理画面に基づいて、テストエクスペリエンスAPIは、物理画面でテストしてください。

エンジニアリング構成

画面には、USBスティックのトリガに関する情報を表示するためのコントロールID1とSDカードのトリガに関する情報を表示するためのコントロールID2の2つのテキストコントロールが追加されます。

コールバック関数の説明タッチスクリーンLUAスクリプトチュートリアル2插图15

LUAスクリプト

USB/SDカードの挿入および取り外し時のLUAスクリプトコードは以下のとおりです。

--***************************************************************************
** name on__inserted
** Descriptionsスティック挿入後にこのコールバック関数を実行
                  注意:コールバック関数のパラメータと関数名は変更できません。
** Input value dirスティックへのパス
***************************************************************************--]]
function on__inserted dir
       set_text 7 1 dir    --USBパスを表示
End of Endシングル
--***************************************************************************
** name on__inserted
** Descriptions SDカードの挿入後にこのコールバック関数を実行します。
                  注意:コールバック関数のパラメータと関数名は変更できません。
** Input value dir SDカードへのパス
***************************************************************************--]]
function on__inserted dir
    set_text 7 2 dir    --SDカードパスを表示  
End of Endシングル
--***************************************************************************
** name on__inserted
** Descriptionsスティックを抜いた後にこのコールバック関数を実行
                  注意:コールバック関数のパラメータと関数名は変更できません。
***************************************************************************--]]
function on_usb_removed
    set_text 7 1“USBスティックが引き抜かれました”
End of Endシングル
--***************************************************************************
** name on__inserted
** Descriptions SDカードを抜いた後にこのコールバック関数を実行します
                  注意:コールバック関数のパラメータと関数名は変更できません。
***************************************************************************--]]
function on_sd_removed
    set_text 7 2“SDカードが引き抜かれました”
End of Endシングル
この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口

发表回复

あなたのメールアドレスアドレス不会被公开。 必須項目已用 * 标注