Semtech의 LORA Modem Designer 's Guide (AN1200.13)에 정의 된 공식에 대한 기본 반응 UI는 Things Network (TTN)의 주파수 계획에 사용 된 데이터 속도에 대한 방송 시간을 보여주고 TTN 공개 네트워크에 적용되는 제한 사항을 보여줍니다.
https://avbentem.github.io/airtime-calculator에서 확인하십시오.
다음 버전에는 다음이 포함될 수 있습니다.
데이터 속도가 표시되는 주파수 계획은 네트워크의 주파수입니다. 주파수 계획과 Lorawan 지역 매개 변수 v1.0.2rb를 기반으로하며 config.json에 정의됩니다.
일부 주파수 계획은 업 링크 및 다운 링크에 대해 매우 다른 데이터 속도를 가지고 있습니다. 이러한 별개의 "영역"은 US902 (업 링크) 및 US902 DL (다운 링크)과 같이이 응용 프로그램에서 정의됩니다. 다른 사람들은 EU868과 같은 데이터 속도의 대부분을 공유합니다.
두 국가와 로라와 사양은 최대 의무주기 또는 최대 주거 시간 제한을 정의 할 수 있습니다. 여러 국가에서 일부 빈도 계획을 사용할 수있는 경우 다른 국가마다 여전히 다른 법적 제한을 부과 할 수 있습니다. 그리고:
사양의 표에 설명 된 듀티 사이클 제한은 법적 한계가 아니라 로라완에 부과 된 제한이라는 점을 명심해야합니다. 상용 장치를 구축하고 Lorawan 인증을 받기를 원한다면 사양을 준수해야합니다. 개발 장치는 사양을 완전히 준수 할 필요가 없습니다. 모든 장치 (Lorawan, Gateway 또는 Node, Commercial 또는 Development)는 귀하의 국가에 적용되는 법적 제한을 준수해야합니다.
[...]
Lorawan에 부과 된 듀티 사이클은 노드에만 적용됩니다. 게이트웨이는 기술적으로 Lorawan이 아닌 Lora 장치이므로 Lorawan 사양은 적용되지 않습니다. 규제 듀티 사이클 제한은 일반적으로 모든 송신기에 적용됩니다.
AS923처럼 :
Lorawan 1% 최대 듀티 사이클은 923.20 및 923.40 MHz에만 적용됩니다.
400ms 최대 체류 시간은 호주에 적용되지 않을 수 있습니다.
Lorawan Specification (들)은 거주 시간 설정에 따라 및 가능한 리피터 캡슐화에 대한 지원 유무에 관계없이 최대 페이로드 크기에 대한 여러 옵션을 정의합니다.
초기 사양에서는 이러한 선택이 최대 거주 시간이 적용 되지 않으면 더 작은 최대 값이 나열되므로 매우 혼란 스럽습니다. 그러나 2020 년 2 월 Lorawan 지역 매개 변수 RP002-1.0.1은 거주 시간 제한에 관계없이 MacPayLoad가 230 바이트보다 클 수 없으며 해당 버전에서도 숫자도 조정되었습니다.
이 계산기는 RP002-1.0.1의 최대 페이로드 크기를 사용하여 가능한 리피터 캡슐화를 허용하고 최대 거주 시간을 고려하지 않습니다. 장치가 리피터에서 작동하지 않으면 최대 크기가 약간 클 수 있습니다. 주택 시간이 정의 된 경우 최대 페이로드 크기에 관계없이 계산기에서 경고를 생성하므로, 해당 주제 시간이 적용되지 않는 사용자는 여전히 올바른 (더 높은) 최대 페이로드 크기를 볼 수 있습니다.
페이로드 크기를 변경한다고해서 LORA 패킷 페이로드 및 헤더를 구성하는 기호의 수에 항상 영향을 미치거나 모든 데이터 속도에 대해 영향을 미치지는 않습니다. 예를 들어, 이것은 12 대 13 바이트의 애플리케이션 페이로드 크기에 매우 보입니다. 이것은 LORA 무선 변조, 인터리빙 및 전방 오류 수정으로 인한 예상 결과입니다. 그리드 아래의 그래프는 이것을 시각화합니다.
SEMTECH의 LORA 모뎀 디자이너 안내서 (AN1200.13)는 더 많은 매개 변수, 특히 프리앰블 길이 (신호 감지), 코딩 속도 (CR, 순방향 오류 수정을위한 CR, CR, 코딩 속도, 페이로드 길이 및 CRC와 같은 세부 사항이 포함 된 LORA 헤더) 및 낮은 데이터 최적화 모드를 포함하는 더 많은 매개 변수를 정의합니다 (Crystal Cresents Oplother와 관련된 문제를 피하기 위해). Lorawan의 경우 이들은 구성 할 수 없으므로 사용자 입력으로 노출되지 않습니다 (URL이 아닌 값이 URL을 통해 설정된 경우 CR을 제외하고).
Lorawan의 경우 서문 길이는 항상 8이고 CR은 항상 4/5이고 Lora 레벨 헤더는 항상 포함되며 125 kHz에서 SF11 및 SF12의 경우 낮은 데이터 속도 최적화 모드가 활성화됩니다.
브라우저의 사본 이벤트는 다음과 같이 매핑됩니다.
텍스트가 선택되면 복사하십시오. 이것은 브라우저에서 처리됩니다.
그렇지 않으면 툴팁이 활성화되면 텍스트를 복사하십시오. 이것은 HTML과 일반 텍스트 형식을 모두 생성합니다. 데스크탑 브라우저에서는 툴팁을 복사하려면 키보드가 필요합니다.
또는 결과를 복사하십시오. 이것은 HTML 만 지원합니다.
결과 그리드에서 라인이 깨지는 경우, 이것은 TTN 포럼에서 사용되는 것처럼 HTML에서 담론의 마크 다운으로 자동 변환에 매우 특정한 형식을 사용합니다. 담론은 <br> n 으로 대체하지만 테이블 셀에서 n 거부합니다. 해결 방법으로 <br> <br> 로 출력되며, 이는 Discourse의 편집자에서 예상대로 처리되지만 다른 곳에 붙여 넣을 때 편집해야합니다. 물론, 정적 결과를 사용하는 것은 어쨌든 유용하지 않습니다.
text/plain 의 경우, 담론은 HTML보다 긴 경우 일반 텍스트 내용을 선호하므로 URL이 추가되지 않습니다.
이 응용 프로그램은 공유 가능한 URL을 염두에두고 작성되었으므로 거의 모든 사용자 입력이 업데이트 된 URL을 산출합니다.
/<network>/<region>[/<parameters>] , eg /ttn/eu868 및 /ttn/us902/6,14,cr48 .
<parameters> 는 쉼표로 구분 된 목록이며 정의합니다.
cr45 , cr46 , cr47 , cr48 중 하나에서 취한 코딩 속도LinkAdrReq 와 같은 하나 이상의 MAC 명령 기본값은 <parameters> 세그먼트에 포함되지 않습니다. 이것은 현재 다음에 적용됩니다.
cr45 : Lorawan의 경우 고정 모든 매개 변수가 기본값을 사용하면 <parameters> 세그먼트와 그 슬래시가 제외됩니다.
GitHub 페이지 에서이 단일 페이지 응용 프로그램을 제공하려면 사용자 정의 404 페이지에 JavaScript 리디렉션이있는 일부 속임수가 필요합니다. 불행히도, 일부 브라우저 (예 : 용감한)는 도움이되고 "저장된 버전이 웨이 백 머신에서 사용할 수 있는지 확인 하시겠습니까?" 와 같은 옵션을 보여줄 수 있습니다. 예상되는 리디렉션을 올바르게 실행하더라도. 최종 200 OK가 용감한 일부 사이트의 배너를 제거하지만 GitHub 페이지에는 그렇지 않은 이유는 확실하지 않습니다.
이 프로젝트는 Create React 앱으로 부트 스트랩되었습니다.
플롯에 제한된 번들을 사용하려면 (빌드에서 약 690kb 제거) 전체 번들의 유형을 사용하는 동안 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 App 문서 작성을 참조하십시오.
npm test -- --coverage
커버리지로 단일 테스트가 실행됩니다.
npm run lint , npm run lint:es , npm run lint:style 또는 npm run lint:pretty
모든 Linters와 Pretier를 수동으로 실행하거나 코드, StyleHeet 또는 나머지 파일에 대해서만 실행하십시오. 사전 커밋 후크 (아래 참조)와 달리 단계별 파일에만 국한되지 않습니다.
npm run build
Linters를 실행하고 모두 성공하면 build 폴더에 생산을 위해 최소화 된 번들로 앱을 빌드합니다.
Bare / 먼저로드하지 않고 /ttn/eu868/1,2 와 같은 URL을로드 할 수 있습니다. 예를 들어 Apache .htaccess 파일을 참조하십시오.
하위 폴더를 위해 빌드하려면 "homepage": "/some/path/to/airtime-calculator" package.json 에 설정하십시오. 이것은 루트 폴더에서 항상로드되는 개발 서버에 영향을 미치지 않습니다. 루트 폴더의 배포를 위해 "/" 로 설정하거나 전혀 설정하지 마십시오. 배포에 대한 React App 문서 작성도 참조하십시오.
사전 커밋 후크는 라인 오류 및 서식 오류를 커밋 할 수 없도록합니다. 더 예쁜 규칙이 Linter에 의해 정의 될 수있는 형식 규칙을 대체 할 수 있도록 Eslint 및 Stylelint 모두에 대한 플러그인으로 실행되며 그 중 하나가 처리하지 않는 몇 가지 파일 유형에 대해 명시 적으로 실행하도록 구성됩니다.
사전 커밋 후크는 Lint-Stage를 사용하여 일시적으로 무대 무대 변경 사항을 부분적으로 단계적으로 무대에두고 숨 깁니다. 이것은 IDE가 IDE 외부에서 변경된 파일에 대한 IDE 쇼 경고를 만들 수 있습니다.
Sourcetree가 사전 커밋 후크를 조용히 건너 뛸 수 있다고 조심하십시오.
언어 및 프레임 워크 에서 스타일링을 활성화하십시오 스타일 시트 | 스타일 린트 및 선택적으로 편집자의 표준 검사를 비활성화합니다 | 검사 | CSS . (예를 들어, WebStorm은 @import-normalize; App.scss 에서는 좋아하지 않지만 // noinspection CssInvalidAtRule 사용하여 이미이 코드의 특정 검사를 억제합니다.)
.prettierrc.yaml 의 더 예쁜 설정은 trailingComma: es5 정의합니다. "이 프로젝트에 더 예쁘게 코드 스타일을 사용합니까?"라는 메시지가 표시됩니다. WebStorm에서는 코딩 스타일을 산출합니다. | 구두점 | 후행 쉼표 : 멀티 린 시점을 추가하십시오 . 불행히도 이것은 기능 매개 변수에도 적용되는데, 이는 Reformat 코드의 옵션-명령 -L을 누를 때 과도한 쉼표를 추가합니다 (그러나 더 예쁘게 개혁을위한 옵션 시프트-명령 -P는 아닙니다). 이를 피하려면 WebStorm을 수동으로 설정하여 후행 쉼표를 사용하십시오.
.editorconfig 의 편집기 설정은 max_line_length 정의합니다. Max_Line_Length는 Reformat 코드의 옵션-커맨드 -L을 누를 때 사용되지만 더 예쁘고 Trementier와 함께 옵션 시프트-명령 -P를 사용할 때는 그렇지 않습니다.