Π ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ 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.
- Π Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠΎΡΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ SF5βSF12. ΠΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π°
POST /api/sfΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌsf. - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ°ΡΡΠΎΡΠ½ΡΠΉ ΠΏΡΡΠΆΠΊΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ (FHSS) ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ Π±Π°Π½ΠΊΠ° HOME. ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΠ±ΠΎΠΊΡΠΎΠΌ Π² Π²Π΅Π±Π΅ ΠΈΠ»ΠΈ
POST /api/fhssΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌenable(1/0). - ΠΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠΎΡΠ½ΠΊΠΈ Π½Π° ΡΠ°ΡΡΠΎΡΠ΅ Π·Π°Π΄Π°ΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅ (
state.fhss.dwellTimeMs, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 250 ΠΌΡ), Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈ Π² ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅, ΠΈ Π² ΠΏΡΠΈΡΠΌΠ΅. - ΠΠ»Ρ ΡΠ·ΠΊΠΎΠΏΠΎΠ»ΠΎΡΠ½ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² FHSS ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΡΠΆΠΊΠΈ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Β±5 ΠΊΠΡ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° HOME (ΠΎΠ±ΡΠ°Ρ ΡΠΈΡΠΈΠ½Π° 10 ΠΊΠΡ), ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΡΠΌΠ΅ΡΠ°Ρ ΡΠ°ΡΡΠΎΡΡ RX ΠΈ TX. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² ΠΆΡΡΡΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ Π±ΡΠ΄ΠΆΠ΅Ρ Π±Π΅Π· ΡΡΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
- ΠΠΊΠ½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠΌ-Π°ΡΡ, Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΉ ΠΈΠ· ΡΠ΅ΠΊΡΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ LoRa (BW, SF, ΠΏΡΠ΅Π°ΠΌΠ±ΡΠ»Π°) ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ RTT. ΠΡΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ Ρ ΠΎΡΠΎΡΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΡ ΡΠ΄ΡΠ΅Π½ΠΈΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ.
- ΠΠ°ΡΠ·Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°Π΄ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠΈΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ ΠΌΠ΅ΠΆΠΊΠ°Π΄ΡΠΎΠ²ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π±Π΅Π· ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ.
- ΠΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ HARQ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ XOR-ΠΏΠ°ΡΠΈΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° DATA-Π±Π»ΠΎΠΊΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠΉ ΠΊΠ°Π΄Ρ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ. ΠΡΠΈΡΠΌΠ½ΠΈΠΊ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠ°ΡΠΈΡΠ΅ΡΠ° ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ACK.
- ΠΡΠ»ΠΈ ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊΡ Π²ΡΡ Π΅ΡΡ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΎΠ½ ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ ΡΡΠΎ Π² ACK, ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΡΠΈΡΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ.
- Π ΠΊΠΎΠ΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ
formatWindowReceptionStatus(), ΡΠΎΡΠΌΠΈΡΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΡ Π²ΠΈΠ΄Π°|β |βοΈ|β |Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎΠΊΠ½Π° Π² ΠΆΡΡΠ½Π°Π»Π΅ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΡΠ°Π·Ρ Π²ΠΈΠ΄Π΅ΡΡ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΊΠ°Π΄ΡΡ.
- Π ΠΏΠ°ΠΏΠΊΠ΅
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Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.