This commit is contained in:
MarekZegare4
2026-08-12 20:44:35 +00:00
parent 4348e580f5
commit 0555a14e78
11 changed files with 904 additions and 58 deletions
+648 -26
View File
@@ -537,6 +537,316 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#node-advertisement" class="md-nav__link">
<span class="md-ellipsis">
Node advertisement
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#acknowledgement" class="md-nav__link">
<span class="md-ellipsis">
Acknowledgement
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#returned-path-request-response-and-plain-text-message" class="md-nav__link">
<span class="md-ellipsis">
Returned path, request, response, and plain text message
</span>
</a>
<nav class="md-nav" aria-label="Returned path, request, response, and plain text message">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#returned-path" class="md-nav__link">
<span class="md-ellipsis">
Returned path
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#request" class="md-nav__link">
<span class="md-ellipsis">
Request
</span>
</a>
<nav class="md-nav" aria-label="Request">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#get-stats" class="md-nav__link">
<span class="md-ellipsis">
Get stats
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-telemetry-data" class="md-nav__link">
<span class="md-ellipsis">
Get telemetry data
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-telemetry" class="md-nav__link">
<span class="md-ellipsis">
Get Telemetry
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-minmaxave-sensor-nodes" class="md-nav__link">
<span class="md-ellipsis">
Get Min/Max/Ave (Sensor nodes)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-access-list" class="md-nav__link">
<span class="md-ellipsis">
Get Access List
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-neighbors" class="md-nav__link">
<span class="md-ellipsis">
Get Neighbors
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-owner-info" class="md-nav__link">
<span class="md-ellipsis">
Get Owner Info
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#response" class="md-nav__link">
<span class="md-ellipsis">
Response
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#plain-text-message" class="md-nav__link">
<span class="md-ellipsis">
Plain text message
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#anonymous-request" class="md-nav__link">
<span class="md-ellipsis">
Anonymous request
</span>
</a>
<nav class="md-nav" aria-label="Anonymous request">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#room-server-login" class="md-nav__link">
<span class="md-ellipsis">
Room server login
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repeatersensor-login" class="md-nav__link">
<span class="md-ellipsis">
Repeater/Sensor login
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repeater-regions-request" class="md-nav__link">
<span class="md-ellipsis">
Repeater - Regions request
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repeater-owner-info-request" class="md-nav__link">
<span class="md-ellipsis">
Repeater - Owner info request
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repeater-clock-and-status-request" class="md-nav__link">
<span class="md-ellipsis">
Repeater - Clock and status request
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#group-text-message" class="md-nav__link">
<span class="md-ellipsis">
Group text message
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#group-datagram" class="md-nav__link">
<span class="md-ellipsis">
Group datagram
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#control-data" class="md-nav__link">
<span class="md-ellipsis">
Control data
</span>
</a>
<nav class="md-nav" aria-label="Control data">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#discover_req-sub_type" class="md-nav__link">
<span class="md-ellipsis">
DISCOVER_REQ (sub_type)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#discover_resp-sub_type" class="md-nav__link">
<span class="md-ellipsis">
DISCOVER_RESP (sub_type)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#custom-packet" class="md-nav__link">
<span class="md-ellipsis">
Custom packet
</span>
</a>
</li>
</ul>
@@ -1463,6 +1773,316 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#node-advertisement" class="md-nav__link">
<span class="md-ellipsis">
Node advertisement
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#acknowledgement" class="md-nav__link">
<span class="md-ellipsis">
Acknowledgement
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#returned-path-request-response-and-plain-text-message" class="md-nav__link">
<span class="md-ellipsis">
Returned path, request, response, and plain text message
</span>
</a>
<nav class="md-nav" aria-label="Returned path, request, response, and plain text message">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#returned-path" class="md-nav__link">
<span class="md-ellipsis">
Returned path
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#request" class="md-nav__link">
<span class="md-ellipsis">
Request
</span>
</a>
<nav class="md-nav" aria-label="Request">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#get-stats" class="md-nav__link">
<span class="md-ellipsis">
Get stats
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-telemetry-data" class="md-nav__link">
<span class="md-ellipsis">
Get telemetry data
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-telemetry" class="md-nav__link">
<span class="md-ellipsis">
Get Telemetry
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-minmaxave-sensor-nodes" class="md-nav__link">
<span class="md-ellipsis">
Get Min/Max/Ave (Sensor nodes)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-access-list" class="md-nav__link">
<span class="md-ellipsis">
Get Access List
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-neighbors" class="md-nav__link">
<span class="md-ellipsis">
Get Neighbors
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#get-owner-info" class="md-nav__link">
<span class="md-ellipsis">
Get Owner Info
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#response" class="md-nav__link">
<span class="md-ellipsis">
Response
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#plain-text-message" class="md-nav__link">
<span class="md-ellipsis">
Plain text message
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#anonymous-request" class="md-nav__link">
<span class="md-ellipsis">
Anonymous request
</span>
</a>
<nav class="md-nav" aria-label="Anonymous request">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#room-server-login" class="md-nav__link">
<span class="md-ellipsis">
Room server login
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repeatersensor-login" class="md-nav__link">
<span class="md-ellipsis">
Repeater/Sensor login
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repeater-regions-request" class="md-nav__link">
<span class="md-ellipsis">
Repeater - Regions request
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repeater-owner-info-request" class="md-nav__link">
<span class="md-ellipsis">
Repeater - Owner info request
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#repeater-clock-and-status-request" class="md-nav__link">
<span class="md-ellipsis">
Repeater - Clock and status request
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#group-text-message" class="md-nav__link">
<span class="md-ellipsis">
Group text message
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#group-datagram" class="md-nav__link">
<span class="md-ellipsis">
Group datagram
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#control-data" class="md-nav__link">
<span class="md-ellipsis">
Control data
</span>
</a>
<nav class="md-nav" aria-label="Control data">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#discover_req-sub_type" class="md-nav__link">
<span class="md-ellipsis">
DISCOVER_REQ (sub_type)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#discover_resp-sub_type" class="md-nav__link">
<span class="md-ellipsis">
DISCOVER_RESP (sub_type)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#custom-packet" class="md-nav__link">
<span class="md-ellipsis">
Custom packet
</span>
</a>
</li>
</ul>
@@ -1512,7 +2132,7 @@
<ul>
<li>Node hash: the first byte of the node's public key</li>
</ul>
<h1 id="node-advertisement">Node advertisement</h1>
<h2 id="node-advertisement">Node advertisement</h2>
<p>This kind of payload notifies receivers that a node exists, and gives information about the node</p>
<table>
<thead>
@@ -1639,7 +2259,7 @@
</tr>
</tbody>
</table>
<h1 id="acknowledgement">Acknowledgement</h1>
<h2 id="acknowledgement">Acknowledgement</h2>
<p>An acknowledgement that a message was received. Note that for returned path messages, an acknowledgement can be sent in the "extra" payload (see <a href="#returned-path">Returned Path</a>) instead of as a separate acknowledgement packet. CLI commands do not cause acknowledgement responses, neither discrete nor extra.</p>
<table>
<thead>
@@ -1657,7 +2277,7 @@
</tr>
</tbody>
</table>
<h1 id="returned-path-request-response-and-plain-text-message">Returned path, request, response, and plain text message</h1>
<h2 id="returned-path-request-response-and-plain-text-message">Returned path, request, response, and plain text message</h2>
<p>Returned path, request, response, and plain text messages are all formatted in the same way. See the subsection for more details about the ciphertext's associated plaintext representation.</p>
<table>
<thead>
@@ -1690,7 +2310,7 @@
</tr>
</tbody>
</table>
<h2 id="returned-path">Returned path</h2>
<h3 id="returned-path">Returned path</h3>
<p>Returned path messages provide a description of the route a packet took from the original author. Receivers will send returned path messages to the author of the original message.</p>
<table>
<thead>
@@ -1723,7 +2343,7 @@
</tr>
</tbody>
</table>
<h2 id="request">Request</h2>
<h3 id="request">Request</h3>
<table>
<thead>
<tr>
@@ -1767,7 +2387,7 @@
</tr>
</tbody>
</table>
<h3 id="get-stats">Get stats</h3>
<h4 id="get-stats">Get stats</h4>
<p>Gets information about the node, possibly including the following:</p>
<ul>
<li>Battery level (millivolts)</li>
@@ -1789,19 +2409,19 @@
<li>Number posted (?)</li>
<li>Number of post pushes (?)</li>
</ul>
<h3 id="get-telemetry-data">Get telemetry data</h3>
<h4 id="get-telemetry-data">Get telemetry data</h4>
<p>Not defined in <code>BaseChatMesh</code>. Sensor- and application-specific request payloads may be implemented by higher-level firmware.</p>
<h3 id="get-telemetry">Get Telemetry</h3>
<h4 id="get-telemetry">Get Telemetry</h4>
<p>Not defined in <code>BaseChatMesh</code>.</p>
<h3 id="get-minmaxave-sensor-nodes">Get Min/Max/Ave (Sensor nodes)</h3>
<h4 id="get-minmaxave-sensor-nodes">Get Min/Max/Ave (Sensor nodes)</h4>
<p>Not defined in <code>BaseChatMesh</code>.</p>
<h3 id="get-access-list">Get Access List</h3>
<h4 id="get-access-list">Get Access List</h4>
<p>Not defined in <code>BaseChatMesh</code>.</p>
<h3 id="get-neighbors">Get Neighbors</h3>
<h4 id="get-neighbors">Get Neighbors</h4>
<p>Not defined in <code>BaseChatMesh</code>.</p>
<h3 id="get-owner-info">Get Owner Info</h3>
<h4 id="get-owner-info">Get Owner Info</h4>
<p>Not defined in <code>BaseChatMesh</code>.</p>
<h2 id="response">Response</h2>
<h3 id="response">Response</h3>
<table>
<thead>
<tr>
@@ -1819,7 +2439,7 @@
</tbody>
</table>
<p>Response contents are opaque application data. There is no single generic response envelope beyond the encrypted payload wrapper shown above.</p>
<h2 id="plain-text-message">Plain text message</h2>
<h3 id="plain-text-message">Plain text message</h3>
<table>
<thead>
<tr>
@@ -1873,7 +2493,7 @@
</tr>
</tbody>
</table>
<h1 id="anonymous-request">Anonymous request</h1>
<h2 id="anonymous-request">Anonymous request</h2>
<table>
<thead>
<tr>
@@ -1905,7 +2525,7 @@
</tr>
</tbody>
</table>
<h2 id="room-server-login">Room server login</h2>
<h3 id="room-server-login">Room server login</h3>
<table>
<thead>
<tr>
@@ -1932,7 +2552,7 @@
</tr>
</tbody>
</table>
<h2 id="repeatersensor-login">Repeater/Sensor login</h2>
<h3 id="repeatersensor-login">Repeater/Sensor login</h3>
<table>
<thead>
<tr>
@@ -1954,7 +2574,7 @@
</tr>
</tbody>
</table>
<h2 id="repeater-regions-request">Repeater - Regions request</h2>
<h3 id="repeater-regions-request">Repeater - Regions request</h3>
<table>
<thead>
<tr>
@@ -1986,7 +2606,7 @@
</tr>
</tbody>
</table>
<h2 id="repeater-owner-info-request">Repeater - Owner info request</h2>
<h3 id="repeater-owner-info-request">Repeater - Owner info request</h3>
<table>
<thead>
<tr>
@@ -2018,7 +2638,7 @@
</tr>
</tbody>
</table>
<h2 id="repeater-clock-and-status-request">Repeater - Clock and status request</h2>
<h3 id="repeater-clock-and-status-request">Repeater - Clock and status request</h3>
<table>
<thead>
<tr>
@@ -2050,7 +2670,7 @@
</tr>
</tbody>
</table>
<h1 id="group-text-message">Group text message</h1>
<h2 id="group-text-message">Group text message</h2>
<table>
<thead>
<tr>
@@ -2078,7 +2698,9 @@
</tbody>
</table>
<p>The plaintext contained in the ciphertext matches the format described in <a href="#plain-text-message">plain text message</a>. Specifically, it consists of a four byte timestamp, a flags byte, and the message. The flags byte will generally be <code>0x00</code> because it is a "plain text message". The message will be of the form <code>&lt;sender name&gt;: &lt;message body&gt;</code> (eg., <code>user123: I'm on my way</code>).</p>
<h1 id="group-datagram">Group datagram</h1>
<p>The sender name is unverified message text. Group messages contain no sender
signature, so any channel-key holder can choose any sender name.</p>
<h2 id="group-datagram">Group datagram</h2>
<table>
<thead>
<tr>
@@ -2132,7 +2754,7 @@
</tr>
</tbody>
</table>
<h1 id="control-data">Control data</h1>
<h2 id="control-data">Control data</h2>
<table>
<thead>
<tr>
@@ -2154,7 +2776,7 @@
</tr>
</tbody>
</table>
<h2 id="discover_req-sub_type">DISCOVER_REQ (sub_type)</h2>
<h3 id="discover_req-sub_type">DISCOVER_REQ (sub_type)</h3>
<table>
<thead>
<tr>
@@ -2186,7 +2808,7 @@
</tr>
</tbody>
</table>
<h2 id="discover_resp-sub_type">DISCOVER_RESP (sub_type)</h2>
<h3 id="discover_resp-sub_type">DISCOVER_RESP (sub_type)</h3>
<table>
<thead>
<tr>
@@ -2218,7 +2840,7 @@
</tr>
</tbody>
</table>
<h1 id="custom-packet">Custom packet</h1>
<h2 id="custom-packet">Custom packet</h2>
<p>Custom packets have no defined format.</p>