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

무료무료 기술 자료

이 글은 바로 읽을 수 있으며 기초 학습과 검색 유입에 적합합니다.

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

LU A API 콜 백 함 수 설명

개 요

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

  1. 初始化函数:on_init()

 注:更多LUA자료可参考

适用范围: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)插图

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)插图1

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

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

화 면 구성

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

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

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)插图3

함 수 on _ timer (ti mer _ id)

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

화 면 구성

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

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

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 을 시작 합니다 .
 시작 _ 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 
    그러면 
        시작 _ 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)插图5

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

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

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

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

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

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

  • 若设置为”닫기“:所有버튼控件均不会触发
콜 백 함 수 설명 (터 치 스크 린 L UA 스크 립 트 튜 토 리 얼 2)插图7

화 면 구성

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

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

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 을 시작 합니다 .
 시작 _ 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)插图9

on _ screen _ change (sc reen) 함 수

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

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

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

화 면 구성

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

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

테스트 화 면에서 두 개의 텍스트 컨트롤 을 추가 하고 스크 립 트가 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)插图11

1. 6 on _ draw () 함 수

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

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

화 면 구성

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

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

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)插图13

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)插图14

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 카드 제거됨 ")
끝
실제 프로젝트에 이 자료를 활용하시겠습니까?

도구 센터에서 프레임 분석, CRC 검증, 장비 디버깅을 진행하거나 요청을 제출하여 선정 및 연동 제안을 받아보세요.

엔지니어 회원

이 글을 실행 가능한 디버깅 자료로 활용하세요

가입하면 고급 프레임 분석, 자료 패키지 다운로드, 코드 예제, 엔지니어링 사례, 우선 기술 지원을 이용할 수 있어 실제 프로젝트 납품에 적합합니다.

고급 도구 무제한 이용
자료 패키지와 코드 패키지
완전한 엔지니어링 사례 라이브러리
우선 기술 지원 채널

답글 작성

이메일 주소는 공개되지 않습니다. 必填项已用 * 标注