콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)

LU A API 콜 백 함 수 설명

개 요

이 문서 에서는 다 채 로운 L UA 스크 립 트 API 함 수 에서 콜 백 함 수를 사용하는 방법 과 콜 백 함 수를 호출 하는 주의 사항 을 소개 하고 아래 와 같이 일반적인 API 콜 백 인터페 이 스를 소개 합니다 .

  1. 初期化函数:on_init()

 注:MoreLUA资料可参照

适用範囲:M系列、W系列、X系列、F系列(固件版本 >= V4.2.401.0)

주의 사항

  • 大彩lua api里的回调函数不可以被其他函数调用,属于被动触发,自动回调,如用户对文本控件键值入力,触发回调函数on_control_notify(screen, control, value)

1. 1 on _ init () 함 수

LU A 스크 립 트 파일을 로 드 하기 위해 시스템이 전 원을 켜 면 즉시 이 콜 백 함 수를 호출 합니다 . 이 함 수는 일반적으로 초기 화 작업을 수행 하는 데 사용됩니다 .

화 면 구성

화 면에 두 개의 텍스트 컨트롤 을 추가 합니다 , ID 1 은 전 압 값을 표시 하고 ID 2 는 전 류 를 표시 합니다 , 다음과 같이 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure

LU A 스크 립 팅

on _ init () 함 수에 텍스트 상 자의 값을 설정 하는 API 함 수를 채 우고 시스템 초기 화 시 실행 을 호출 합니다 .구체적인 코드 아래에 표시 되어 있습니다 .

 -- ************************************************************************[[***
** 함 수 이름 : on _ init ()
** 설명 :   시스템이 초기 화 될 때 이 콜 백 함 수를 실행 합니다 .
                   참고 : 콜 백 함 수의 매 개 변 수 및 함 수 이름은 수정 할 수 없습니다 .
***************************************************************************--]]
on _ init () 함 수
    set _ value (1, 1, 10) - 텍스트 컨트롤 의 값을 설정 합니다 .
    set _ value (1, 2, 2) -- 텍스트 컨트롤 의 값을 설정 합니다 .
끝

실행 미리 보기

가상 화 면을 실행 하면 화 면의 전 압 값 은 10 이 고 전 류 값 은 2 입니다 . 다음과 같이 사용자는 lua 스크 립 트를 통해 해당 값을 수정 하여 더 익숙 해질 수 있습니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure1

1. 2 on _ s ysti ck () 함 수

이 콜 백 함 수는 1 초 마다 자동 으로 호출 됩니다 .

화 면 구성

이 화 면 은 on _ s ysti ck () 이 트 리 거 된 콜 백 횟 수를 누 적 하는 텍스트 컨트롤 을 추가 합니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure2

LU A 스크 립 팅

튜 토 리 얼 에서 on _ s ysti ck () 함 수에 콜 백 함 수가 실행 된 횟 수를 표시 하는 프로그램을 추가 했습니다 .

-- ***************************************************************************[[
** 함 수 이름 : on _ s ysti ck
** 설명 : 타이 밍 콜 백 함 수 , 시스템은 1 초 마다 자동 으로 호출 합니다 .
                  참고 : 콜 백 함 수의 매 개 변 수 및 함 수 이름은 수정 할 수 없습니다 .
***************************************************************************--]]
on _ s yysti ck () 함 수
    s ys _ timer = s ys _ timer + 1   
    set _ value (2 , 1, s ys _ timer)
끝

실행 미리 보기

on _ s ysti ck () 함 수를 초 당 트 리 거 하여 다음과 같이 작동 합니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure3

함 수 on _ timer (ti mer _ id)

on _ timer (ti mer _ id) 타이 머 가 시간 초 과 콜 백 함 수를 사용하면 별 도로 작동 하지 않습니다 .이 함 수는 start _ timer (ti mer _ id , time out , count down , repe at) 와 함께 콜 백 을 트 리 거 하여 타이 머 를 켜 야 하며 , 타이 머 가 오 버 플 로 타임 초 과 되면 on _ timer (ti mer _ id) 를 트 리 거 해야 합니다 .

화 면 구성

화 면에 두 개의 버튼 , Ena ble 타이 머 , Stop 타이 머 및 아래에 표시 된 대로 타이 머 가 초 과 된 후 호출 된 횟 수를 표시 하는 텍스트 상 자가 배치 됩니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure4

LU A 스크 립 팅

튜 토 리 얼 에서 on _ timer () 함 수에 콜 백 함 수가 실행 된 횟 수를 표시 하는 프로그램을 추가 했습니다 .

-- ***************************************************************************[[
** 함 수 이름 : on _ timer
** 설명 : 타이 머 가 시간 초 과 , 이 콜 백 함 수를 실행 합니다 .
                  참고 : 콜 백 함 수의 매 개 변 수 및 함 수 이름은 수정 할 수 없습니다 .
** 입력 값 : timer _ id 타이 머 ID 번호 , 타이 머 번호 0 ~ 31
***************************************************************************--]]
함 수 on _ timer (ti mer _ id)
     -- 타이 머 0 시간 초 과 트 리 거
    if timer _ id == 0
    그러면
        timer _ out = timer _ out + 1
        set _ value (3, 3, timer _ out)
    끝
끝

--
** 함 수 이름 : on _ control _ no tify
** 설명 : 사용자가 컨트롤 을 터 치 하여 수정 한 후 이 콜 백 함 수를 실행 합니다 .
                  버튼 컨트롤 을 클릭 하고 텍스트 컨트롤 을 수정 하거나 슬 라이 딩 막 대를 수정 하면 이 이벤 트가 트 리 거 됩니다 .
                  참고 : 콜 백 함 수의 매 개 변 수 및 함 수 이름은 수정 할 수 없습니다 .
** 입력 값 : screen ID
                  control 컨트롤 ID
                  값 컨트롤 값 (텍 스트 컨트롤 에 의해 입력 된 값 포함)
***************************************************************************--]]
on _ control _ no tify (sc reen , control , value) 함 수
 --***********************************************************
 -- 기능 : 화 면 4 의 컨트롤 1 을 누 르 면 타이 머 0 을 시작 합니다 .
 start _ timer (ti mer _ id , time out , count down , repe at) 함 수 호출
 -- 함 수 기능 : 시작 타이 머
 timer _ id , 타이 머 ID ;
 --      Time out , 시간 초 과 ;
 --      카운 트 다운 , 1 카운 트 다운 , 0 카운 트 다운
 --      반복 하다   타이 밍 , 0 무한 루 프 
 --***********************************************************
    if screen == 3 and control == 1 and value == 1 
    그러면 
        start _ timer (0, 1000 , 1, 0)       -- 타이 머 0 을 켜 서 작동 하고 타이 머 를 1 초 에 설정 하여 on _ timer 를 한 번 트 리 거 합니다 .
    else if screen == 3 과 control == 2 과 value == 1 
    그러면                            
       stop _ timer (0)          -- 타이 머 0 작동 중지
       timer _ out = 0        
    끝
    ……
끝

실행 미리 보기

타이 머 가 켜 진 후 , 시간 초 과 가 on _ timer () 를 트 리 거 하여 다음과 같은 효과를 나타 냅니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure5

on _ control _ no tify (sc reen , control , value) 함 수

이 콜 백 함 수는 사용자가 컨트롤 을 수정 하기 위해 터 치 한 후에 실행 됩니다 .단 추 컨트롤 을 클릭 하고 텍스트 컨트롤 을 수정 하고 슬 라이 딩 막 대를 수정 하는 등 이 함 수를 트 리 거 합니다 . MC U 직 렬 포 트 명령 이 컨트롤 값을 수정 하거나 스크 립 트 설정 set _ value 또는 내 장 명령 에 대한 버튼 이 다른 컨트롤 을 트 리 거 하는 등 이 콜 백 함 수를 트 리 거 하지 않습니다 . 사용자 작업 화 면 컨트롤 만 트 리 거 됩니다 .

PS : 버튼 컨트롤 에 대해 다음 두 가지 구성 중 하나를 설정 하면 on _ control _ no tify () 를 트 리 거 하지 않습니다 .

이벤트 알 림 이 아니오 로 설정 되어 있으면 버튼 컨트롤 이 누 를 때 on _ control _ no tify () 를 트 리 거 하지 않습니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure6

2. 엔지니어 링 속 성 구성 , 전역 구성 버튼 속 성 [ 단 추 이벤트 알 림 ] 에서 다음과 같이 표시 합니다 .

  • 若設定为”Close“:すべての按钮控件均不会触发
콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure7

화 면 구성

버튼 컨트롤 (ID 1), 텍스트 컨트롤 (ID 2, 키 보 드 입력), 아이 콘 컨트롤 (ID 3, 터 치 허용), 슬 라이 드 선택 컨트롤 (ID 4), 메뉴 컨트롤 (ID 5), 슬 라이 드 선택 컨트롤 (ID 6) 과 같은 일반적인 컨트롤 을 화 면에 배치 하는 예 .아래 와 같이 트 리 거 되는 컨트롤 을 기록 하는 텍스트 컨트롤 (ID 7) 을 추가 합니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure8

LU A 스크 립 팅

이 섹션 에서는 콜 백 함 수 에서 on _ control _ no tify 를 트 리 거 하는 컨트롤 을 표시 하여 텍스트 컨트롤 ID 7 에 누 른 정보를 표시 합니다 .

-- ***************************************************************************[[
** 함 수 이름 : on _ control _ no tify
** 설명 : 사용자가 컨트롤 을 터 치 하여 수정 하면 이 콜 백 함 수를 실행 합니다 .
                  버튼 컨트롤 을 클릭 하고 텍스트 컨트롤 을 수정 하거나 슬 라이 딩 막 대를 수정 하면 이 이벤 트가 트 리 거 됩니다 .
                  참고 : 콜 백 함 수의 매 개 변 수 및 함 수 이름은 수정 할 수 없습니다 .
** 입력 값 : screen ID
                  control 컨트롤 ID
                  값 컨트롤 값 (텍 스트 컨트롤 에 의해 입력 된 값 포함)
***************************************************************************--]]
on _ control _ no tify (sc reen , control , value) 함 수
 --***********************************************************
 -- 기능 : 화 면 4 의 컨트롤 1 을 누 르 면 타이 머 0 을 시작 합니다 .
 start _ timer (ti mer _ id , time out , count down , repe at) 함 수 호출
 -- 함 수 기능 : 시작 타이 머
 timer _ id , 타이 머 ID ;
 --       Time out , 시간 초 과 ;
 --     카운 트 다운 , 1 카운 트 다운 , 0 카운 트 다운
 --     반복 하다   타이 밍 , 0 무한 루 프 
 --***********************************************************
    ……
    if screen == 4 
    그러면 
        if control == 1 and value == 1        -- value == 1 단 추 를 누 릅니다 .
        그러면
            set _ text (4, 7, " but ton press ed ")
        else if control == 1 과 value == 0    -- value == 0 버튼 팝 업
        그러면
            set _ text (4, 7, " 버튼 이 팝 업 ")
        else if control == 2                  -- 텍스트 입력
        그러면
            set _ text (4, 7, " 텍 스트 입력 ")   
        else if control == 3                  -- 아이 콘 컨트롤
        그러면
            set _ text (4, 7, " T ouch icon ")
        else if control == 4                   -- 슬 라이 드 선택 컨트롤
        그러면
            set _ text (4, 7, " S lide Sele ction ")
        else if control == 5                   - - 메뉴 컨트롤
        그러면
            set _ text (4, 7, " 메 뉴 선택 ")
        else if control == 6                   -- 슬 라이 더 컨트롤
        그러면
            set _ text (4, 7, " s lide sli der ")
        끝
    끝
    ……
끝

실행 미리 보기

컨트롤 ID 1 ~ ID 6 을 차례 로 누 르 면 다음과 같습니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure9

on _ screen _ change (sc reen) 함 수

화 면 이 전환 되면 이 콜 백 함 수를 실행 합니다 .

  • screen : 화 면 전환 후 대상 화 면 ID .화 면 A 가 화 면 B 로 전환 한다고 가정 하면 , 이 동작 이 완료 되면 , 화 면 은 화 면 B 의 ' 화 면 ID ' 값 입니다 .

참고 : on _ screen _ change (sc reen) 에서 change _ screen 을 호출 하면 on _ screen _ change 를 트 리 거 하지 않습니다 .

화 면 구성

이 문서 의 버튼 컨트롤 의 속 성은 화 면 전환 으로 설정 되어 있으며 , 버튼 컨트롤 을 클릭 하면 화 면 이 지정 된 화 면 으로 전환 됩니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure10

테스트 화 면에서 두 개의 텍스트 컨트롤 을 추가 하고 스크 립 트가 on _ screen _ change 콜 백 함 수를 트 리 거 할 때 컨트롤 ID 1 을 설정 하여 현재 화 면의 ID 를 표시 하고 컨트롤 ID 2 는 숫자 값을 표시 하며 다음과 같이 구성 합니다 .

& lt ; im g sr c = " htt ps : / / image.modbus.cn/wp-content/uploads/2022/03/cb09.png

LU A 스크 립 팅

화 면 은 화 면을 전환 하는 동안 콜 백 함 수 on _ screen _ change 를 트 리 거 하여 화 면을 전환 하는 동안 대상 화 면의 두 텍스트 컨트롤 을 수정 하는 것을 구현 합니다 .

-- ***************************************************************************[[
** 함 수 이름 : on _ screen _ change
** 설명 : 화 면 이 대상 화 면 ID 로 전환 될 때 이 콜 백 함 수를 실행 합니다 .
                  참고 : 콜 백 함 수의 매 개 변 수 및 함 수 이름은 수정 할 수 없습니다 .
** 입력 값 : screen 대상 화 면 ID
*******************************************************************************--]]
on _ screen _ change () 함 수
    if screen == 8 then             -- 화 면 9 로 전환 할 때 컨트롤 1, 2 의 데이터를 수정 합니다 .
        set _ value (8, 1, screen)       - - 컨트롤 1 의 데이터 수정
        set _ value (8, 2, 30)           - - 컨트롤 2 의 데이터 수정
    끝
끝

실행 미리 보기

on _ screen _ change 를 트 리 거 하여 다음과 같은 효과를 나타 냅니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure11

1. 6 on _ draw () 함 수

이 콜 백 함 수는 다시 그 릴 때 수행 되며 , 일반적으로 모든 그리 기 및 형 상 (원 , 직 사 각형 , 선 , 점 등) 작업 이 이 함 수 에서 구현 됩니다 .화 면의 컨트롤 이 새로 고 칠 때 , 이 함 수는 또한 트 리 거 되며 , 일반적으로 red raw () 와 함께 사용됩니다 .

  • screen : 그림 이 그려 질 화 면 ID

화 면 구성

이 화 면에 두 개의 버튼 컨트롤 을 추가 하여 각각 누 르 면 다른 그림을 표시 합니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure12

LU A 스크 립 팅

LU A 버튼 을 누 르 면 show _ picture 에 다른 값을 할 당 하고 red raw () 를 호출 하면 on _ draw () 함 수를 트 리 거 하여 지정 된 이미지를 표시 합니다 .

-- ***************************************************************************[[
** 함 수 이름 : on _ draw
** 설명 : 화 면 이 새로 고 칠 때 또는 API 함 수 red raw 를 사용하여 다시 그리 기를 요청 할 때 이 콜 백 함 수를 실행 합니다 .
                  참고 : 콜 백 함 수의 매 개 변 수 및 함 수 이름은 수정 할 수 없습니다 .
** 입력 값 : screen 대상 화 면 ID
***************************************************************************--]]
on _ draw (sc reen)
    --******************************************************************************
    draw _ image (image _ id , frame _ id , d st x , d sty , wid th , he ight , sr c x , sr cy)
    -- 함 수 기능 : 그림 ID 에 따라 드 로 잉
    -- 매 개 변 수 : image _ ID 이미지 자산 의 ID
    -- frame _ ID 는 아이 콘 에 해당 하며 , 프레 임 ID 를 설정 할 수 있으며 다른 그림 은 0 으로 고정 됩니다 .
    -- d st x   그림 은 X 좌 표를 표시 합니다 .
    - - d sty   그림 은 Y 좌 표를 표시 합니다 .
    -- wid th    화 면 표 시 폭
    - - he ight   그림 표시 높이
    -- sr c x   이미지 자 르기 X 좌 표
    - - sr cy   그림 자 르기 Y 좌 표   
    --*****************************************************************************
    if screen == 6 및 show _ picture == 1
    그러면
        draw _ image (2 3, 0, 19 0, 16 0, 43 0, 23 0, 0, 0)
    else if screen == 6 과 show _ picture == 2 
    그러면 
        draw _ image (2 4, 0, 19 0, 16 0, 43 0, 23 0, 0, 0) 
    끝
끝

on _ control _ no tify (sc reen , control , value) 함 수
    if screen == 5
    그러면
        if control == 1 and value == 1             - - 그림 그리 기 1
        그러면
            show _ picture = 1
            다시 그리 기 ()                             -- 다시 그리 기 요청
        else if control == 2 및 value == 1         - - 그림 그리 기 2
        그러면
            show _ picture = 2
            다시 그리 기 ()                               -- 다시 그리 기 요청
        끝
    끝
끝

실행 미리 보기

다음과 같이 그 립니다 .

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure13

1. 7 USB 드라이브 / SD 카드 콜 백 기능

USB 드라이브 를 삽 입 하고 SD 카드를 삽 입 할 때 on _ us b _ ins ert 를 트 리 거 합니다 .ted (dir) 또는 on _ sd _ inserted (dir) USB 드라이브를 분리하고 SD 카드를 삽입하는 경우 on _ usb _ removed () 또는 on _ sd _ removed () 함수를 트리거합니다.

  • dir: 이 매개 변수는 USB 드라이브 또는 SD 카드의 드라이브 문자를 나타냅니다.

참고: 구체적으로 SD 또는 USB 드라이브, 물리적 화면에 따라, 테스트 경험 API, 물리적 화면에서 테스트하십시오.

엔지니어링 구성

화면에서 두 개의 텍스트 컨트롤, 컨트롤 ID 1 은 USB 드라이브 트리거 관련 정보를 표시하고 컨트롤 ID 2 는 SD 카드 트리거 관련 정보를 표시하는 데 사용됩니다.

콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)Figure14

LUA 스크립팅

USB 드라이브 / SD 카드 삽입 및 분리 시 LUA 스크립트 코드는 다음과 같습니다.

--***************************************************************************[[
** 함수 이름: on _ usb _ inserted
** 설명: USB 드라이브를 삽입한 후 이 콜백 함수를 실행합니다.
                  참고: 콜백 함수의 매개 변수 및 함수 이름은 수정할 수 없습니다.
** Input value: dir USB 드라이브의 경로
***************************************************************************--]]
on _ usb _ inserted (dir)
       set _ text (7, 1, dir)    -- USB 드라이브 경로 표시
끝
--***************************************************************************[[
** 함수 이름: on _ sd _ inserted
** 설명: SD 카드를 삽입한 후 이 콜백 함수를 실행합니다.
                  참고: 콜백 함수의 매개 변수 및 함수 이름은 수정할 수 없습니다.
** 입력 값: dir SD 카드의 경로
***************************************************************************--]]
on _ sd _ inserted (dir)
    set _ text (7, 2, dir)    -- SD 카드 경로 표시  
끝
--***************************************************************************[[
** 함수 이름: on _ sd _ inserted
** 설명: USB 드라이브를 뽑은 후 이 콜백 함수를 실행합니다.
                  참고: 콜백 함수의 매개 변수 및 함수 이름은 수정할 수 없습니다.
***************************************************************************--]]
on _ usb _ removed ()
    set _ text (7, 1, "USB 드라이브 분리됨 ")
끝
--***************************************************************************[[
** 함수 이름: on _ sd _ inserted
** 설명: SD 카드를 분리한 후 이 콜백 함수를 실행합니다.
                  참고: 콜백 함수의 매개 변수 및 함수 이름은 수정할 수 없습니다.
***************************************************************************--]]
on _ sd _ removed () 함수
    set _ text (7, 2, "SD 카드 제거됨 ")
끝
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.