# B.1.1 Lifecycle Node ရှင်းတမ်း

code ရေးတာက ရှည်လျားလို့ git သာ clone လိုက်ပါတော့။

```bash
git clone git@github.com:ROM-robotics/rom_lifecycle_demo.git
```

build လုပ်ပြီး ရင် listener ကို run ကြည့်ပါ။

```bash
ros2 run rom_lifecycle_demo lifecycle_listener
```

ပြီးရင်တော့ talker ကို run ပါ။

```bash
ros2 run rom_lifecycle_demo lifecycle_talker
```

<figure><img src="https://2903086714-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fr9x7fOEsshA97WfbNvfL%2Fuploads%2FUEg0BqMx5fFVgmDlcdhG%2FScreenshot%20from%202023-07-26%2001-06-41.png?alt=media&#x26;token=c5e162a0-41f6-4394-a5e7-840653b0927f" alt=""><figcaption></figcaption></figure>

ခုချိန်မှာဆို node နှစ်ခု ရှိပေမယ့် topic နဲ့မချိတ်သေးပါဘူး။ ဘာလို့ဆိုတော့ publisher သည် data ကို publishing မလုပ်လို့ပဲဖြစ်ပါတယ်။ ခုတခါ service client ကို run ပြီး node shutdown ဖြစ်သည်အထိစောင့်ကြည့်ပါ။

```bash
ros2 run rom_lifecycle_demo lifecycle_service_client
```

<figure><img src="https://2903086714-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fr9x7fOEsshA97WfbNvfL%2Fuploads%2FMOzYvwfP8ISV7lDkbyIC%2FScreenshot%20from%202023-07-26%2001-08-22.png?alt=media&#x26;token=5fdfae8a-79c1-4de9-8f99-5996027d3508" alt=""><figcaption></figcaption></figure>

ဒီတခါတော့ publisher သည် data ကို publish လုပ်လိုက်ပြီမို့လို့ listener က data ရရှိသွားပြီဖြစ်ပါတယ်။ publish လုပ်နေတာကို နှစ်ခါတွေ့ရပြီး ရပ်သွားပါတယ်။ ဘယ်လိုလုပ်လိုက်တာတုန်းဗျ။ implement ကတော့ Code ထဲမှာကြည့်ပေါ့ဗျ။&#x20;

အရေးကြီးတာကတော့ talker အလုပ်လုပ်သွားပုံက ဒီလိုဗျ။ service client ရဲ့ callee\_script ရဲ့ procedure အတိုင်းလုပ်သွားတာဖြစ်ပါတယ်။ activate, deactivate, activate, deactivate အစီအစဥ်အတိုင်းလုပ်သွားတဖြစ်ပြီး activate ဖြစ်ချိန်မှာပဲ talker သည် data ကို  publish လုပ်သွားတာဖြစ်ပါတယ်။ အောက်ကပုံကို ကြည့်ပါ။

<figure><img src="https://2903086714-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fr9x7fOEsshA97WfbNvfL%2Fuploads%2FllrJ5A6SlR6wjEiycOEb%2Fimage.png?alt=media&#x26;token=10740256-86d0-46d8-a271-ef6ee02913b1" alt=""><figcaption></figcaption></figure>
