مفهوم Publisher و Subscriberدر ROS به زبان ++C
اگر کمی دقت کرده باشید باید متوجه شده باشید که یکسری پیام از برخی نودها در حال انتشار و یکسری پیام دیگر در حال شنیده شدن هستند. هر نود میتواند هم شنونده و هم منتشرکنندهی یک پیام باشد.
در ROS به عمل شنیدن پیام بهاصطلاح subscribe و به عمل انتشار پیام publish میگویند.
حال که با مفهوم منتشر کردن پیام در ROS آشنا شدید، بگذارید تا این مفهوم را با زبان ++C پیادهسازی کنیم تا خودمان را برای ارسال پیام در ROS آماده نماییم.
توجه: در ادامه برخی مفاهیم مرتبط با شئ گرایی در ++C گفته میشود. درصورتیکه با این اصطلاحات آشنا نیستید نیاز هست تا کمی با برنامهنویسی با زبان ++C آشنا شوید.
منتشر کننده پیام، Publisher
در ROS برای زبان ++C مِتُدی تعریف شده است که این امکان را میدهد بعد از مشخص کردن یکسری پارامتر بتوانید پیام را از تاپیک خاص منتشر نمایید. نام این متد ()advertise است. advertise درواقع متد یک نود است که در برنامه تعریف میکنید.
با استفاده از این متد ما مشخص میکنیم که چه جنس پیامی را میخواهیم بر روی چه تاپیکی ارسال نماییم. همچنین اندازه پیامها در حافظه را مشخص میکنیم تا در صورت سرعت بالای برنامه، دیتاها حذف نشوند و در بافر ذخیره شوند.
درواقع صفی از دیتاها را ایجاد میکند که این عدد تعداد صف را مشخص میکند. adverse شئ publisher بازمیگرداند؛ که در حین برنامه شما با استفاده از متد publish این شئ با ورودی پیام موردنظر خود میتوان آن را منتشر نمایید.
خب به نظر میرسد که توضیح در مورد Publisher کافی باشد. بگذارید تا یک برنامه ساده برای ارسال پیام Hello World در ROS با کمک Publisher به زبان ++C بنویسم.
کد زیر درواقع این کار را برای ما انجام میدهد.
1 دیدگاه
Hello There. I found your weblog using msn. This is a very well
written article. I will be sure to bookmark it and return to read extra of your useful information. Thank you for the post.
I will definitely return.