واجهة مستخدم React Basic للصيغ المحددة في دليل مصمم مودم LORA الخاص بـ Semtech (AN1200.13) ، مما يوضح وقت البث لمعدلات البيانات كما هو مستخدم في خطط الترددات لشبكة الأشياء (TTN) ، وإظهار القيود التي تنطبق على شبكة TTN العامة.
شاهدها في العمل على https://avbentem.github.io/airtime-calculator.
قد تتضمن الإصدارات التالية:
خطط الترددات التي تظهر منها معدلات البيانات ، هي تلك الموجودة في شبكة الأشياء. وهي تستند إلى خطط الترددات والمعلمات الإقليمية في لوروان V1.0.2RB ، وتم تعريفها في config.json.
تحتوي بعض خطط الترددات على معدلات بيانات مختلفة تمامًا عن الروابط الصاعدة والوصلة الهابطة ؛ يتم تعريف "المناطق" المتميزة في هذا التطبيق ، مثل 902 (الوصلة الصاعدة) و 902 DL (الوصلة الهابطة). يشارك آخرون (معظمهم) من معدلات البيانات ، مثل EU868.
قد تحدد كلا البلدين ومواصفات Lorawan أقصى دورة عمل أو أقصى قدر من القيود الزمنية للسكن: عندما يمكن استخدام بعض خطة التردد في العديد من البلدان ، قد لا تزال البلدان المختلفة تفرض قيودًا قانونية مختلفة. و:
من المهم أن تضع في اعتبارك أن قيود دورة العمل الموضحة في جداول المواصفات هي القيود التي فرضتها لوراوان ، وليس القيود القانونية. إذا قمت ببناء أجهزة تجارية وتريدها أن تكون معتمدة من Lorawan ، فيجب عليها الامتثال للمواصفات. لا يجب أن تكون أجهزة التطوير متوافقة تمامًا مع المواصفات. يجب أن يكون أي جهاز (سواء أكان لوراوان أم لا ، بوابة أو عقدة أو تجارية أو تنمية) متوافقة مع القيود القانونية التي تنطبق في بلدك.
[...]
تنطبق دورة العمل التي فرضتها لوروان على العقد فقط. البوابات هي من الناحية الفنية مجرد أجهزة لورا ، وليس لوروان ، لذلك لا تنطبق مواصفات لوروان عليها. تنطبق قيود دورة العمل التنظيمية عادة على أي جهاز إرسال.
مثل AS923:
لا تنطبق دورة Duty Maximum Duty Maximum فقط على 923.20 و 923.40 ميغاهيرتز.
قد لا ينطبق وقت مسكن 400 مللي ثانية على أستراليا.
تحدد مواصفات (مواصفات) Lorawan خيارات متعددة لأقصى حجم الحمولة ، مثل الاعتماد على إعدادات وقت المسكن ، ومع أو بدون دعم لتغليف محتمل.
في المواصفات المبكرة ، تكون هذه الخيارات مربكة للغاية حيث يتم سرد القيم القصوى الأصغر في كثير من الأحيان عندما لا يتم تطبيق أوقات السكن القصوى. ومع ذلك ، فإن المعلمات الإقليمية في فبراير 2020 في فبراير RP002-1.0.1 تنص على أنه قد لا يكون هناك حمولة MacPayload أكبر من 230 بايت ، بغض النظر عن قيود زمنية المسكن ، وفي هذا الإصدار تم تعديل الأرقام أيضًا.
تستخدم هذه الآلة الحاسبة أقصى أحجام الحمولة من RP002-1.0.1 ، والتي تسمح بتغليف محتمل للمكرر ولا تأخذ في الاعتبار أقصى أوقات السكن. إذا كان الجهاز لن يعمل أبدًا تحت مكرر ، فقد يكون الحد الأقصى للحجم أكبر قليلاً. إذا تم تعريف أوقات السكن ، فسيقوم تلك بتحذيرات في الآلة الحاسبة بغض النظر عن الحد الأقصى لحجم الحمولة ، مما يسمح للمستخدمين الذين لا تنطبق عليهم أوقات المسكن على رؤية أحجام الحمولة القصوى الصحيحة (أعلى).
لا يؤثر تغيير حجم الحمولة النافعة دائمًا على عدد الرموز التي تشكل حمولة ورأس حزمة Lora ، أو لا لجميع معدلات البيانات. على سبيل المثال ، هذا واضح للغاية لأحجام حمولة التطبيقات من 12 مقابل 13 بايت. هذه هي النتيجة المتوقعة ، التي تسببها تعديل راديو Lora ، والتشابية وتصحيح الأخطاء إلى الأمام. الرسم البياني أسفل الشبكة تصور هذا.
يحدد دليل مصمم مودم Semtech (AN1200.13) بعض المعلمات الأخرى ، وخاصة طول الديباجة (لاكتشاف الإشارة) ، ومعدل الترميز (CR ، لتصحيح الأخطاء الأمامية) ، ووضع الرأس (لتضمين رأس LORA مع التغير المرجع مثل التغير في معدلات الترميز ، وطول حمولة الحمولة و CRC) ، ووضع معدل البيانات المنخفضة (تجنب انحراف في درجة حرارة Cryst. بالنسبة إلى Lorawan ، لا يمكن تكوينها ، لذلك لا يتم تعرضها كمدخلات للمستخدم (باستثناء CR ، إذا تم تعيين قيمة غير Default من خلال عنوان URL).
بالنسبة إلى Lorawan ، يكون طول الديباجة دائمًا 8 ، CR دائمًا 4/5 ، ويتم تضمين رأس مستوى LORA دائمًا ، ووضع تحسين معدل البيانات المنخفض نشط لـ SF11 و SF12 على 125 كيلو هرتز.
يتم تعيين حدث نسخة المستعرض على النحو التالي:
إذا تم تحديد أي نص ، انسخ ذلك. يتم التعامل مع هذا من قبل المتصفح.
خلاف ذلك ، عندما تكون تلميح الأدوات نشطًا ، انسخ نصه. هذا يعطي كل من تنسيقات HTML وتنسيقات النص العادي. على متصفح سطح المكتب ، ستحتاج إلى لوحة المفاتيح لنسخ تلميح الأدوات.
وإلا ، انسخ النتائج. هذا يدعم فقط HTML.
بالنسبة إلى انهيار الخط في شبكة النتائج ، يستخدم هذا تنسيقًا خاصًا للغاية بالتحويل التلقائي من HTML إلى تخفيض الخطاب ، مثل ما هو مستخدم في منتدى TTN: يستبدل الخطاب <br> مع n ولكن بعد ذلك يرفض n في خلايا الجدول. كحل بديل ، يتم إخراج <br> As <br> ، الذي يتم التعامل معه كما هو متوقع في محرر الخطاب ولكنه يحتاج إلى بعض التحرير عند لصقه في مكان آخر. بالطبع ، استخدام النتائج الثابتة ليس مفيدًا تمامًا على أي حال.
بالنسبة text/plain لا تتم إضافة عنوان URL ، حيث يفضل الخطاب محتوى النص العادي إذا كان ذلك أطول من HTML.
تم إنشاء هذا التطبيق مع مراعاة عناوين URL القابلة للمشاركة ، لذلك يعطي كل إدخال المستخدم تقريبًا عنوان URL المحدث:
/<network>/<region>[/<parameters>] ، مثل /ttn/eu868 و /ttn/us902/6,14,cr48 .
<parameters> هي قائمة مفصولة بفاصلة ، وتعرف:
cr45 ، cr46 ، cr47 ، cr48LinkAdrReq لا يتم تضمين القيم الافتراضية في قطاع <parameters> ؛ هذا ينطبق حاليا على:
cr45 : كما هو ثابت لـ Lorawan عندما تستخدم جميع المعلمات الافتراضيات الخاصة بها ، يتم استبعاد قطاع <parameters> وعمقه.
لخدمة هذا التطبيق من صفحة واحدة من صفحات GitHub ، هناك حاجة إلى بعض الخداع مع إعادة توجيه JavaScript في صفحة 404 مخصصة. لسوء الحظ ، قد تحاول بعض المتصفحات (مثل الشجاعة) أن تكون مفيدة وإظهار خيار مثل "هل تريد التحقق مما إذا كان هناك إصدار محفوظ متاح على جهاز Wayback؟" حتى عند تنفيذ إعادة التوجيه المتوقعة بشكل صحيح. ليس من الواضح لماذا يزيل Final 200 OK اللافتة لبعض المواقع في شجاع ، ولكن ليس لصفحات جيثب.
تم bootstrapped هذا المشروع مع إنشاء تطبيق React.
لاستخدام حزمة محدودة للمخطط (إزالة حوالي 690 كيلو بايت من البناء) ، مع استخدام طباعة الحزمة الكاملة ، يتم استخدام تكوين paths المستعار في tsconfig.json . ومع ذلك ، أثناء الاختبار أو البناء ، فإن إنشاء تطبيق React سيؤدي إلى إزالة ذلك بجرأة:
> react-scripts build
The following changes are being made to your tsconfig.json file:
- compilerOptions.paths must not be set (aliased imports are not supported)
...
TypeScript error in /src/components/result/Graph.tsx(1,20):
Could not find a declaration file for module 'plotly.js-basic-dist'
للتخفيف من ذلك ، يتم استخدام بعض الخداع مع extends بدلاً من ذلك. سيظل هذا يعرض نفس الرسالة npm test و npm run build ، وسيقوم حتى بتنسيق قاعدة tsconfig.json الأساسية ، ولكن في النهاية لن يمس extends ويستخدم tsconfig-paths.json .
في دليل المشروع ، قم بتشغيل:
npm install
تنزيل جميع التبعيات. يمكنك تجاهل التحذيرات بأمان حول تبعيات الأقران المفقودة.
npm start
يدير التطبيق في وضع التطوير. افتح http: // localhost: 3000 لمشاهدته في المتصفح. سيتم إعادة تحميل الصفحة إذا قمت بإجراء تعديلات. سترى أيضًا أي أخطاء في وحدة التحكم في وحدة التحكم.
npm test
يطلق عداء الاختبار في وضع الساعة التفاعلية. راجع إنشاء وثائق تطبيق React على إجراء اختبارات للحصول على التفاصيل.
npm test -- --coverage
اختبار واحد تشغيل مع التغطية.
npm run lint ، npm run lint:es ، npm run lint:style أو npm run lint:pretty
قم بتشغيل جميع المبيدات والأجمل يدويًا ، أو قم بتشغيل تلك الكود أو أوراق النمط أو الملفات المتبقية. على عكس الخطاف المسبق للالتزام (انظر أدناه) ، لا يقتصر هذا على الملفات المرحلية.
npm run build
يقوم بتشغيل المبيدات ، و (فقط) إذا نجحت جميعها تبني التطبيق مع حزم مصقولة للإنتاج في مجلد build .
لضمان تحميل عناوين URL مثل /ttn/eu868/1,2 دون تحميل العارية / على سبيل المثال ، انظر ملف Apache .htaccess .
للبناء لمجلد فرعي ، قم بتعيين "homepage": "/some/path/to/airtime-calculator" في package.json . لن يؤثر هذا على خادم التطوير ، والذي سيتم تحميله دائمًا من المجلد الجذر. للنشر في المجلد الجذر ، قم بتعيينه على "/" أو لا تضعه على الإطلاق. انظر أيضًا توثيق تطبيق Create React حول النشر.
يضمن الخطاف المسبق للاصطناع أنه لا يمكن ارتكاب الأخطاء وأخطاء التنسيق. للسماح لقواعد أجمل بالتحل محل أي قواعد تنسيق قد يتم تعريفها بواسطة Linter ، يتم تكوينها لتشغيلها كمكون إضافي لكل من ESLINT و Stylelint ، ولتشغيلها بشكل صريح لأنواع الملفات القليلة التي لم يتم التعامل معها من قبل أي منها.
لاحظ أن الخطاف المسبق لالتزامه يستخدم LINT LINT ، والذي يخفي مؤقتًا تغييرات غير معروضة على الملفات التي تم عرضها جزئيًا. قد يجعل هذا IDE تحذيرات حول الملفات التي تم تغييرها خارج IDE.
احذر من أن SourCetree قد تتخطى خطاف اللبلاب المسبق بصمت.
تمكين Stylelint باللغات والأطر | صفائح النمط | Stylelint ، وتعطيل اختياريا عمليات التفتيش القياسية في المحرر | التفتيش | CSS . (على سبيل المثال ، لا تحب WebStorm @import-normalize; في App.scss ، ولكن باستخدام // noinspection CssInvalidAtRule يمنع بالفعل هذا الفحص المحدد في هذا الرمز.)
الإعدادات الجمال في .prettierrc.yaml Define trailingComma: es5 . بعد المطالبة "استخدام نمط الكود على أساس أجمل لهذا المشروع؟" في عاصفة الويب ، سيؤدي هذا إلى أن ينتج عن نمط الترميز | علامات الترقيم | فاصلة زائدة: أضف عندما تكون متعددة . لسوء الحظ ، ينطبق هذا أيضًا على معلمات الوظائف ، والتي تضيف فاصلة مفرطة عند ضرب خيار Command-L لقانون إعادة الإصلاح (ولكن ليس للخيار-Command-P لإعادة التنسيق مع أجمل). لتجنب ذلك ، قم بتعيين WebStorm يدويًا لاستخدام الفاصلة الخلفية: Keep .
تحدد إعدادات المحرر في .editorconfig max_line_length ، والتي يتم استخدامها عند الضغط على خيار Command-L لكود إعادة الإصلاح ، ولكن ليس عند استخدام خيار التحول--P لإعادة التنسيق مع أجمل.