وحدة Node.js للتفاعل مع وحدات RFM9X Lora اللاسلكية. مخصص للاستخدام مع أغطية الراديو Adafruit.
تم اختبار الرمز فقط على Raspberry Pi ولكن يمكنه العمل تقنيًا أيضًا على لوحات أخرى مدعومة من قبل Onoff و SPI-Device.
انظر example/pingpong.js للحصول على مثال بسيط لاستلام البيانات وإرسالها.
تقوم الوحدات بتصدير فئة واحدة RFM9x .
RFM9xفئة تمثل وحدة لورا. لا يتطلب المنشئ أي وسيطات.
const rfm9x = require ( 'rfm9x' ) ;
const module = new rfm9x ( ) ;
await module . init ( { ... } ) ;debug - الإخراج SPI معلومات تصحيح debug اضبط هذه الخاصية على true للحصول على جميع اتصالات SPI مطبوعة على وحدة التحكم.
ملاحظة: لأن مكالمات console.log() متزامنة في معظم الظروف ، مما يمكّن ذلك يمكن أن يؤثر على التوقيت! على سبيل المثال ، قد يتسبب ذلك في التبديل من الإرسال إلى وضع الاستلام ليكون بطيئًا بما يكفي لتفويت الاستجابات من العقد الأخرى.
init(options) - تهيئة إعدادات الوحدة النمطية و LorastartReceive() - ضع وحدة Lora في وضع الاستلام وتمكين حدث receivestopReceive() - ضع وحدة Lora في وضع الاستعداد وتوقف عن تلقي الحزمsend(payload) - أرسل حزمة عبر لوراgetVersion() - احصل على رقم إصدار الرقاقة من الوحدة النمطية init(options)options - كائن الخيارات (انظر أدناه). جميع الخصائص اختيارية ، وسيتم استخدام القيم الافتراضية عند حذفها.تهيئة إعدادات الوحدة النمطية و Lora. يجب استدعاء قبل استخدام أي من وظائف الراديو.
إرجاع الوعد الذي يحل بدون قيمة.
الخيارات التالية مدعومة:
frequencyMhz - التردد الأساسي في MHz ، الافتراضي: 915preambleLength - طول ديباجة Lora في البايتات ، الافتراضي: 8bandwidthHz - عرض النطاق الترددي Lora في هرتز ، الافتراضي: 500000codingRate - معدل ترميز Lora ، القيم الصالحة هي 5 (4/5) إلى 8 (4/8) ، الافتراضي: 5spreadingFactor - عامل انتشار Lora ، القيم الصالحة هي 6 إلى 12 ، الافتراضي: 7enableCrcChecking - ما إذا كان لتمكين فحص CRC على الحزم الواردة ، الافتراضي: falsetxPowerDb - طاقة الإرسال في DB ، القيم الصالحة هي 5 إلى 23 (حاليًا يتم دعم وضع الطاقة العالي فقط) ، الافتراضي: 23enableAgc - ما إذا كان لتمكين التحكم التلقائي في الكسب ، الافتراضي: falseresetPin - عدد دبوس GPIO الذي يرتبط به خط إعادة تعيين RFM9X ، الافتراضي: 25dio0Pin - عدد دبوس GPIO الذي يرتبط به خط RFM9X DIO0 ، الافتراضي: 22dio1Pin - غير مستخدم حاليًا. عدد دبوس GPIO الذي يرتبط به خط RFM9X DIO1 ، الافتراضي: 23dio2Pin - غير مستخدم حاليًا. عدد دبوس GPIO الذي يرتبط به خط RFM9X DIO2 ، الافتراضي: 24spiSpeedHz - سرعة اتصال SPI في هرتز ، الافتراضي: 100000txTimeoutMs - الحد الأقصى للوقت في مللي ثانية لانتظار انتهاء من ناقل حركة الحزمة ، الافتراضي: 2000 startReceive() ضع وحدة Lora في وضع الاستلام وتمكين حدث receive .
إرجاع الوعد الذي يحل بدون قيمة.
stopReceive()ضع وحدة Lora في وضع الاستعداد وتوقف عن تلقي الحزم.
إرجاع الوعد الذي يحل بدون قيمة.
send(payload)payload - Buffer يصل إلى 255 بايتإرسال حزمة عبر لورا.
إرجاع وعد يحل بدون قيمة بعد الانتهاء من الإرسال.
ملاحظة: بعد إرسال حزمة ، تحول الوحدة النمطية إلى وضع الاستعداد تلقائيًا. إذا كنت ترغب في متابعة استلام الحزم بعد الإرسال ، فستحتاج إلى الاتصال startReceive() بعد الانتهاء من الإرسال.
getVersion()احصل على رقم إصدار الرقاقة من الوحدة النمطية.
إرجاع وعد يحل برقم الإصدار (عدد صحيح بايت).
receive(packet) - المنبعثة عند استلام حزمة لوراreceiveError() - تنبعث عند استلام حزمة لورا غير صالحة receive(packet)الحدث الذي ينبعث عند استلام حزمة لورا.
packet هي كائن يحتوي على الخصائص التالية:
payload - Buffer يحتوي على محتويات الحزمةrssiDb - RSSI من الحزمة في ديسيبلsnrDb - SNR من الحزمة في ديسيبل receiveError()الحدث الذي ينبعث منه عند استلام حزمة لورا ولكن تم التخلص منها بسبب تلقي الأخطاء (فشل فحص CRC).