Ngồi rảnh làm bài toán “Slide to unlock - Trượt để mở khóa màn hình cho HMI”, chia sẻ cho các bạn cách làm, từ đây các bạn có thể mở rộng nhiều ý tưởng khác nữa, có thể là Knock Code như LG, hoặc Pattern code giống Android nói chung. Cũng có thể là trượt ngang để ra Menu, nói chung là liên quan đến trượt và vuốt.:)
Yêu cầu: Hiệu ứng Slide to unlock HMI giống như trượt để mở khóa màn hình iPhone
Giải pháp: Xác định tọa độ của con trỏ lúc nhấn là nhả để xử lý dữ liệu
Tọa độ X,Y của HMI Weintek như sau:
Dùng biến nội của HMI để lấy dữ liệu tọa độ con trỏ Touch hoặc Leave (2 thuật ngữ này để tiếng Anh cho dễ hiểu). Biến lưu giá trị vị trí của con trỏ:
LW-9042: Vị trí Touch X
LW-9043: Vị trí Touch Y
LW-9044: Vị trí Leave X
LW-9045: Vị trí Leave Y
Lưu đồ thuật toán:
Lưu đồ thuật toán Slide to Unlock for HMI |
Macro như sau:
Có thể dùng cách 2 là chỉ cần cái Slide Bar kia cũng làm được nhưng mình muốn giải bài toán liên quan đến trượt và vuốt.
Download Demo Project: Slide To Unlock HMI tham khảo:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
| macro_command main() short Screen_ID, Touch_Pos[4], Distance, LW100, LB10_BienPhu //GetData Position touch and leave: X,Y From LW9042->LW9045// GetData(Touch_Pos[0], "Local HMI" , LW, 9042, 4) //Get Distance coordinates X touch and Leave Distance=Touch_Pos[2]-Touch_Pos[0] SetData(Distance, "Local HMI" , RW, 50, 1) //Clear Slide Bar LW100=0 //Bien Phu De Chi Chay Macro cho trang Main LB10_BienPhu = 1 SetData(LW100, "Local HMI" , LW, 100, 1) if Touch_Pos[1]>180 and Touch_Pos[3] < 300 then if Distance > 100 and Distance < 380 then Screen_ID=11 SetData(LB10_BienPhu, "Local HMI" , LB, 10, 1) SetData(Screen_ID, "Local HMI" , LW, 0, 1) end if end if end macro_command |
Có thể dùng cách 2 là chỉ cần cái Slide Bar kia cũng làm được nhưng mình muốn giải bài toán liên quan đến trượt và vuốt.
Download Demo Project: Slide To Unlock HMI tham khảo:
0 nhận xét:
Đăng nhận xét