mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-22 13:40:19 +00:00
Compare commits
5 Commits
866262027a
...
959487cf8b
Author | SHA1 | Date | |
---|---|---|---|
|
959487cf8b | ||
|
b977f33df6 | ||
|
589fcb8201 | ||
|
e5427d70ac | ||
|
11baace08d |
@ -43,6 +43,9 @@ class AutoInterface(Interface):
|
||||
SCOPE_ORGANISATION = "8"
|
||||
SCOPE_GLOBAL = "e"
|
||||
|
||||
MULTICAST_PERMANENT_ADDRESS_TYPE = "0"
|
||||
MULTICAST_TEMPORARY_ADDRESS_TYPE = "1"
|
||||
|
||||
PEERING_TIMEOUT = 7.5
|
||||
|
||||
ALL_IGNORE_IFS = ["lo0"]
|
||||
@ -74,7 +77,7 @@ class AutoInterface(Interface):
|
||||
ifas = self.netinfo.ifaddresses(ifname)
|
||||
return ifas
|
||||
|
||||
def __init__(self, owner, name, group_id=None, discovery_scope=None, discovery_port=None, data_port=None, allowed_interfaces=None, ignored_interfaces=None, configured_bitrate=None):
|
||||
def __init__(self, owner, name, group_id=None, discovery_scope=None, discovery_port=None, multicast_address_type=None, data_port=None, allowed_interfaces=None, ignored_interfaces=None, configured_bitrate=None):
|
||||
from RNS.vendor.ifaddr import niwrapper
|
||||
super().__init__()
|
||||
self.netinfo = niwrapper
|
||||
@ -128,6 +131,13 @@ class AutoInterface(Interface):
|
||||
else:
|
||||
self.discovery_port = discovery_port
|
||||
|
||||
if multicast_address_type == None:
|
||||
self.multicast_address_type = AutoInterface.MULTICAST_TEMPORARY_ADDRESS_TYPE
|
||||
elif str(multicast_address_type).lower() == "temporary":
|
||||
self.multicast_address_type = AutoInterface.MULTICAST_TEMPORARY_ADDRESS_TYPE
|
||||
elif str(multicast_address_type).lower() == "permanent":
|
||||
self.multicast_address_type = AutoInterface.MULTICAST_PERMANENT_ADDRESS_TYPE
|
||||
|
||||
if data_port == None:
|
||||
self.data_port = AutoInterface.DEFAULT_DATA_PORT
|
||||
else:
|
||||
@ -156,7 +166,7 @@ class AutoInterface(Interface):
|
||||
gt += ":"+"{:02x}".format(g[9]+(g[8]<<8))
|
||||
gt += ":"+"{:02x}".format(g[11]+(g[10]<<8))
|
||||
gt += ":"+"{:02x}".format(g[13]+(g[12]<<8))
|
||||
self.mcast_discovery_address = "ff1"+self.discovery_scope+":"+gt
|
||||
self.mcast_discovery_address = "ff"+self.multicast_address_type+self.discovery_scope+":"+gt
|
||||
|
||||
suitable_interfaces = 0
|
||||
for ifname in self.list_interfaces():
|
||||
|
@ -540,6 +540,7 @@ class Reticulum:
|
||||
group_id = c["group_id"] if "group_id" in c else None
|
||||
discovery_scope = c["discovery_scope"] if "discovery_scope" in c else None
|
||||
discovery_port = int(c["discovery_port"]) if "discovery_port" in c else None
|
||||
multicast_address_type = c["multicast_address_type"] if "multicast_address_type" in c else None
|
||||
data_port = int(c["data_port"]) if "data_port" in c else None
|
||||
allowed_interfaces = c.as_list("devices") if "devices" in c else None
|
||||
ignored_interfaces = c.as_list("ignored_devices") if "ignored_devices" in c else None
|
||||
@ -550,6 +551,7 @@ class Reticulum:
|
||||
group_id,
|
||||
discovery_scope,
|
||||
discovery_port,
|
||||
multicast_address_type,
|
||||
data_port,
|
||||
allowed_interfaces,
|
||||
ignored_interfaces
|
||||
|
@ -774,18 +774,13 @@ class RNode():
|
||||
self.made = bytes([self.eeprom[ROM.ADDR_MADE], self.eeprom[ROM.ADDR_MADE+1], self.eeprom[ROM.ADDR_MADE+2], self.eeprom[ROM.ADDR_MADE+3]])
|
||||
self.checksum = b""
|
||||
|
||||
|
||||
self.min_freq = models[self.model][0]
|
||||
self.max_freq = models[self.model][1]
|
||||
self.max_output = models[self.model][2]
|
||||
|
||||
try:
|
||||
self.min_freq = models[self.model][0]
|
||||
self.max_freq = models[self.model][1]
|
||||
self.max_output = models[self.model][2]
|
||||
except Exception as e:
|
||||
RNS.log("Exception")
|
||||
RNS.log(str(e))
|
||||
RNS.log("Error: Model band and output power capabilities are unknown!")
|
||||
RNS.log("The contained exception was: "+str(e))
|
||||
self.min_freq = 0
|
||||
self.max_freq = 0
|
||||
self.max_output = 0
|
||||
@ -3041,10 +3036,13 @@ def main():
|
||||
if args.product != None:
|
||||
if args.product == "03":
|
||||
mapped_product = ROM.PRODUCT_RNODE
|
||||
if args.product == "f0":
|
||||
elif args.product == "f0":
|
||||
mapped_product = ROM.PRODUCT_HMBRW
|
||||
if args.product == "e0":
|
||||
elif args.product == "e0":
|
||||
mapped_product = ROM.PRODUCT_TBEAM
|
||||
else:
|
||||
if len(args.product) == 2:
|
||||
mapped_product = ord(bytes.fromhex(args.product))
|
||||
|
||||
if mapped_model != None:
|
||||
if mapped_model == ROM.MODEL_B4_TCXO:
|
||||
@ -3068,6 +3066,9 @@ def main():
|
||||
model = ROM.MODEL_E9
|
||||
elif args.model == "ff":
|
||||
model = ROM.MODEL_FF
|
||||
else:
|
||||
if len(args.model) == 2:
|
||||
model = ord(bytes.fromhex(args.model))
|
||||
|
||||
|
||||
if args.hwrev != None and (args.hwrev > 0 and args.hwrev < 256):
|
||||
|
@ -47,6 +47,12 @@ system, which should be enabled by default in almost all OSes.
|
||||
|
||||
group_id = reticulum
|
||||
|
||||
# You can also choose the multicast address type:
|
||||
# temporary (default, Temporary Multicast Address)
|
||||
# or permanent (Permanent Multicast Address)
|
||||
|
||||
multicast_address_type = permanent
|
||||
|
||||
# You can also select specifically which
|
||||
# kernel networking devices to use.
|
||||
|
||||
|
@ -47,6 +47,12 @@ system, which should be enabled by default in almost all OSes.
|
||||
|
||||
group_id = reticulum
|
||||
|
||||
# You can also choose the multicast address type:
|
||||
# temporary (default, Temporary Multicast Address)
|
||||
# or permanent (Permanent Multicast Address)
|
||||
|
||||
multicast_address_type = permanent
|
||||
|
||||
# You can also select specifically which
|
||||
# kernel networking devices to use.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user