UI Bereaksi Dasar untuk rumus yang didefinisikan dalam Panduan Desainer Modem Lora Semtech (AN1200.13), menunjukkan airtime untuk laju data seperti yang digunakan dalam rencana frekuensi jaringan Things (TTN), dan menunjukkan keterbatasan yang berlaku untuk jaringan publik TTN.
Melihatnya beraksi di https://avbentem.github.io/airtime-calculator.
Versi berikutnya mungkin termasuk:
Rencana frekuensi dari mana laju data ditampilkan, adalah dari jaringan Things. Mereka didasarkan pada rencana frekuensi dan parameter regional Lorawan v1.0.2rb, dan didefinisikan dalam config.json.
Beberapa paket frekuensi memiliki tingkat data yang sangat berbeda untuk uplink dan downlink; Untuk "daerah" yang berbeda didefinisikan dalam aplikasi ini, seperti untuk US902 (uplink) dan US902 DL (downlink). Lainnya berbagi (sebagian besar) dari tarif data, seperti EU868.
Kedua negara dan spesifikasi Lorawan dapat mendefinisikan siklus tugas maksimum atau batasan waktu tinggal maksimum: Ketika beberapa rencana frekuensi dapat digunakan di beberapa negara, berbagai negara mungkin masih memaksakan batasan hukum yang berbeda. Dan:
Penting untuk diingat bahwa batasan siklus tugas yang dijelaskan dalam tabel spesifikasi adalah batasan yang dipaksakan Lorawan, dan bukan batasan hukum. Jika Anda membangun perangkat komersial dan ingin mereka bersertifikat Lorawan, mereka harus mematuhi spesifikasi. Perangkat pengembangan tidak harus sepenuhnya sesuai dengan spesifikasi. Perangkat apa pun (apakah Lorawan atau tidak, gateway atau node, komersial atau pengembangan) harus sesuai dengan batasan hukum yang berlaku di negara Anda.
[...]
Siklus tugas yang dipaksakan Lorawan hanya berlaku untuk node. Gateway secara teknis hanya perangkat Lora, bukan Lorawan, jadi spesifikasi Lorawan tidak berlaku untuk mereka. Keterbatasan siklus tugas peraturan biasanya berlaku untuk pemancar apa pun.
Suka untuk AS923:
Siklus tugas maksimum 1% Lorawan hanya berlaku untuk 923.20 dan 923.40 MHz.
Waktu tinggal maksimum 400 ms mungkin tidak berlaku untuk Australia.
Spesifikasi Lorawan mendefinisikan beberapa opsi untuk ukuran muatan maksimum, seperti tergantung pada pengaturan waktu tinggal, dan dengan atau tanpa dukungan untuk kemungkinan enkapsulasi repeater.
Dalam spesifikasi awal, pilihan -pilihan ini cukup membingungkan karena nilai maksimum yang lebih kecil terdaftar ketika tidak ada waktu tinggal maksimum yang berlaku. Namun, parameter regional Lorawan Februari 2020 RP002-1.0.1 menyatakan bahwa tidak ada muatan macPay yang mungkin lebih besar dari 230 byte, terlepas dari keterbatasan waktu tinggal, dan dalam versi itu angka-angka telah disesuaikan juga.
Kalkulator ini menggunakan ukuran muatan maksimum dari RP002-1.0.1, yang memungkinkan enkapsulasi repeater yang mungkin dan tidak memperhitungkan waktu tunggu maksimum. Jika perangkat tidak akan pernah beroperasi di bawah repeater maka ukuran maksimum bisa sedikit lebih besar. Jika waktu tinggal telah ditentukan maka itu akan menghasilkan peringatan di kalkulator terlepas dari ukuran muatan maksimum, yang memungkinkan pengguna yang tidak berlaku waktu untuk masih melihat ukuran muatan maksimum (lebih tinggi) yang benar.
Mengubah ukuran payload tidak selalu mempengaruhi jumlah simbol yang membentuk payload dan header Paket Lora, atau tidak untuk semua tarif data. Misalnya, ini sangat terlihat untuk ukuran muatan aplikasi 12 versus 13 byte. Ini adalah hasil yang diharapkan, yang disebabkan oleh modulasi radio LORA, interleaving dan koreksi kesalahan ke depan. Grafik di bawah kisi memvisualisasikan ini.
Panduan Desainer Modem LORA Semtech (AN1200.13) mendefinisikan beberapa parameter lebih banyak, terutama panjang pembukaan (untuk mendeteksi sinyal), laju pengkodean (CR, untuk koreksi kesalahan ke depan), mode header (untuk memasukkan header LORA dengan rincian coding, laju payload dan CRC), dan laju data yang lebih rendah (untuk menghindari edisi. Untuk Lorawan, ini tidak dapat dikonfigurasi, jadi tidak diekspos sebagai input pengguna (kecuali untuk CR, jika nilai non-default diatur melalui URL).
Untuk Lorawan, panjang pembukaan selalu 8, CR selalu 4/5, header lora-level selalu disertakan, dan mode optimasi laju data rendah aktif untuk SF11 dan SF12 pada 125 kHz.
Acara salinan browser dipetakan sebagai berikut:
Jika ada teks yang dipilih, salin itu. Ini ditangani oleh browser.
Jika tidak, ketika tooltip aktif, salin teksnya. Ini menghasilkan format HTML dan teks biasa. Di browser desktop, Anda akan memerlukan keyboard untuk menyalin tooltip.
Atau, salin hasilnya. Ini hanya mendukung HTML.
Untuk garis istirahat dalam kisi -kisi hasil, ini menggunakan format yang sangat spesifik untuk konversi otomatis dari HTML menjadi penurunan harga dalam wacana, seperti yang digunakan pada forum TTN: wacana menggantikan <br> dengan n tetapi kemudian menolak n dalam sel tabel. Sebagai solusi, <br> dikeluarkan AS <br> , yang ditangani seperti yang diharapkan dalam editor Wacana tetapi perlu mengedit beberapa saat ditempel di tempat lain. Tentu saja, menggunakan hasil statis tidak terlalu berguna.
Untuk text/plain NO URL ditambahkan, karena wacana lebih memilih konten teks biasa jika itu lebih panjang dari HTML.
Aplikasi ini dibuat dengan URL yang dapat dibagi dalam pikiran, jadi hampir setiap input pengguna menghasilkan URL yang diperbarui:
/<network>/<region>[/<parameters>] , EG /ttn/eu868 dan /ttn/us902/6,14,cr48 .
<parameters> adalah daftar yang dipisahkan koma, dan mendefinisikan:
cr45 , cr46 , cr47 , cr48LinkAdrReq Nilai default tidak termasuk dalam segmen <parameters> ; Ini saat ini berlaku untuk:
cr45 : sebagaimana diperbaiki untuk Lorawan Ketika semua parameter menggunakan defaultnya, segmen <parameters> dan slashnya dikecualikan.
Untuk melayani aplikasi satu halaman ini dari halaman GitHub, beberapa tipu daya dengan pengalihan javascript di halaman 404 khusus. Sayangnya, beberapa browser (seperti Brave) dapat mencoba membantu dan menampilkan opsi seperti "Apakah Anda ingin memeriksa apakah versi yang disimpan tersedia di mesin wayback?" Bahkan ketika menjalankan pengalihan yang diharapkan dengan benar. Tidak jelas mengapa 200 OK terakhir menghapus spanduk untuk beberapa situs di Brave, tetapi tidak untuk halaman GitHub.
Proyek ini bootstrap dengan aplikasi Create React.
Untuk menggunakan bundel terbatas untuk plotly (menghapus sekitar 690 kb dari build), saat menggunakan pengetikan bundel penuh, konfigurasi paths alias digunakan dalam tsconfig.json . Namun, selama pengujian atau bangunan, Buat Aplikasi React akan dengan berani menghapus itu:
> 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'
Untuk mengurangi itu, beberapa tipu daya dengan extends digunakan sebagai gantinya. Ini masih akan menampilkan pesan yang sama untuk npm test dan npm run build , dan bahkan akan format cukup format tsconfig.json , tetapi pada akhirnya tidak akan menyentuh extends dan menggunakan tsconfig-paths.json .
Di direktori proyek, jalankan:
npm install
Unduhan semua dependensi. Anda dapat dengan aman mengabaikan peringatan tentang ketergantungan rekan yang hilang.
npm start
Menjalankan aplikasi dalam mode pengembangan. Buka http: // localhost: 3000 untuk melihatnya di browser. Halaman ini akan memuat ulang jika Anda mengedit. Anda juga akan melihat kesalahan serat di konsol.
npm test
Meluncurkan test runner dalam mode jam tangan interaktif. Lihat Dokumentasi Aplikasi Buat React tentang menjalankan tes untuk detail.
npm test -- --coverage
Uji tunggal dengan cakupan.
npm run lint , npm run lint:es , npm run lint:style atau npm run lint:pretty
Jalankan secara manual semua linter dan lebih cantik, atau jalankan hanya untuk kode, styleheet, atau file yang tersisa. Berbeda dengan kait pra-komit (lihat di bawah), ini tidak terbatas pada file yang dipentaskan.
npm run build
Menjalankan linter, dan (hanya) jika semua berhasil membangun aplikasi dengan bundel yang diminimalkan untuk produksi ke dalam folder build .
Untuk memastikan URL seperti /ttn/eu868/1,2 dapat dimuat tanpa terlebih dahulu memuat telanjang / , lihat misalnya file apache .htaccess .
Untuk membangun untuk subfolder, atur "homepage": "/some/path/to/airtime-calculator" di package.json . Ini tidak akan mempengaruhi server pengembangan, yang akan selalu memuat dari folder root. Untuk penempatan di folder root, atur ke "/" atau jangan atur sama sekali. Lihat juga Dokumentasi Aplikasi Buat React tentang penyebaran.
Kait pra-komit memastikan bahwa kesalahan dan kesalahan pemformatan tidak dapat dilakukan. Untuk mengizinkan aturan yang lebih cantik untuk menggantikan aturan pemformatan apa pun yang mungkin ditentukan oleh linter, dikonfigurasi untuk dijalankan sebagai plugin untuk Eslint dan Stylelint, dan untuk secara eksplisit berjalan untuk beberapa jenis file yang tidak ditangani oleh salah satu dari itu.
Perhatikan bahwa kait pra-berkomitmen menggunakan lint-staged, yang untuk sementara menyembunyikan perubahan yang tidak disimpan untuk file yang dipentaskan sebagian. Ini dapat membuat IDE Anda menunjukkan peringatan tentang file yang diubah di luar IDE.
Berhati-hatilah bahwa Sourcetree dapat secara diam-diam melewati kait pra-komit.
Aktifkan Stylelint dalam bahasa dan kerangka kerja | Lembar Gaya | Stylelint , dan secara opsional menonaktifkan inspeksi standar di editor | Inspeksi | CSS . (Misalnya, WebStorm tidak suka @import-normalize; di App.scss , tetapi menggunakan // noinspection CssInvalidAtRule sudah menekan inspeksi spesifik dalam kode ini.)
Pengaturan yang lebih cantik di .prettierrc.yaml mendefinisikan trailingComma: es5 . Setelah diminta "Gunakan gaya kode yang berbasis di lebih cantik untuk proyek ini?" Di Webstorm, ini akan menghasilkan gaya pengkodean | Tanda baca | Trailing Comma: Tambahkan saat multiline . Sayangnya ini juga berlaku untuk parameter fungsi, yang menambahkan koma berlebihan saat memukul opsi-command-l untuk kode format (tetapi tidak untuk opsi-shift-command-p untuk format dengan lebih cantik). Untuk menghindarinya, atur Webstorm secara manual untuk menggunakan trailing comma: Keep .
Pengaturan editor di .editorconfig Tentukan max_line_length , yang digunakan saat memukul opsi-command-l untuk memformat kode, tetapi tidak saat menggunakan opsi-shift-command-p untuk memformat ulang dengan lebih cantik.