Skip to content

anastas93/testing_satping

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

testing_satping

Диагностика узкополосного ΠΏΡ€ΠΈΡ‘ΠΌΠ° SX1262

Π’ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция configureNarrowbandRxOptions(), которая автоматичСски подтягиваСт ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ настройки для полосы 7.81 ΠΊΠ“Ρ† ΠΈ Π±Π»ΠΈΠ·ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

  • ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π΄ΠΈΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ SetRx (timeout = 0) для тСстов Π±Π΅Π· ΠΎΠΊΠΎΠ½, Π»ΠΈΠ±ΠΎ Π΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΎΠΊΠ½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 2.15 с, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅;
  • Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ остановку RX-Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΏΠΎ ΠΏΡ€Π΅Π°ΠΌΠ±ΡƒΠ»Π΅ (SetStopRxTimerOnPreamble(true)), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΊΠ½ΠΎ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π»ΠΎΡΡŒ посрСди ΠΏΠ°ΠΊΠ΅Ρ‚Π°;
  • ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π°ΠΌΠ±ΡƒΠ»Ρƒ Π΄ΠΎ 16–24 символов, давая запас Π½Π° CADβ†’RX ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π΅Π² TCXO;
  • ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ LDRO, ΠΊΠΎΠ³Π΄Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символа ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 16 мс;
  • Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ LoRaSymbNumTimeout, Ρ‡Ρ‚ΠΎΠ±Ρ‹ поиск Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π» ΠΏΡ€Π΅Π°ΠΌΠ±ΡƒΠ»Ρƒ;
  • Π²Π΅Π΄Ρ‘Ρ‚ ΠΆΡƒΡ€Π½Π°Π» Ρ‚Π°ΠΉΠΌΠΈΠ½Π³ΠΎΠ² с прСфиксом [RX t=…], фиксируя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SetRx, PreambleDetected, SyncWordValid, HeaderValid, RxDone ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ послСднСго SetRx.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ диагностика Π΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ„Π»Π°Π³ state.rxTiming.forceContinuousRx = true. Для Π±ΠΎΠ΅Π²ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΡ‘ΠΌ.

Π–ΡƒΡ€Π½Π°Π»Ρ‹ доступны Π² Π²Π΅Π±-интСрфСйсС ΠΈ ΠΏΠΎ GET /api/log.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ SF ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ FHSS

  • Π’ Π²Π΅Π±-интСрфСйсС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список для Π²Ρ‹Π±ΠΎΡ€Π° любого Ρ„Π°ΠΊΡ‚ΠΎΡ€Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ SF5–SF12. Π’Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отправляСтся Π½Π° POST /api/sf с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ sf.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ частотный ΠΏΡ€Ρ‹ΠΆΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ (FHSS) ΠΏΠΎ всСм ΠΊΠ°Π½Π°Π»Π°ΠΌ Π±Π°Π½ΠΊΠ° HOME. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ осущСствляСтся чСкбоксом Π² Π²Π΅Π±Π΅ ΠΈΠ»ΠΈ POST /api/fhss с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ enable (1/0).
  • Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ стоянки Π½Π° частотС задаётся Π² ΠΊΠΎΠ΄Π΅ (state.fhss.dwellTimeMs, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 250 мс), Π° автоматичСский ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅, ΠΈ Π² ΠΏΡ€ΠΈΡ‘ΠΌΠ΅.
  • Для узкополосных экспСримСнтов FHSS Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Ρ‹ΠΆΠΊΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Β±5 ΠΊΠ“Ρ† ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° HOME (общая ΡˆΠΈΡ€ΠΈΠ½Π° 10 ΠΊΠ“Ρ†), синхронно смСщая частоты RX ΠΈ TX. Π­Ρ‚ΠΎ позволяСт ΡƒΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² Тёсткий ΡΠΏΠ΅ΠΊΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ Π±Π΅Π· Ρ€ΡƒΡ‡Π½ΠΎΠΉ пСрСнастройки.

АдаптивныС ΠΎΠΊΠ½Π° ACK ΠΈ коррСкция ошибок

  • Окна ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ динамичСский Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚, вычисляСмый ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… настроСк LoRa (BW, SF, ΠΏΡ€Π΅Π°ΠΌΠ±ΡƒΠ»Π°) ΠΈ статистики RTT. Π­Ρ‚ΠΎ ускоряСт ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅ ΠΈ автоматичСски Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΡƒΡ…ΡƒΠ΄ΡˆΠ΅Π½ΠΈΠΈ условий.
  • ΠŸΠ°ΡƒΠ·Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Π΄Ρ€Π°ΠΌΠΈ Ρ‚Π°ΠΊΠΆΠ΅ рассчитываСтся Π½Π° основС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ эфирной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, Ρ‡Ρ‚ΠΎ сокращаСт ΠΌΠ΅ΠΆΠΊΠ°Π΄Ρ€ΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±Π΅Π· увСличСния числа ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ.
  • ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ HARQ пСрСдаётся XOR-ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚ всСго ΠΎΠΊΠ½Π° DATA-Π±Π»ΠΎΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ позволяСт автоматичСски Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ потСрянный ΠΊΠ°Π΄Ρ€ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ. ΠŸΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ отслСТиваСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ACK.
  • Если ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΡƒ всё Π΅Ρ‰Ρ‘ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ это Π² ACK, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ отправляСт ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚, послС Ρ‡Π΅Π³ΠΎ выполняСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ подтвСрТдСния.
  • Π’ ΠΊΠΎΠ΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция formatWindowReceptionStatus(), Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰Π°Ρ строку Π²ΠΈΠ΄Π° |βœ…|⛔️|βœ…| для отобраТСния состояния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΎΠΊΠ½Π° Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ событий, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сразу Π²ΠΈΠ΄Π΅Ρ‚ΡŒ доставлСнныС ΠΈ потСрянныС ΠΊΠ°Π΄Ρ€Ρ‹.

ΠšΠΎΠ΄ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Reed–Solomon для ΠΎΠΊΠΎΠ½ ΠΏΠΎ 8 Π±Π°ΠΉΡ‚

  • Π’ ΠΏΠ°ΠΏΠΊΠ΅ src/libs/fec Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ fec_rs.h/.cpp с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ поля GF(2^8) Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ΅ 0x11D ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΌΠΈ функциями encode_window<K,P>()/decode_window<K,P>() для формирования ΠΈ восстановлСния RS-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 8 Π±Π°ΠΉΡ‚.
  • ΠšΠΎΠ΄Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π’Π°Π½Π΄Π΅Ρ€ΠΌΠΎΠ½Π΄Π° ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ P ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², совмСстимых с профилями K=8,P=2, K=8,P=4, K=10,P=6.
  • Π”Π΅ΠΊΠΎΠ΄Π΅Ρ€ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ систСму Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Гаусса Π² GF(256) ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ ΠΈΠ· K принятых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false, Ссли доступных столбцов мСньшС K.
  • Для Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ€Π½Ρ‹ΠΉ тСст tests/test_rs.cpp, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ всС допустимыС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ стираний, Π° Ρ‚Π°ΠΊΠΆΠ΅ провСряСт восстановлСниС бурстов Π΄Π»ΠΈΠ½ΠΎΠΉ Π΄ΠΎ K/2 с использованиСм Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published