Semtech的LORA調製解調器設計師指南(AN1200.13)中定義的公式的基本反應UI,顯示了事物網絡(TTN)頻率計劃中使用的數據速率的通話時間,並顯示了適用於TTN公共網絡的局限性。
在https://avbentem.github.io/airtime-calculator上查看它。
下一個版本可能包括:
顯示數據速率的頻率計劃是事物網絡的內容。它們基於頻率計劃和Lorawan區域參數v1.0.2rb,並在config.json中定義。
某些頻率計劃的上行鏈路和下行鏈路的數據速率非常不同。對於那些不同的“區域”是在此應用程序中定義的,例如US902(上行鏈路)和US902 DL(下行鏈路)。其他人則共享(大多數)數據速率,例如EU868。
這兩個國家和勞拉萬規格可能會定義最大的佔空比或最大停留時間限制:當可以在幾個國家使用某些頻率計劃時,不同的國家仍可能施加不同的法律限制。和:
重要的是要牢記,規格表中描述的佔空比限制是洛萬施加的限制,而不是法律限制。如果您構建商業設備並希望它們獲得洛杉磯認證,則需要遵守規格。開發設備不必完全符合規格。任何設備(無論是否洛杉磯,網關或節點,商業或開發)都必須符合適用於您所在國家 /地區的法律限制。
[...]
洛萬義的佔空比僅適用於節點。從技術上講,網關只是Lora設備,而不是Lorawan,因此Lorawan規範不適用於它們。法規佔空比限制通常適用於任何發射器。
像AS923:
Lorawan 1%最大佔空比僅適用於923.20和923.40 MHz。
400毫秒的最大停留時間可能不適用於澳大利亞。
Lorawan規範定義了最大有效載荷大小的多個選項,例如取決於停留時間設置,以及是否有或不支持可能的中繼器封裝。
在早期規格中,這些選擇令人困惑,因為當不適用最大停留時間時,通常會列出較小的最大值。但是,2020年2月Lorawan區域參數RP002-1.0.1指出,無論停留時間如何,沒有Macpayload可能大於230個字節,並且在該版本中,數字也已進行了調整。
該計算器使用RP002-1.0.1的最大有效載荷尺寸,該大小允許可能的中繼器封裝,並且不考慮最大的停留時間。如果設備永遠不會在中繼器下運行,則最大尺寸可能會更大。如果定義了停留時間,那麼無論最大有效載荷大小,這些時間都會在計算器中產生警告,從而使這些停留時間不適用的用戶仍然可以看到正確的(更高)最大有效載荷大小。
更改有效載荷大小並不總是影響構成Lora數據包有效載荷和標頭的符號數量,或者對於所有數據速率而言。例如,這對於申請有效載荷尺寸為12對13個字節非常可見。這是由LORA無線電調製,交織和正向誤差校正引起的預期結果。網格下面的圖表可視化這一點。
Semtech's LoRa Modem Designer's Guide (AN1200.13) defines some more parameters, especially preamble length (to detect the signal), coding rate (CR, for forward error correction), header mode (to include a LoRa header with details such as coding rate, payload length and CRC), and low data rate optimisation mode (to avoid issues with drift of the crystal reference oscillator due to either temperature change or motion).對於Lorawan,這些是不可構型的,因此不會以用戶輸入的形式公開(如果CR除外,如果通過URL設置了非默認值)。
對於Lorawan,序列長度始終為8,CR始終為4/5,始終包括Lora-Level標頭,並且SF11和125 kHz上的SF11和SF12的低數據速率優化模式。
瀏覽器的複制事件的映射如下:
如果選擇了任何文本,請複制。這是由瀏覽器處理的。
否則,當工具提示處於活動狀態時,請複制其文本。這同時產生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 , cr48之一LinkAdrReq默認值不包含在<parameters>段中;目前適用於:
cr45 :固定為Lorawan當所有參數使用其默認值時, <parameters>段及其斜線將被排除在外。
要從GitHub頁面上提供此單頁應用程序,需要在自定義404頁中使用JavaScript重定向的一些技巧。不幸的是,某些瀏覽器(例如勇敢)可能會嘗試有所幫助,並顯示一個選項,例如“您想檢查Wayback Machine上是否有保存的版本?”即使正確執行預期的重定向。目前尚不清楚為什麼最後的200個OK刪除了勇敢的某些網站的橫幅,但沒有用於Github頁面。
該項目用Create React應用程序進行了引導。
要使用有限的捆綁包進行繪圖(從構建中卸下約690 kb),而使用完整捆綁包的鍵入,則在tsconfig.json中使用了paths別名配置。但是,在測試或構建過程中,創建React App會大膽地刪除:
> 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文件夾中。
要確保可以加載/ttn/eu868/1,2之類的URL而不先加載裸露/ ,請參見apache .htaccess文件。
要為子文件夾構建,請在package.json中設置"homepage": "/some/path/to/airtime-calculator" 。這不會影響開發服務器,該服務器將始終從根文件夾中加載。要在根文件夾中部署,請將其設置為"/"或根本不設置它。另請參閱有關部署的創建React應用程序文檔。
預先承諾的鉤子可確保無法犯錯錯誤和格式化錯誤。為了允許更漂亮的規則取代可能由Linter定義的任何格式規則,它被配置為作為ESLINT和Stylelint的插件運行,並明確運行,這些文件類型未由任何一個進行處理。
請注意,預製掛鉤使用了絨毛段,該鉤子暫時將未分段的更改隱藏到部分上演的文件中。這可能會使您的IDE顯示有關在IDE之外更改的文件的警告。
提防Sourcetree可能會默默地跳過預先承諾的鉤子。
在語言和框架中啟用Stylelint |樣式表| stylelint ,可選地禁用編輯器中的標準檢查|檢查| CSS 。 (例如,WebStorm不喜歡@import-normalize;在App.scss中,而是使用// noinspection CssInvalidAtRule已經在此代碼中抑制了該特定檢查。)
.prettierrc.yaml中更漂亮的設置定義了trailingComma: es5 。在提示“使用基於該項目的代碼樣式的代碼樣式?”之後?在Webstorm中,這將產生編碼樣式|標點符號|尾逗號:添加多行時。不幸的是,這也適用於函數參數,在重新構碼命中選項命令l時增加了一個過多的逗號(但不適合使用Pripttier的Regripat的期權移動命令P)。為了避免這種情況,請手動設置WebStorm以使用Tailting Comma:Keep 。
.editorconfig中的編輯器設置定義max_line_length ,該編輯器在鍵入重新格式代碼時使用option-command-l時使用,但在使用Prettier的Gemant-for Grematat使用選項示波命令-P時使用。