本文主要闡述的是大彩串口屏如何使用lua腳本實現定時和計時的操作功能,目前這兩個應用在工業上或者生活中都有廣泛應用。大彩屏定時功能是設置一個具體的時間,然后時間到了用戶設定的時間之后,對應就會以消息的方式通知設備,設備可以按照具體的執行方式動作;大彩屏計時功能是設置一個計時的時間范圍,對應啟動計時之后,時間就會以倒計時的方式來計時,時間計時到0之后,同樣以消息的方式通知設備,設備可以按照具體的執行方式動作。
3.1 界面配置
大彩串口屏定時的功能主要是:用戶在界面上設置定時時間,點擊“啟動”按鈕觸發。當定時時間到了的話,屏幕會通過串口發送通知指令給設備。
本例子界面配置主要是通過文本控件和按鈕控件來實現,文本控件通過系統鍵盤來輸入定時參數,按鈕控件實現觸發動作確認。界面設置如圖3-1所示。
圖3-1 定時界面配置
本例子中使用的控件為文本控件和按鈕控件。
(1) 文本控件主要是用于參數的輸入,對應的輸入方式設置成系統鍵盤輸入。相應的屬性設置如圖3-2所示。
圖3-2 文本控件屬性
(2) 按鈕控件主要是用于觸發動作的操作,按鈕控件有兩個狀態:彈起/按下,操作風格設置成開關,彈起狀態是啟動,按下狀態是停止;相應的屬性設置如圖3-3所示。
圖3-3 按鈕控件屬性
3.2 腳本編寫
腳本實現的功能:用戶在界面上設置定時時間,然后點擊啟動按鈕去觸發定時。當定時時間到了的話,屏幕會通過串口發指令給設備,界面的按鈕顯示也會由停止變成啟動;同時,用戶也可以點擊按鈕來停止當前操作,重新設置定時時間,點擊啟動會以新設置的時間定時。
腳本實現的思路:通過控件通知函數on_control_notify(screen,control,value) 來執行按鈕按下或者彈起的操作,對應開啟定時器start_timer(timer_id,timeout,countdown,repeat) 進入到on_timer(timer_id) 的函數,按照相應的timer_id來執行操作。通過get_value(screen,value) 獲取到用戶設置的時間,然后get_data_time()獲取的是當前的RTC時間,最后判斷用戶設置的時間是否和當前的RTC時間一致,一致的話,對應就會觸發uart_send_data(packet)發送串口指令AA 01。相應的變量函數如圖3-4,圖3-5所示。
圖3-5 定時功能函數
大彩串口屏計時的功能主要是:用戶在界面上設置計時時間,點擊“啟動”按鈕觸發,時間就會進入倒計時,當定時時間到了的話,屏幕會通過串口發送通知指令給設備。
本例子界面配置主要是通過文本控件和按鈕控件來實現,文本控件通過系統鍵盤來輸入計時參數,按鈕控件實現觸發動作確認。界面設置如圖4-1所示。
圖4-1 計時界面配置
4.1.1 控件配置
大彩串口屏計時界面的控件配置和定時界面是一樣的,對應可以參考定時界面的控件配置。
4.2 腳本編寫
腳本實現的功能:用戶在界面上設置計時時間,然后點擊啟動按鈕去觸發倒計時。當計時時間達到的話,屏幕會通過串口發指令給設備,界面的按鈕顯示也會由停止變成啟動;同時,用戶也可以點擊按鈕來停止當前操作,重新設置計時時間,點擊啟動會以新設置的時間計時。
腳本實現的思路:通過控件通知函數on_control_notify(screen,control,value)來執行按鈕按下或者彈起的操作,同時將設置的時間值轉化成秒變量count,然后對應開啟定時器start_timer(timer_id,timeout,countdown,repeat)進入到on_timer(timer_id)的函數,按照相應的timer_id來執行操作。通過定時一秒進入一次on_timer(timer_id),每次進入都會觸發count的值減1,當count等于0就代表計時時間達到了,對應就會觸發uart_send_data(packet)發送串口指令AB 01。相應的變量函數如圖4-2,圖4-3所示。
圖4-2 計時按鈕控件觸發函數
圖4-3 計時功能函數
工程設置完畢之后,可以通過虛擬屏來調試編寫的lua腳本,用戶在設置完相應的定時時間,當時間達到的話,虛擬屏串口會發出AA 01的指令,如圖 5-1所示。
圖5-1 定時功能調試
5.2 計時功能調試
工程設置完畢之后,可以通過虛擬屏來調試編寫的lua腳本,用戶在設置完相應的計時時間,當計時時間為0的話,虛擬屏串口會發出AB 01的指令,如圖5-2所示。
圖5-2 計時功能調試
總 部 地 址:廣州市增城區寧西街新耀北路56號
公司郵箱:hmi@gz-dc.com
公司傳真:(020)82187676