نموذج البرمجة Node-RED

مبتدئ

image_pdf

إنشاء و ارجاع رسائل متعددة في عقدة Function :

عقدة Function تسمح ايضا لإعدادها مع نواتج متعددة. وبمجرد إعداد نواتج متعددة، يمكنك إرسال رسائل متعددة، واحدة لكل مخرج، وذلك باستخدام مجموعة (array).

أولا، دعونا تعديل عقدة function ليصبح للعقدة ثلاثة نواتج، وذلك باستخدام إعداد العقدة كما في الصورة ادناه :

the-node-red-programming-model

الكود ادناه يوضح كيفية إرسال رسالة إلى واحد من ثلاثة نواتج مختلفة على أساس قيمة الحمولة “high”,”med”,”low”

if (msg.payload == "high") {
return [ msg, null, null ];
} else if (msg.payload == "med") {
return [ null, msg, null ];
} else {
return [null, null, msg];
}

السطر الأول يقوم بالتحقق من الحمولة القادمة إذا تم تعيينها على أنها “high” ، اذا تحقق الشرط يتم تمرير الرساله على المخرج الأول و رسالة null على المخارج الأخرى ، من خلال return [ msg, null, null ]. و “med ” يمرر الرسالة على المخرج الثاني و اي شي آخر يتم إرجاعة على المخرج 3 .

لتجربة ذلك ، قم بإيصال ثلاث عقد inject  و ثلاث عقد إخراج كما هو مبين بالشكل أدناه .

the-node-red-programming-model

قم بالتعديل على كود عقدة الـ function كما هو موضح أدناه :

the-node-red-programming-model

قم بإعداد عقدة inject لتعيين سلسلة نصية إما low ، med ، high ، قم بنشر و اختبار التدفق .

the-node-red-programming-model

حيث انه من الممكن إرسال رسائل متعددة من عقدة function في التسلسل. للقيام بذلك ، للقيام بذلك، قم بالاطلاع على الكود ادناه ، يوضح كيفية كتابة دالة تقوم بإرجاع 10 رسائل جديدة تحتوي على حمولة عدد من 0 إلى 9 . في السطر الأول يتم إنشاء المجموعة array  الجديدة باسم msgList لعقد الرسائل. في السطر 2 و 3 عبارة عن loop حلقة 10 مرات لإضافة عنصر جديد إلى مجموعة msgList . و أخيرا ، السطر 5 يقوم بإرجاع المصفوفة array ، والتي تحتوي على عنصر و الذي هو بحد ذاته مجموعة من 10 عناصر .  كما رأيتم في المثال السابق، من خلال ارجاع المصفوفة array من عنصر واحد ، فبالتالي يتم ارسال الرسالة غلى المخرج 1 من العقدة. وبما ان العنصر يحتوي على 10 عناصر ،فإن Node-red يرسل كل عنصر على شكل سلسلة من الرسائل المتتابعة على المخرج 1 .

var msgList = [];
for (var i=0; i<10; i++) {
msgList.push({payload:i});
}
return [msgList];

X
Product added to the cart