mirror of
https://github.com/MarekWo/mc-webui.git
synced 2026-03-28 17:42:45 +01:00
Implemented 200-character limit for messages due to LoRa/MeshCore constraints: - Added maxlength=200 to textarea - Added live character counter (0 / 200) - Visual warnings: orange at 75%, red at 90% - Counter updates on input, reply, and send - Backend validation with descriptive error message - Added technotes/limity.md documentation about MeshCore limits Based on MeshCore LoRa payload constraints (~180-200 bytes safe limit). This prevents message fragmentation and improves transmission reliability. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1.7 KiB
1.7 KiB
W MeshCore obowiązuje dość rygorystyczny limit długości pojedynczej wiadomości, wynikający bezpośrednio z ograniczeń LoRa.
🔹 Limit długości wiadomości
-
Maksymalnie ~200–240 bajtów payloadu
-
W praktyce bezpiecznie przyjmuj ~180–200 bajtów, bo część danych zajmują:
- nagłówki protokołu MeshCore,
- adresowanie,
- metadane routingu,
- CRC / kontrola integralności.
To oznacza:
- kilkadziesiąt znaków tekstu (zależnie od kodowania),
- raczej krótkie komunikaty, nie „SMS-y” ani tym bardziej bloki tekstu.
🔹 Co się dzieje przy dłuższej wiadomości?
-
MeshCore tnie ją na fragmenty (fragmentation),
-
fragmenty są wysyłane osobno i składane u odbiorcy,
-
każdy fragment zwiększa czas transmisji i ryzyko utraty, szczególnie:
- przy niskim SF,
- w zatłoczonej sieci,
- na dalekich hopach.
Dlatego:
zalecenie praktyczne: traktuj MeshCore jak pager / radio tekstowe, a nie komunikator.
🔹 Porównanie (dla intuicji)
-
1 znak ASCII ≈ 1 bajt
-
180 bajtów ≈
- ~180 znaków ASCII
- ~90–120 znaków UTF-8 (polskie znaki, emoji → szybciej zjadają limit)
🔹 Dobre praktyki
-
używaj krótkich, rzeczowych komunikatów,
-
unikaj emoji i znaków narodowych, jeśli zasięg/stabilność jest krytyczna,
-
jeśli musisz przesłać więcej danych:
- podziel treść logicznie (kilka wiadomości),
- rozważ out-of-band (np. MeshCore tylko do „powiadomień”).
Jeśli chcesz, mogę:
- rozpisać dokładną strukturę ramki MeshCore (ile bajtów na co),
- porównać to z Meshtastic (tam limity są trochę inne),
- albo pomóc dobrać SF/BW/CR, żeby fragmentacja była możliwie bezpieczna.