WFF ใช้ภาษานิพจน์เพื่อเปิดใช้สิ่งต่อไปนี้
- การเปลี่ยนรูปลักษณ์โดยใช้
Transform
หรือGyro
- ลักษณะการทํางานแบบมีเงื่อนไขผ่านคำสั่ง
Condition
- การจัดรูปแบบสตริงในองค์ประกอบ
Template
ภาษานิพจน์เป็นภาษาสคริปต์ที่มีโอเปอเรเตอร์ทั่วไปและฟังก์ชันต่างๆ ที่ใช้ได้
นิพจน์สามารถใช้แหล่งข้อมูลซึ่งแสดงด้วยวงเล็บเหลี่ยมเพื่อให้คุณตอบสนองต่ออินพุตภายนอก เช่น วันที่และเวลาปัจจุบัน เมตริกด้านสุขภาพและการออกกำลังกาย หรือแม้แต่สภาพอากาศ
เมื่อใช้นิพจน์ ความแตกต่างหลักระหว่างการใช้ Transform
หรือ Template
กับ Condition
คือ Transform
และ Template
กำหนดให้นิพจน์แสดงผลเป็นค่า (เช่น ตำแหน่งใหม่ขององค์ประกอบที่ล้อมรอบ) ส่วน Condition
กำหนดให้นิพจน์แสดงผลเป็น บูลีน
เช่น Condition
อาจใช้
[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7
ซึ่งจะประเมินเป็นบูลีนและระบุว่าเป็นช่วงวันหยุดสุดสัปดาห์หรือไม่โดยใช้แหล่งข้อมูล DAY_OF_WEEK
ระบบยังรองรับฟังก์ชันด้วย เช่น นิพจน์สำหรับการหมุนค่าได้สูงสุด 5 องศาในทิศทางใดทิศทางหนึ่ง โดยอิงตาม x-value
ของอุปกรณ์ Wear OS ที่ใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหว
(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) +
(-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)
ฟังก์ชัน clamp()
จะจำกัดค่าให้อยู่ภายในขอบเขต 2 ขอบเขต
การประเมินนิพจน์อีกครั้ง
ความถี่ในการประเมินนิพจน์อีกครั้งจะขึ้นอยู่กับแหล่งข้อมูลที่ใช้ในนิพจน์ เช่น นิพจน์ [DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] ==
7
จะประเมินใหม่ก็ต่อเมื่อเริ่มวันใหม่เท่านั้น อย่างไรก็ตาม นิพจน์ที่ใช้แหล่งข้อมูล [SECOND]
จะประเมินใหม่ทุกวินาที
การประเมินอีกครั้งอาจส่งผลให้มีการคำนวณฉากใหม่และการแสดงผลใหม่ โดยอิงตามการเปลี่ยนแปลงของผลลัพธ์ของนิพจน์ ดังนั้น คุณจึงควรใช้แหล่งข้อมูลที่มีการประเมินใหม่ให้น้อยที่สุดเสมอ เช่น หากต้องการระบุว่าเป็นช่วงบ่ายหรือไม่ ให้ทำดังนี้
// Bad - re-evaluates every second
[SECONDS_IN_DAY] > 43200
// Good - limits re-evaluation frequency (1 = PM, 0 = AM)
[AMPM_STATE] == 1
ค่าการกําหนดค่าในนิพจน์
นอกเหนือจากฟังก์ชันและแหล่งข้อมูลแล้ว คุณยังใช้ค่าการกําหนดค่าได้ด้วย ตัวอย่างเช่น หากมีการกําหนด BooleanConfiguration
ชื่อ showBackgroundInAfternoon
ใน UserConfigurations คุณจะใช้ในนิพจน์ได้ดังนี้
[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1