สร้างนิพจน์

WFF ใช้ภาษาของนิพจน์เพื่อเปิดใช้สิ่งต่อไปนี้

  • การเปลี่ยนรูปลักษณ์โดยใช้ Transform หรือ Gyro
  • พฤติกรรมแบบมีเงื่อนไขผ่านคำสั่ง Condition
  • การจัดรูปแบบสตริงในองค์ประกอบ Template

ภาษาของนิพจน์เป็นภาษาสคริปต์ที่มีตัวดำเนินการทั่วไปและฟังก์ชันต่างๆ ที่ใช้ได้

นิพจน์สามารถใช้แหล่งข้อมูลที่แสดงโดยใช้วงเล็บเหลี่ยม เพื่อให้คุณตอบสนองต่ออินพุตภายนอก เช่น วันที่และเวลาปัจจุบัน เมตริกด้านสุขภาพและการออกกำลังกาย หรือแม้แต่สภาพอากาศ

เมื่อใช้นิพจน์ ความแตกต่างหลักระหว่างการใช้งาน Transform, Template และ Condition คือ Transform และ Template ต้องมีนิพจน์ เพื่อให้ได้ค่า (เช่น ตำแหน่งใหม่ขององค์ประกอบที่ล้อมรอบ) ขณะที่ Condition ต้องมีนิพจน์เพื่อให้ได้บูลีน

เมื่อใช้ในองค์ประกอบ Condition ให้ระบุนิพจน์เป็นองค์ประกอบข้อความ ครอบนิพจน์ด้วยองค์ประกอบ CDATA เพื่อหลีกเลี่ยงการใช้การอ้างอิงเอนทิตี เช่น " และ &

<![CDATA[[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7]]>

ซึ่งจะประเมินเป็นบูลีนและพิจารณาว่าเป็นวันหยุดสุดสัปดาห์หรือไม่ โดยใช้แหล่งข้อมูล DAY_OF_WEEK

นอกจากนี้ยังรองรับฟังก์ชันด้วย เช่น นิพจน์สำหรับการหมุน ค่าได้สูงสุด 5 องศาในทิศทางใดทิศทางหนึ่ง โดยอิงตามx-valueของอุปกรณ์ Wear OS ที่มีเครื่องวัดความเร่ง

(5.0/90.0)*clamp([ACCELEROMETER_ANGLE_X],0,90) +
(-5.0/90.0)*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: Minimizes re-evaluation (1 = PM, 0 = AM) -->
[AMPM_STATE] == 1

ค่าการกำหนดค่าในนิพจน์

นอกจากฟังก์ชันและแหล่งข้อมูลแล้ว ยังสามารถใช้ค่าการกำหนดค่าได้ด้วย ตัวอย่างเช่น หากใน UserConfigurations มีการกำหนด BooleanConfiguration ที่ชื่อ showBackgroundInAfternoon คุณจะใช้ค่านี้ในนิพจน์ได้

<![CDATA[[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1]]>