mirror of
https://github.com/markqvist/Reticulum.git
synced 2026-07-13 20:18:10 -07:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 05288d7c97 | |||
| b403441074 | |||
| d3a23e3b00 | |||
| 329d83587e | |||
| 0a4dd64434 | |||
| b96cbf1014 | |||
| 485558cd6b | |||
| 8d93867a22 |
@@ -76,6 +76,9 @@ class RNodeInterface(Interface):
|
|||||||
|
|
||||||
CALLSIGN_MAX_LEN = 32
|
CALLSIGN_MAX_LEN = 32
|
||||||
|
|
||||||
|
REQUIRED_FW_VER_MAJ = 1
|
||||||
|
REQUIRED_FW_VER_MIN = 26
|
||||||
|
|
||||||
def __init__(self, owner, name, port, frequency = None, bandwidth = None, txpower = None, sf = None, cr = None, flow_control = False, id_interval = None, id_callsign = None):
|
def __init__(self, owner, name, port, frequency = None, bandwidth = None, txpower = None, sf = None, cr = None, flow_control = False, id_interval = None, id_callsign = None):
|
||||||
import importlib
|
import importlib
|
||||||
if importlib.util.find_spec('serial') != None:
|
if importlib.util.find_spec('serial') != None:
|
||||||
@@ -110,6 +113,9 @@ class RNodeInterface(Interface):
|
|||||||
self.platform = None
|
self.platform = None
|
||||||
self.mcu = None
|
self.mcu = None
|
||||||
self.detected = False
|
self.detected = False
|
||||||
|
self.firmware_ok = False
|
||||||
|
self.maj_version = 0
|
||||||
|
self.min_version = 0
|
||||||
|
|
||||||
self.last_id = 0
|
self.last_id = 0
|
||||||
self.first_tx = None
|
self.first_tx = None
|
||||||
@@ -223,7 +229,7 @@ class RNodeInterface(Interface):
|
|||||||
RNS.log("Make sure that your hardware actually supports the parameters specified in the configuration", RNS.LOG_ERROR)
|
RNS.log("Make sure that your hardware actually supports the parameters specified in the configuration", RNS.LOG_ERROR)
|
||||||
RNS.log("Aborting RNode startup", RNS.LOG_ERROR)
|
RNS.log("Aborting RNode startup", RNS.LOG_ERROR)
|
||||||
self.serial.close()
|
self.serial.close()
|
||||||
raise IOError("RNode interface did not pass validation")
|
raise IOError("RNode interface did not pass configuration validation")
|
||||||
|
|
||||||
|
|
||||||
def initRadio(self):
|
def initRadio(self):
|
||||||
@@ -245,7 +251,7 @@ class RNodeInterface(Interface):
|
|||||||
written = self.serial.write(kiss_command)
|
written = self.serial.write(kiss_command)
|
||||||
if written != len(kiss_command):
|
if written != len(kiss_command):
|
||||||
raise IOError("An IO error occurred while restarting device")
|
raise IOError("An IO error occurred while restarting device")
|
||||||
sleep(2);
|
sleep(2.25);
|
||||||
|
|
||||||
def setFrequency(self):
|
def setFrequency(self):
|
||||||
c1 = self.frequency >> 24
|
c1 = self.frequency >> 24
|
||||||
@@ -293,13 +299,28 @@ class RNodeInterface(Interface):
|
|||||||
raise IOError("An IO error occurred while configuring coding rate for "+self(str))
|
raise IOError("An IO error occurred while configuring coding rate for "+self(str))
|
||||||
|
|
||||||
def setRadioState(self, state):
|
def setRadioState(self, state):
|
||||||
|
self.state = state
|
||||||
kiss_command = bytes([KISS.FEND])+bytes([KISS.CMD_RADIO_STATE])+bytes([state])+bytes([KISS.FEND])
|
kiss_command = bytes([KISS.FEND])+bytes([KISS.CMD_RADIO_STATE])+bytes([state])+bytes([KISS.FEND])
|
||||||
written = self.serial.write(kiss_command)
|
written = self.serial.write(kiss_command)
|
||||||
if written != len(kiss_command):
|
if written != len(kiss_command):
|
||||||
raise IOError("An IO error occurred while configuring radio state for "+self(str))
|
raise IOError("An IO error occurred while configuring radio state for "+self(str))
|
||||||
|
|
||||||
|
def validate_firmware(self):
|
||||||
|
if (self.maj_version >= RNodeInterface.REQUIRED_FW_VER_MAJ):
|
||||||
|
if (self.min_version >= RNodeInterface.REQUIRED_FW_VER_MIN):
|
||||||
|
self.firmware_ok = True
|
||||||
|
|
||||||
|
if self.firmware_ok:
|
||||||
|
return
|
||||||
|
|
||||||
|
RNS.log("The firmware version of the connected RNode is "+str(self.maj_version)+"."+str(self.min_version), RNS.LOG_ERROR)
|
||||||
|
RNS.log("This version of Reticulum requires at least version "+str(RNodeInterface.REQUIRED_FW_VER_MAJ)+"."+str(RNodeInterface.REQUIRED_FW_VER_MIN), RNS.LOG_ERROR)
|
||||||
|
RNS.log("Please update your RNode firmware with rnodeconf (https://github.com/markqvist/rnodeconfigutil/)")
|
||||||
|
RNS.panic()
|
||||||
|
|
||||||
|
|
||||||
def validateRadioState(self):
|
def validateRadioState(self):
|
||||||
RNS.log("Validating radio configuration for "+str(self)+"...", RNS.LOG_VERBOSE)
|
RNS.log("Wating for radio configuration validation for "+str(self)+"...", RNS.LOG_VERBOSE)
|
||||||
sleep(0.25);
|
sleep(0.25);
|
||||||
if (self.frequency != self.r_frequency):
|
if (self.frequency != self.r_frequency):
|
||||||
RNS.log("Frequency mismatch", RNS.LOG_ERROR)
|
RNS.log("Frequency mismatch", RNS.LOG_ERROR)
|
||||||
@@ -313,6 +334,9 @@ class RNodeInterface(Interface):
|
|||||||
if (self.sf != self.r_sf):
|
if (self.sf != self.r_sf):
|
||||||
RNS.log("Spreading factor mismatch", RNS.LOG_ERROR)
|
RNS.log("Spreading factor mismatch", RNS.LOG_ERROR)
|
||||||
self.validcfg = False
|
self.validcfg = False
|
||||||
|
if (self.state != self.r_state):
|
||||||
|
RNS.log("Radio state mismatch", RNS.LOG_ERROR)
|
||||||
|
self.validcfg = False
|
||||||
|
|
||||||
if (self.validcfg):
|
if (self.validcfg):
|
||||||
return True
|
return True
|
||||||
@@ -453,13 +477,30 @@ class RNodeInterface(Interface):
|
|||||||
self.updateBitrate()
|
self.updateBitrate()
|
||||||
elif (command == KISS.CMD_RADIO_STATE):
|
elif (command == KISS.CMD_RADIO_STATE):
|
||||||
self.r_state = byte
|
self.r_state = byte
|
||||||
# if self.r_state:
|
if self.r_state:
|
||||||
# RNS.log(str(self)+" Radio reporting state is online ("+RNS.hexrep([self.r_state])+")", RNS.LOG_DEBUG)
|
pass
|
||||||
# else:
|
#RNS.log(str(self)+" Radio reporting state is online", RNS.LOG_DEBUG)
|
||||||
# RNS.log(str(self)+" Radio reporting state is offline ("+RNS.hexrep([self.r_state])+")", RNS.LOG_DEBUG)
|
else:
|
||||||
|
RNS.log(str(self)+" Radio reporting state is offline", RNS.LOG_DEBUG)
|
||||||
|
|
||||||
elif (command == KISS.CMD_RADIO_LOCK):
|
elif (command == KISS.CMD_RADIO_LOCK):
|
||||||
self.r_lock = byte
|
self.r_lock = byte
|
||||||
|
elif (command == KISS.CMD_FW_VERSION):
|
||||||
|
if (byte == KISS.FESC):
|
||||||
|
escape = True
|
||||||
|
else:
|
||||||
|
if (escape):
|
||||||
|
if (byte == KISS.TFEND):
|
||||||
|
byte = KISS.FEND
|
||||||
|
if (byte == KISS.TFESC):
|
||||||
|
byte = KISS.FESC
|
||||||
|
escape = False
|
||||||
|
command_buffer = command_buffer+bytes([byte])
|
||||||
|
if (len(command_buffer) == 2):
|
||||||
|
self.maj_version = int(command_buffer[0])
|
||||||
|
self.min_version = int(command_buffer[1])
|
||||||
|
self.validate_firmware()
|
||||||
|
|
||||||
elif (command == KISS.CMD_STAT_RX):
|
elif (command == KISS.CMD_STAT_RX):
|
||||||
if (byte == KISS.FESC):
|
if (byte == KISS.FESC):
|
||||||
escape = True
|
escape = True
|
||||||
@@ -501,10 +542,13 @@ class RNodeInterface(Interface):
|
|||||||
elif (command == KISS.CMD_ERROR):
|
elif (command == KISS.CMD_ERROR):
|
||||||
if (byte == KISS.ERROR_INITRADIO):
|
if (byte == KISS.ERROR_INITRADIO):
|
||||||
RNS.log(str(self)+" hardware initialisation error (code "+RNS.hexrep(byte)+")", RNS.LOG_ERROR)
|
RNS.log(str(self)+" hardware initialisation error (code "+RNS.hexrep(byte)+")", RNS.LOG_ERROR)
|
||||||
|
raise IOError("Radio initialisation failure")
|
||||||
elif (byte == KISS.ERROR_INITRADIO):
|
elif (byte == KISS.ERROR_INITRADIO):
|
||||||
RNS.log(str(self)+" hardware TX error (code "+RNS.hexrep(byte)+")", RNS.LOG_ERROR)
|
RNS.log(str(self)+" hardware TX error (code "+RNS.hexrep(byte)+")", RNS.LOG_ERROR)
|
||||||
|
raise IOError("Hardware transmit failure")
|
||||||
else:
|
else:
|
||||||
RNS.log(str(self)+" hardware error (code "+RNS.hexrep(byte)+")", RNS.LOG_ERROR)
|
RNS.log(str(self)+" hardware error (code "+RNS.hexrep(byte)+")", RNS.LOG_ERROR)
|
||||||
|
raise IOError("Unknown hardware failure")
|
||||||
elif (command == KISS.CMD_RESET):
|
elif (command == KISS.CMD_RESET):
|
||||||
if (byte == 0xF8):
|
if (byte == 0xF8):
|
||||||
if self.platform == KISS.PLATFORM_ESP32:
|
if self.platform == KISS.PLATFORM_ESP32:
|
||||||
@@ -564,5 +608,5 @@ class RNodeInterface(Interface):
|
|||||||
RNS.log("Reconnected serial port for "+str(self))
|
RNS.log("Reconnected serial port for "+str(self))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "RNodeInterface["+self.name+"]"
|
return "RNodeInterface["+str(self.name)+"]"
|
||||||
|
|
||||||
|
|||||||
@@ -112,8 +112,8 @@ class TCPClientInterface(Interface):
|
|||||||
else:
|
else:
|
||||||
TCP_KEEPIDLE = 0x10
|
TCP_KEEPIDLE = 0x10
|
||||||
|
|
||||||
sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
|
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
|
||||||
sock.setsockopt(socket.IPPROTO_TCP, TCP_KEEPIDLE, int(TCPClientInterface.TCP_PROBE_AFTER))
|
self.socket.setsockopt(socket.IPPROTO_TCP, TCP_KEEPIDLE, int(TCPClientInterface.TCP_PROBE_AFTER))
|
||||||
|
|
||||||
def detach(self):
|
def detach(self):
|
||||||
if self.socket != None:
|
if self.socket != None:
|
||||||
|
|||||||
@@ -541,8 +541,6 @@ class Reticulum:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
RNS.log("The interface \""+name+"\" could not be created. Check your configuration file for errors!", RNS.LOG_ERROR)
|
RNS.log("The interface \""+name+"\" could not be created. Check your configuration file for errors!", RNS.LOG_ERROR)
|
||||||
RNS.log("The contained exception was: "+str(e), RNS.LOG_ERROR)
|
RNS.log("The contained exception was: "+str(e), RNS.LOG_ERROR)
|
||||||
# TODO: Remove
|
|
||||||
raise e
|
|
||||||
RNS.panic()
|
RNS.panic()
|
||||||
else:
|
else:
|
||||||
RNS.log("The interface name \""+name+"\" was already used. Check your configuration file for errors!", RNS.LOG_ERROR)
|
RNS.log("The interface name \""+name+"\" was already used. Check your configuration file for errors!", RNS.LOG_ERROR)
|
||||||
|
|||||||
@@ -109,6 +109,11 @@ def rand():
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def hexrep(data, delimit=True):
|
def hexrep(data, delimit=True):
|
||||||
|
try:
|
||||||
|
iter(data)
|
||||||
|
except TypeError:
|
||||||
|
data = [data]
|
||||||
|
|
||||||
delimiter = ":"
|
delimiter = ":"
|
||||||
if not delimit:
|
if not delimit:
|
||||||
delimiter = ""
|
delimiter = ""
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
__version__ = "0.3.1"
|
__version__ = "0.3.2"
|
||||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
# Sphinx build info version 1
|
# Sphinx build info version 1
|
||||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||||
config: 373c2d4526d24456ccd5dac65661415a
|
config: e7106bc1351404c40787ba74340593af
|
||||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||||
VERSION: '0.3.0 beta',
|
VERSION: '0.3.2 beta',
|
||||||
LANGUAGE: 'None',
|
LANGUAGE: 'None',
|
||||||
COLLAPSE_INDEX: false,
|
COLLAPSE_INDEX: false,
|
||||||
BUILDER: 'html',
|
BUILDER: 'html',
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Code Examples — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>Code Examples — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="reference.html" title="API Reference"
|
<a href="reference.html" title="API Reference"
|
||||||
accesskey="P">previous</a> |</li>
|
accesskey="P">previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Code Examples</a></li>
|
<li class="nav-item nav-item-this"><a href="">Code Examples</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -2366,7 +2366,7 @@ interface to efficiently pass files of any size over a Reticulum <a class="refer
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="reference.html" title="API Reference"
|
<a href="reference.html" title="API Reference"
|
||||||
>previous</a> |</li>
|
>previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Code Examples</a></li>
|
<li class="nav-item nav-item-this"><a href="">Code Examples</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Index — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>Index — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
<li class="right" style="margin-right: 10px">
|
<li class="right" style="margin-right: 10px">
|
||||||
<a href="#" title="General Index"
|
<a href="#" title="General Index"
|
||||||
accesskey="I">index</a></li>
|
accesskey="I">index</a></li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Index</a></li>
|
<li class="nav-item nav-item-this"><a href="">Index</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -416,7 +416,7 @@
|
|||||||
<li class="right" style="margin-right: 10px">
|
<li class="right" style="margin-right: 10px">
|
||||||
<a href="#" title="General Index"
|
<a href="#" title="General Index"
|
||||||
>index</a></li>
|
>index</a></li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Index</a></li>
|
<li class="nav-item nav-item-this"><a href="">Index</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Getting Started Fast — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>Getting Started Fast — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="whatis.html" title="What is Reticulum?"
|
<a href="whatis.html" title="What is Reticulum?"
|
||||||
accesskey="P">previous</a> |</li>
|
accesskey="P">previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Getting Started Fast</a></li>
|
<li class="nav-item nav-item-this"><a href="">Getting Started Fast</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -264,7 +264,7 @@ here at a later point.</p>
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="whatis.html" title="What is Reticulum?"
|
<a href="whatis.html" title="What is Reticulum?"
|
||||||
>previous</a> |</li>
|
>previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Getting Started Fast</a></li>
|
<li class="nav-item nav-item-this"><a href="">Getting Started Fast</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Reticulum Network Stack Manual — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>Reticulum Network Stack Manual — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="whatis.html" title="What is Reticulum?"
|
<a href="whatis.html" title="What is Reticulum?"
|
||||||
accesskey="N">next</a> |</li>
|
accesskey="N">next</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="#">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="#">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Reticulum Network Stack Manual</a></li>
|
<li class="nav-item nav-item-this"><a href="">Reticulum Network Stack Manual</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -208,7 +208,7 @@ to participate in the development of Reticulum itself.</p>
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="whatis.html" title="What is Reticulum?"
|
<a href="whatis.html" title="What is Reticulum?"
|
||||||
>next</a> |</li>
|
>next</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="#">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="#">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Reticulum Network Stack Manual</a></li>
|
<li class="nav-item nav-item-this"><a href="">Reticulum Network Stack Manual</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Supported Interfaces — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>Supported Interfaces — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="networks.html" title="Building Networks"
|
<a href="networks.html" title="Building Networks"
|
||||||
accesskey="P">previous</a> |</li>
|
accesskey="P">previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Supported Interfaces</a></li>
|
<li class="nav-item nav-item-this"><a href="">Supported Interfaces</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -496,7 +496,7 @@ beaconing functionality described above.</p>
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="networks.html" title="Building Networks"
|
<a href="networks.html" title="Building Networks"
|
||||||
>previous</a> |</li>
|
>previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Supported Interfaces</a></li>
|
<li class="nav-item nav-item-this"><a href="">Supported Interfaces</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Building Networks — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>Building Networks — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="using.html" title="Using Reticulum on Your System"
|
<a href="using.html" title="Using Reticulum on Your System"
|
||||||
accesskey="P">previous</a> |</li>
|
accesskey="P">previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Building Networks</a></li>
|
<li class="nav-item nav-item-this"><a href="">Building Networks</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -247,7 +247,7 @@ connected outliers are now an integral part of the network.</p>
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="using.html" title="Using Reticulum on Your System"
|
<a href="using.html" title="Using Reticulum on Your System"
|
||||||
>previous</a> |</li>
|
>previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Building Networks</a></li>
|
<li class="nav-item nav-item-this"><a href="">Building Networks</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>API Reference — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>API Reference — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="understanding.html" title="Understanding Reticulum"
|
<a href="understanding.html" title="Understanding Reticulum"
|
||||||
accesskey="P">previous</a> |</li>
|
accesskey="P">previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">API Reference</a></li>
|
<li class="nav-item nav-item-this"><a href="">API Reference</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -1238,7 +1238,7 @@ will announce it.</p>
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="understanding.html" title="Understanding Reticulum"
|
<a href="understanding.html" title="Understanding Reticulum"
|
||||||
>previous</a> |</li>
|
>previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">API Reference</a></li>
|
<li class="nav-item nav-item-this"><a href="">API Reference</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Search — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>Search — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
<li class="right" style="margin-right: 10px">
|
<li class="right" style="margin-right: 10px">
|
||||||
<a href="genindex.html" title="General Index"
|
<a href="genindex.html" title="General Index"
|
||||||
accesskey="I">index</a></li>
|
accesskey="I">index</a></li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Search</a></li>
|
<li class="nav-item nav-item-this"><a href="">Search</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
<li class="right" style="margin-right: 10px">
|
<li class="right" style="margin-right: 10px">
|
||||||
<a href="genindex.html" title="General Index"
|
<a href="genindex.html" title="General Index"
|
||||||
>index</a></li>
|
>index</a></li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Search</a></li>
|
<li class="nav-item nav-item-this"><a href="">Search</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Understanding Reticulum — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>Understanding Reticulum — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="interfaces.html" title="Supported Interfaces"
|
<a href="interfaces.html" title="Supported Interfaces"
|
||||||
accesskey="P">previous</a> |</li>
|
accesskey="P">previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Understanding Reticulum</a></li>
|
<li class="nav-item nav-item-this"><a href="">Understanding Reticulum</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -856,7 +856,7 @@ proof 11
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="interfaces.html" title="Supported Interfaces"
|
<a href="interfaces.html" title="Supported Interfaces"
|
||||||
>previous</a> |</li>
|
>previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Understanding Reticulum</a></li>
|
<li class="nav-item nav-item-this"><a href="">Understanding Reticulum</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Using Reticulum on Your System — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>Using Reticulum on Your System — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="gettingstartedfast.html" title="Getting Started Fast"
|
<a href="gettingstartedfast.html" title="Getting Started Fast"
|
||||||
accesskey="P">previous</a> |</li>
|
accesskey="P">previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Using Reticulum on Your System</a></li>
|
<li class="nav-item nav-item-this"><a href="">Using Reticulum on Your System</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -330,7 +330,7 @@ WantedBy=multi-user.target
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="gettingstartedfast.html" title="Getting Started Fast"
|
<a href="gettingstartedfast.html" title="Getting Started Fast"
|
||||||
>previous</a> |</li>
|
>previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">Using Reticulum on Your System</a></li>
|
<li class="nav-item nav-item-this"><a href="">Using Reticulum on Your System</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>What is Reticulum? — Reticulum Network Stack 0.3.0 beta documentation</title>
|
<title>What is Reticulum? — Reticulum Network Stack 0.3.2 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
<link rel="stylesheet" type="text/css" href="_static/classic.css" />
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="index.html" title="Reticulum Network Stack Manual"
|
<a href="index.html" title="Reticulum Network Stack Manual"
|
||||||
accesskey="P">previous</a> |</li>
|
accesskey="P">previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">What is Reticulum?</a></li>
|
<li class="nav-item nav-item-this"><a href="">What is Reticulum?</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -184,7 +184,7 @@ network, and vice versa.</p>
|
|||||||
<li class="right" >
|
<li class="right" >
|
||||||
<a href="index.html" title="Reticulum Network Stack Manual"
|
<a href="index.html" title="Reticulum Network Stack Manual"
|
||||||
>previous</a> |</li>
|
>previous</a> |</li>
|
||||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.0 beta documentation</a> »</li>
|
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.3.2 beta documentation</a> »</li>
|
||||||
<li class="nav-item nav-item-this"><a href="">What is Reticulum?</a></li>
|
<li class="nav-item nav-item-this"><a href="">What is Reticulum?</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ copyright = '2021, Mark Qvist'
|
|||||||
author = 'Mark Qvist'
|
author = 'Mark Qvist'
|
||||||
|
|
||||||
# The full version, including alpha/beta/rc tags
|
# The full version, including alpha/beta/rc tags
|
||||||
release = '0.3.0 beta'
|
release = '0.3.2 beta'
|
||||||
|
|
||||||
|
|
||||||
# -- General configuration ---------------------------------------------------
|
# -- General configuration ---------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user