You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ur/6-consumer/lessons/3-spoken-feedback/single-board-computer-set-t...

8.5 KiB

ٹائمر سیٹ کریں - ورچوئل IoT ہارڈویئر اور راسپبیری پائی

اس سبق کے اس حصے میں، آپ اپنی سرور لیس کوڈ کو کال کریں گے تاکہ تقریر کو سمجھا جا سکے، اور نتائج کی بنیاد پر اپنے ورچوئل IoT ڈیوائس یا راسپبیری پائی پر ایک ٹائمر سیٹ کریں۔

ٹائمر سیٹ کریں

تقریر سے متن میں تبدیل ہونے والے متن کو آپ کی سرور لیس کوڈ میں بھیجنا ضروری ہے تاکہ اسے LUIS کے ذریعے پروسیس کیا جا سکے، اور ٹائمر کے لیے سیکنڈز کی تعداد واپس حاصل کی جا سکے۔ ان سیکنڈز کی تعداد کو ٹائمر سیٹ کرنے کے لیے استعمال کیا جا سکتا ہے۔

ٹائمرز کو Python کی threading.Timer کلاس کے ذریعے سیٹ کیا جا سکتا ہے۔ یہ کلاس ایک تاخیر کا وقت اور ایک فنکشن لیتی ہے، اور تاخیر کے وقت کے بعد، فنکشن کو چلایا جاتا ہے۔

کام - متن کو سرور لیس فنکشن میں بھیجیں

  1. VS Code میں smart-timer پروجیکٹ کھولیں، اور یقینی بنائیں کہ اگر آپ ورچوئل IoT ڈیوائس استعمال کر رہے ہیں تو ٹرمینل میں ورچوئل ماحول لوڈ ہو۔

  2. process_text فنکشن کے اوپر، ایک فنکشن get_timer_time کا اعلان کریں تاکہ آپ کے بنائے گئے REST اینڈ پوائنٹ کو کال کیا جا سکے:

    def get_timer_time(text):
    
  3. اس فنکشن میں درج ذیل کوڈ شامل کریں تاکہ کال کرنے کے لیے URL کو ڈیفائن کیا جا سکے:

    url = '<URL>'
    

    <URL> کو اپنے کمپیوٹر یا کلاؤڈ میں بنائے گئے REST اینڈ پوائنٹ کے URL سے تبدیل کریں۔

  4. اس فنکشن میں درج ذیل کوڈ شامل کریں تاکہ متن کو JSON پراپرٹی کے طور پر کال میں پاس کیا جا سکے:

    body = {
        'text': text
    }
    
    response = requests.post(url, json=body)
    
  5. اس کے نیچے، رسپانس پے لوڈ سے seconds کو حاصل کریں، اور اگر کال ناکام ہو تو 0 واپس کریں:

    if response.status_code != 200:
        return 0
    
    payload = response.json()
    return payload['seconds']
    

    کامیاب HTTP کالز 200 رینج میں اسٹیٹس کوڈ واپس کرتی ہیں، اور آپ کی سرور لیس کوڈ 200 واپس کرتی ہے اگر متن پروسیس ہو اور اسے ٹائمر سیٹ کرنے کے ارادے کے طور پر پہچانا جائے۔

کام - بیک گراؤنڈ تھریڈ پر ٹائمر سیٹ کریں

  1. فائل کے اوپر درج ذیل امپورٹ اسٹیٹمنٹ شامل کریں تاکہ threading Python لائبریری کو امپورٹ کیا جا سکے:

    import threading
    
  2. process_text فنکشن کے اوپر، ایک فنکشن شامل کریں تاکہ جواب کو بول سکیں۔ فی الحال یہ صرف کنسول پر لکھے گا، لیکن اس سبق کے بعد یہ متن کو بولے گا۔

    def say(text):
        print(text)
    
  3. اس کے نیچے ایک فنکشن شامل کریں جو ٹائمر کے مکمل ہونے پر اعلان کرے گا:

    def announce_timer(minutes, seconds):
        announcement = 'Times up on your '
        if minutes > 0:
            announcement += f'{minutes} minute '
        if seconds > 0:
            announcement += f'{seconds} second '
        announcement += 'timer.'
        say(announcement)
    

    یہ فنکشن ٹائمر کے لیے منٹ اور سیکنڈز کی تعداد لیتا ہے، اور ایک جملہ بناتا ہے جو بتاتا ہے کہ ٹائمر مکمل ہو گیا ہے۔ یہ منٹ اور سیکنڈز کی تعداد کو چیک کرتا ہے، اور صرف وہی وقت شامل کرتا ہے جس کی کوئی ویلیو ہو۔ مثال کے طور پر، اگر منٹ کی تعداد 0 ہو تو صرف سیکنڈز کو پیغام میں شامل کیا جاتا ہے۔ یہ جملہ پھر say فنکشن کو بھیجا جاتا ہے۔

  4. اس کے نیچے، درج ذیل create_timer فنکشن شامل کریں تاکہ ایک ٹائمر بنایا جا سکے:

    def create_timer(total_seconds):
        minutes, seconds = divmod(total_seconds, 60)
        threading.Timer(total_seconds, announce_timer, args=[minutes, seconds]).start()
    

    یہ فنکشن ٹائمر کے لیے کل سیکنڈز لیتا ہے جو کمانڈ میں بھیجے جائیں گے، اور انہیں منٹ اور سیکنڈز میں تبدیل کرتا ہے۔ پھر یہ کل سیکنڈز کا استعمال کرتے ہوئے ایک ٹائمر آبجیکٹ بناتا اور شروع کرتا ہے، announce_timer فنکشن اور ایک لسٹ جس میں منٹ اور سیکنڈز شامل ہوں، پاس کرتا ہے۔ جب ٹائمر ختم ہو جائے گا، یہ announce_timer فنکشن کو کال کرے گا، اور اس لسٹ کے مواد کو پیرامیٹرز کے طور پر پاس کرے گا - لہذا لسٹ کا پہلا آئٹم minutes پیرامیٹر کے طور پر پاس ہوتا ہے، اور دوسرا آئٹم seconds پیرامیٹر کے طور پر۔

  5. create_timer فنکشن کے آخر میں کچھ کوڈ شامل کریں تاکہ ایک پیغام بنایا جا سکے جو صارف کو بتایا جائے کہ ٹائمر شروع ہو رہا ہے:

    announcement = ''
    if minutes > 0:
        announcement += f'{minutes} minute '
    if seconds > 0:
        announcement += f'{seconds} second '    
    announcement += 'timer started.'
    say(announcement)
    

    دوبارہ، یہ صرف وہی وقت شامل کرتا ہے جس کی کوئی ویلیو ہو۔ یہ جملہ پھر say فنکشن کو بھیجا جاتا ہے۔

  6. process_text فنکشن کے آخر میں درج ذیل شامل کریں تاکہ متن سے ٹائمر کے لیے وقت حاصل کیا جا سکے، پھر ٹائمر بنایا جا سکے:

    seconds = get_timer_time(text)
    if seconds > 0:
        create_timer(seconds)
    

    ٹائمر صرف اس وقت بنایا جاتا ہے جب سیکنڈز کی تعداد 0 سے زیادہ ہو۔

  7. ایپ چلائیں، اور یقینی بنائیں کہ فنکشن ایپ بھی چل رہی ہو۔ کچھ ٹائمر سیٹ کریں، اور آؤٹ پٹ دکھائے گا کہ ٹائمر سیٹ ہو رہا ہے، اور پھر دکھائے گا جب یہ ختم ہو جائے:

    pi@raspberrypi:~/smart-timer $ python3 app.py 
    Set a two minute 27 second timer.
    2 minute 27 second timer started.
    Times up on your 2 minute 27 second timer.
    

💁 آپ اس کوڈ کو code-timer/pi یا code-timer/virtual-iot-device فولڈر میں تلاش کر سکتے ہیں۔

😀 آپ کا ٹائمر پروگرام کامیاب رہا!


ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔