Bài toán “Slide to unlock màn hình khóa cho HMI” này chỉ là nghịch chút, nhưng thấy khá hay, 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ư mở khóa màn hình iPhone
Giải pháp:
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:
Macro như sau:
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. J
Video minh họa:
Download Demo Project:
Demo_Slide_to_Unlock_[Unlockplc.com].rar
Các bạn cứ thử làm nhé, sẽ ngộ ra nhiều điều, còn gì thắc mắc cứ để lại comment, mình sẽ giải đáp.
Like, comment và share nếu nó có ích cho bạn.