mirror of
https://github.com/MarekWo/mc-webui.git
synced 2026-07-04 17:01:34 +02:00
8d9c2b241c
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>
54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
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.
|