REACT UI พื้นฐานสำหรับสูตรที่กำหนดไว้ในคู่มือนักออกแบบโมเด็ม LORA ของ Semtech (AN1200.13) แสดงเวลาออกอากาศสำหรับอัตราข้อมูลที่ใช้ในแผนความถี่ของเครือข่ายสิ่งต่าง ๆ (TTN) และแสดงข้อ จำกัด ที่ใช้กับเครือข่ายสาธารณะ TTN
ดูการดำเนินการบน https://avbentem.github.io/airtime-calculator
รุ่นถัดไปอาจรวมถึง:
แผนความถี่ที่แสดงอัตราข้อมูลเป็นของเครือข่ายสิ่งต่าง ๆ พวกเขาจะขึ้นอยู่กับแผนความถี่และพารามิเตอร์ภูมิภาค Lorawan v1.0.2rb และกำหนดไว้ใน config.json
แผนความถี่บางอย่างมีอัตราข้อมูลที่แตกต่างกันมากสำหรับอัปลิงค์และ downlinks; สำหรับ "ภูมิภาค" ที่แตกต่างกันนั้นถูกกำหนดไว้ในแอปพลิเคชันนี้เช่น US902 (อัปลิงค์) และ US902 DL (Downlink) อื่น ๆ แบ่งปัน (ส่วนใหญ่) ของอัตราข้อมูลเช่น EU868
ทั้งสองประเทศและข้อกำหนดของ Lorawan อาจกำหนดวัฏจักรการทำงานสูงสุดหรือข้อ จำกัด เวลาที่อยู่อาศัยสูงสุด: เมื่อแผนความถี่บางอย่างสามารถใช้ในหลายประเทศประเทศต่าง ๆ อาจยังคงมีข้อ จำกัด ทางกฎหมายที่แตกต่างกัน และ:
เป็นสิ่งสำคัญที่จะต้องจำไว้ว่าข้อ จำกัด รอบการทำงานที่อธิบายไว้ในตารางของข้อกำหนดคือข้อ จำกัด ของ Lorawan ที่กำหนดไว้และไม่ใช่ข้อ จำกัด ทางกฎหมาย หากคุณสร้างอุปกรณ์เชิงพาณิชย์และต้องการให้พวกเขาได้รับการรับรอง Lorawan พวกเขาจำเป็นต้องปฏิบัติตามข้อกำหนด อุปกรณ์การพัฒนาไม่จำเป็นต้องสอดคล้องกับข้อกำหนดอย่างเต็มที่ อุปกรณ์ใด ๆ (ไม่ว่าจะเป็น Lorawan หรือไม่, เกตเวย์หรือโหนด, การค้าหรือการพัฒนา) จำเป็นต้องสอดคล้องกับข้อ จำกัด ทางกฎหมายที่ใช้ในประเทศของคุณ
-
วงจรหน้าที่การปฏิบัติหน้าที่ของ Lorawan ใช้กับโหนดเท่านั้น เกตเวย์เป็นเพียงแค่อุปกรณ์ LORA ไม่ใช่ Lorawan ดังนั้นข้อกำหนดของ Lorawan จึงไม่สามารถใช้ได้กับพวกเขา ข้อ จำกัด รอบการปฏิบัติหน้าที่ตามกฎระเบียบมักจะใช้กับเครื่องส่งสัญญาณใด ๆ
ชอบ AS923:
รอบการทำงานสูงสุด 1% ของ Lorawan ใช้กับ 923.20 และ 923.40 MHz เท่านั้น
เวลาพักอาศัยสูงสุด 400 มิลลิวินาทีอาจไม่สามารถใช้ได้กับออสเตรเลีย
ข้อมูลจำเพาะของ LoRawan กำหนดตัวเลือกหลายตัวเลือกสำหรับขนาดน้ำหนักบรรทุกสูงสุดเช่นขึ้นอยู่กับการตั้งค่าเวลาที่อยู่อาศัยและมีหรือไม่มีการสนับสนุนสำหรับการห่อหุ้ม repeater ที่เป็นไปได้
ในข้อกำหนดแรก ๆ ตัวเลือกเหล่านี้ค่อนข้างสับสนเนื่องจากค่าสูงสุดที่ น้อยกว่า มักจะแสดงรายการเมื่อ ไม่มี เวลาพักอาศัยสูงสุด อย่างไรก็ตามพารามิเตอร์ภูมิภาค Lorawan กุมภาพันธ์ Rp002-1.0.1 ระบุว่าไม่มี Macpayload อาจมีขนาดใหญ่กว่า 230 ไบต์โดยไม่คำนึงถึงข้อ จำกัด ด้านเวลาที่อยู่อาศัยและในเวอร์ชันนั้นตัวเลขก็ถูกปรับเช่นกัน
เครื่องคิดเลขนี้ใช้ขนาดน้ำหนักบรรทุกสูงสุดจาก RP002-1.0.1 ซึ่งอนุญาตให้มีการห่อหุ้มตัวซ้ำที่เป็นไปได้และไม่ต้องคำนึงถึงเวลาที่อยู่อาศัยสูงสุด หากอุปกรณ์จะไม่ทำงานภายใต้ repeater ขนาดสูงสุดอาจใหญ่กว่าเล็กน้อย หากเวลาที่อยู่อาศัยได้รับการกำหนดแล้วสิ่งเหล่านั้นจะสร้างคำเตือนในเครื่องคิดเลขโดยไม่คำนึงถึงขนาดน้ำหนักบรรทุกสูงสุดทำให้ผู้ใช้เวลาที่อยู่อาศัยไม่ได้ใช้เพื่อดูขนาดน้ำหนักบรรทุกสูงสุดที่ถูกต้อง (สูงกว่า)
การเปลี่ยนขนาดน้ำหนักบรรทุกไม่ได้ส่งผลกระทบต่อจำนวนสัญลักษณ์ที่ประกอบขึ้นเป็นแพ็กเก็ต LORA และส่วนหัวหรือไม่สำหรับอัตราข้อมูลทั้งหมด ตัวอย่างเช่นสิ่งนี้สามารถมองเห็นได้มากสำหรับขนาดน้ำหนักบรรทุกของแอปพลิเคชัน 12 เทียบกับ 13 ไบต์ นี่คือผลลัพธ์ที่คาดหวังซึ่งเกิดจากการปรับวิทยุ LORA การแก้ไขข้อผิดพลาดระหว่างกันและการแก้ไขข้อผิดพลาด กราฟด้านล่างกริดจะมองเห็นสิ่งนี้
คู่มือนักออกแบบโมเด็ม Lora ของ Semtech (AN1200.13) กำหนดพารามิเตอร์เพิ่มเติมบางอย่างโดยเฉพาะอย่างยิ่งความยาวของคำนำ (เพื่อตรวจจับสัญญาณ) อัตราการเข้ารหัส (CR สำหรับการแก้ไขข้อผิดพลาดไปข้างหน้า) โหมดส่วนหัว สำหรับ Lorawan สิ่งเหล่านี้ไม่สามารถกำหนดค่าได้ดังนั้นจะไม่ถูกเปิดเผยว่าเป็นอินพุตของผู้ใช้ (ยกเว้น CR หากมีการตั้งค่าที่ไม่ได้ถูกตั้งค่าผ่าน URL)
สำหรับ Lorawan ความยาวของคำนำจะอยู่เสมอ 8 CR อยู่เสมอ 4/5 ส่วนหัวระดับ LORA จะรวมอยู่เสมอและโหมดการเพิ่มประสิทธิภาพอัตราข้อมูลต่ำนั้นใช้งานได้สำหรับ SF11 และ SF12 บน 125 kHz
เหตุการณ์สำเนาของเบราว์เซอร์ถูกแมปดังนี้:
หากเลือกข้อความใด ๆ ให้คัดลอก นี่คือการจัดการโดยเบราว์เซอร์
มิฉะนั้นเมื่อคำแนะนำเครื่องมือใช้งานให้คัดลอกข้อความ สิ่งนี้ให้ทั้งรูปแบบข้อความ HTML และแบบธรรมดา บนเบราว์เซอร์เดสก์ท็อปคุณจะต้องใช้แป้นพิมพ์เพื่อคัดลอกคำแนะนำเครื่องมือ
มิฉะนั้นคัดลอกผลลัพธ์ สิ่งนี้รองรับ HTML เท่านั้น
สำหรับการแบ่งบรรทัดในกริดผลลัพธ์สิ่งนี้จะใช้รูปแบบที่เฉพาะเจาะจงมากกับการแปลงอัตโนมัติจาก HTML เป็น markdown ในวาทกรรมเช่นที่ใช้ในฟอรัม TTN: วาทกรรมแทนที่ <br> ด้วย n แต่ก็ปฏิเสธ n ในเซลล์ตาราง ในฐานะที่เป็นวิธีแก้ปัญหา <br> ถูกส่งออกเป็น <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 ที่กำหนดเอง น่าเสียดายที่เบราว์เซอร์บางตัว (เช่น Brave) อาจพยายามเป็นประโยชน์และแสดงตัวเลือกเช่น "คุณต้องการตรวจสอบว่ามีเวอร์ชันที่บันทึกไว้ในเครื่อง Wayback หรือไม่" แม้ว่าจะดำเนินการเปลี่ยนเส้นทางที่คาดหวังไว้อย่างถูกต้อง ไม่ชัดเจนว่าทำไม 200 OK สุดท้ายจะลบแบนเนอร์สำหรับบางเว็บไซต์ที่กล้าหาญ แต่ไม่ใช่สำหรับหน้า GitHub
โครงการนี้ถูก bootstrapped ด้วยแอป Create React
ในการใช้ชุดข้อมูลที่ จำกัด สำหรับการวางแผน (ลบประมาณ 690 kb ออกจากการสร้าง) ในขณะที่ใช้การพิมพ์ของชุดเต็มรูปแบบการกำหนดค่านามแฝง 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
ในไดเรกทอรีโครงการ Run:
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
เรียกใช้ผ้าลินินและสวยทั้งหมดด้วยตนเองหรือเรียกใช้เฉพาะรหัสสำหรับรหัส styleheets หรือไฟล์ที่เหลือ ซึ่งแตกต่างจากตะขอล่วงหน้า (ดูด้านล่าง) สิ่งนี้ไม่ จำกัด เฉพาะไฟล์ที่จัดฉาก
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 ซึ่งซ่อนการเปลี่ยนแปลงที่ไม่มีการเปลี่ยนแปลงไปยังไฟล์ที่จัดฉากบางส่วนชั่วคราว สิ่งนี้อาจทำให้ IDE แสดงคำเตือนเกี่ยวกับไฟล์ที่เปลี่ยนไปนอก IDE
ระวังว่า Sourcetree อาจข้ามตะขอล่วงหน้าอย่างเงียบ ๆ
เปิดใช้งาน Stylelint ใน ภาษาและเฟรมเวิร์ก | แผ่นสไตล์ Stylelint และเลือกปิดใช้งานการตรวจสอบมาตรฐานใน Editor | การตรวจสอบ CSS (ตัวอย่างเช่น WebStorm ไม่ชอบ @import-normalize; ใน App.scss แต่ใช้ // noinspection CssInvalidAtRule ยับยั้งการตรวจสอบเฉพาะในรหัสนี้แล้ว)
การตั้งค่าที่สวยงามใน .prettierrc.yaml กำหนด trailingComma: es5 หลังจากได้รับแจ้งว่า "ใช้สไตล์รหัสตามที่น่าสนใจสำหรับโครงการนี้?" ใน WebStorm สิ่งนี้จะให้ รูปแบบการเข้ารหัส | เครื่องหมายวรรคตอน Trailing Comma: เพิ่มเมื่อ multiline น่าเสียดายที่สิ่งนี้ยังใช้กับพารามิเตอร์ฟังก์ชันซึ่งเพิ่มเครื่องหมายจุลภาคที่มากเกินไปเมื่อกดปุ่มตัวเลือกการบังคับบัญชา-L สำหรับรหัสฟอร์แมต (แต่ไม่ใช่สำหรับตัวเลือกการเลือก-คอมมิวนิสต์-P สำหรับการฟอร์แมตด้วยความน่ารัก) เพื่อหลีกเลี่ยงสิ่งนั้นให้ตั้งค่า Webstorm ด้วยตนเองเพื่อใช้ เครื่องหมายจุลภาคต่อท้าย: Keep
การตั้งค่าตัวแก้ไขใน .editorconfig กำหนด max_line_length ซึ่งใช้เมื่อกดตัวเลือกคอมมิวนิสต์-L สำหรับรหัสฟอร์แมต แต่ไม่ใช่เมื่อใช้ตัวเลือกการเลือก-คอมมิวนิสต์-P สำหรับการฟอร์แมตด้วยความน่ารัก