एक्सप्रेशन बनाना

WFF, एक्सप्रेशन लैंग्वेज का इस्तेमाल करके ये काम करता है:

  • Transform या Gyro का इस्तेमाल करके, आइकॉन का रंग बदलना
  • Condition स्टेटमेंट की मदद से शर्तों के हिसाब से काम करना
  • Template एलिमेंट में स्ट्रिंग फ़ॉर्मैटिंग

एक्सप्रेशन लैंग्वेज एक स्क्रिप्टिंग लैंग्वेज है. इसमें आपके सामान्य ऑपरेटर और कई फ़ंक्शन होते हैं जिनका इस्तेमाल किया जा सकता है.

एक्सप्रेशन में डेटा सोर्स का इस्तेमाल किया जा सकता है. इन्हें स्क्वेयर ब्रैकेट में दिखाया जाता है. इनकी मदद से, बाहरी इनपुट पर प्रतिक्रिया दी जा सकती है. जैसे, मौजूदा तारीख और समय, सेहत और फ़िटनेस मेट्रिक या मौसम.

एक्सप्रेशन का इस्तेमाल करते समय, Transform या Template और Condition के इस्तेमाल में मुख्य अंतर यह है कि Transform और Template के लिए ज़रूरी है कि एक्सप्रेशन से वैल्यू (उदाहरण के लिए, एलिमेंट की नई पोज़िशन) मिले, जबकि Condition के लिए ज़रूरी है कि एक्सप्रेशन से बुलियन मिले.

उदाहरण के लिए, Condition में ये शामिल हो सकते हैं:

[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7

यह एक बूलियन वैल्यू के तौर पर काम करता है. साथ ही, DAY_OF_WEEK डेटा सोर्स का इस्तेमाल करके यह तय करता है कि यह वीकेंड है या नहीं.

फ़ंक्शन भी इस्तेमाल किए जा सकते हैं. उदाहरण के लिए, Wear OS डिवाइस के ऐक्सीलेरोमीटर के x-value के आधार पर, किसी वैल्यू को दोनों दिशाओं में 5 डिग्री तक घुमाने के लिए एक्सप्रेशन:

(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) +
(-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)

clamp() फ़ंक्शन, किसी वैल्यू को दो सीमाओं के बीच रखता है.

एक्सप्रेशन का फिर से आकलन

एक्सप्रेशन का फिर से आकलन कितनी बार किया जाता है, यह इस बात पर निर्भर करता है कि उनमें किन डेटा सोर्स का इस्तेमाल किया गया है. उदाहरण के लिए, [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

एक्सप्रेशन में कॉन्फ़िगरेशन वैल्यू

फ़ंक्शन और डेटा सोर्स के अलावा, कॉन्फ़िगरेशन वैल्यू का भी इस्तेमाल किया जा सकता है. उदाहरण के लिए, अगर UserConfigurations में showBackgroundInAfternoon नाम का BooleanConfiguration तय किया गया है, तो इसका इस्तेमाल किसी एक्सप्रेशन में किया जा सकता है:

[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1