mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-22 13:40:19 +00:00
Compare commits
9 Commits
1b55ac7f24
...
5b6d0ec337
Author | SHA1 | Date | |
---|---|---|---|
|
5b6d0ec337 | ||
|
2bbb0f5ec2 | ||
|
e385c79abd | ||
|
86faf6c28d | ||
|
6d8a3f09e5 | ||
|
1e88a390f4 | ||
|
e9ae255f84 | ||
|
42dfee8557 | ||
|
177e724457 |
@ -62,7 +62,7 @@ For more info, see [reticulum.network](https://reticulum.network/)
|
||||
- Total bandwidth cost of setting up an encrypted link is 3 packets totaling 297 bytes
|
||||
- Low cost of keeping links open at only 0.44 bits per second
|
||||
|
||||
## Development Roadmap
|
||||
## Roadmap
|
||||
While Reticulum is already a fully featured and functional networking stack, many improvements and additions are actively being worked on, and planned for the future.
|
||||
|
||||
To learn more about the direction and future of Reticulum, please see the [Development Roadmap](./Roadmap.md).
|
||||
|
@ -78,6 +78,7 @@ class KISS():
|
||||
CMD_BLINK = 0x30
|
||||
CMD_RANDOM = 0x40
|
||||
CMD_BT_CTRL = 0x46
|
||||
CMD_BT_PIN = 0x62
|
||||
CMD_BOARD = 0x47
|
||||
CMD_PLATFORM = 0x48
|
||||
CMD_MCU = 0x49
|
||||
@ -386,6 +387,21 @@ class RNode():
|
||||
RNS.log("Radio reporting bandwidth is "+str(self.r_bandwidth/1000.0)+" KHz")
|
||||
self.updateBitrate()
|
||||
|
||||
elif (command == KISS.CMD_BT_PIN):
|
||||
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) == 4):
|
||||
self.r_bt_pin = command_buffer[0] << 24 | command_buffer[1] << 16 | command_buffer[2] << 8 | command_buffer[3]
|
||||
RNS.log("Bluetooth pairing PIN is: {:06d}".format(self.r_bt_pin))
|
||||
|
||||
elif (command == KISS.CMD_DEV_HASH):
|
||||
if (byte == KISS.FESC):
|
||||
escape = True
|
||||
@ -865,6 +881,7 @@ class RNode():
|
||||
selected_version = None
|
||||
selected_hash = None
|
||||
firmware_version_url = "https://unsigned.io/firmware/latest/?v="+program_version+"&variant="
|
||||
fallback_firmware_version_url = "https://github.com/markqvist/rnode_firmware/releases/latest/download/release.json"
|
||||
def ensure_firmware_file(fw_filename):
|
||||
global selected_version, selected_hash, upd_nocheck
|
||||
if fw_filename == "extracted_rnode_firmware.zip":
|
||||
@ -902,8 +919,31 @@ def ensure_firmware_file(fw_filename):
|
||||
try:
|
||||
if selected_version == None:
|
||||
if not upd_nocheck:
|
||||
try:
|
||||
try:
|
||||
urlretrieve(firmware_version_url+fw_filename, UPD_DIR+"/"+fw_filename+".version.latest")
|
||||
except Exception as e:
|
||||
RNS.log("")
|
||||
RNS.log("WARNING!")
|
||||
RNS.log("Failed to retrieve latest version information for your board from the default server")
|
||||
RNS.log("Will retry using the following fallback URL: "+fallback_firmware_version_url)
|
||||
RNS.log("")
|
||||
RNS.log("Hit enter if you want to proceed")
|
||||
input()
|
||||
try:
|
||||
urlretrieve(fallback_firmware_version_url, UPD_DIR+"/fallback_release_info.json")
|
||||
import json
|
||||
with open(UPD_DIR+"/fallback_release_info.json", "rb") as rif:
|
||||
rdat = json.loads(rif.read())
|
||||
variant = rdat[fw_filename]
|
||||
with open(UPD_DIR+"/"+fw_filename+".version.latest", "wb") as verf:
|
||||
inf_str = str(variant["version"])+" "+str(variant["hash"])
|
||||
verf.write(inf_str.encode("utf-8"))
|
||||
|
||||
except Exception as e:
|
||||
RNS.log("Error while trying fallback URL: "+str(e))
|
||||
raise e
|
||||
|
||||
except Exception as e:
|
||||
RNS.log("Failed to retrive latest version information for your board.")
|
||||
RNS.log("Check your internet connection and try again.")
|
||||
@ -2481,8 +2521,9 @@ def main():
|
||||
rnode.leave()
|
||||
|
||||
if args.bluetooth_pair:
|
||||
RNS.log("Putting device into Bluetooth pairing mode...")
|
||||
RNS.log("Putting device into Bluetooth pairing mode. Press enter to exit when done.")
|
||||
rnode.bluetooth_pair()
|
||||
input()
|
||||
rnode.leave()
|
||||
|
||||
if args.info:
|
||||
|
@ -18,13 +18,11 @@ For each release cycle of Reticulum, improvements and additions from the five [P
|
||||
- [x] Improve storage persist call on local client connect/disconnect
|
||||
- [x] Better path invalidation on roaming interfaces
|
||||
- [x] Improved roaming support on Android
|
||||
- [x] Add bluetooth pairing code output to rnodeconf
|
||||
- [x] Add `rnid` utility with encryption, signing and Identity funcionality
|
||||
- [ ] Updating the documentation to reflect recent changes and improvements
|
||||
- [ ] Add bluetooth pairing code output to rnodeconf
|
||||
- [ ] Transit traffic display in rnstatus
|
||||
- [ ] JSON output mode for rnstatus
|
||||
- [x] Add `rnid` utility
|
||||
- [x] Add `rnsign` utility
|
||||
- [x] Add `rncrypt` utility
|
||||
- [ ] Create a standalone RNS Daemon app for Android
|
||||
- Targets for related applications
|
||||
- [x] Add offline & paper message transport to LXMF
|
||||
@ -127,7 +125,7 @@ The Reticulum ecosystem is enriched by several other software and hardware proje
|
||||
This section lists, in no particular order, various important efforts that would be beneficial to the goals of Reticulum.
|
||||
|
||||
- The [RNode](https://unsigned.io/rnode/) project
|
||||
- [ ] Evolve RNode into a self-replicating system, so that anyone can use an existing RNode to create more RNodes, and bootstrap functional networks based on Reticulum, even in absence of the Internet.
|
||||
- [x] Evolve RNode into a self-replicating system, so that anyone can use an existing RNode to create more RNodes, and bootstrap functional networks based on Reticulum, even in absence of the Internet.
|
||||
- [ ] Create a WebUSB-based bootstrapping utility, and integrate this directly into the [RNode Bootstrap Console](#), both on-device, and on an Internet-reachable copy. This will make it much easier to create new RNodes for average users.
|
||||
|
||||
## Release History
|
||||
|
Binary file not shown.
File diff suppressed because one or more lines are too long
1
setup.py
1
setup.py
@ -43,6 +43,7 @@ setuptools.setup(
|
||||
'rnstatus=RNS.Utilities.rnstatus:main',
|
||||
'rnprobe=RNS.Utilities.rnprobe:main',
|
||||
'rnpath=RNS.Utilities.rnpath:main',
|
||||
'rnid=RNS.Utilities.rnid:main',
|
||||
'rncp=RNS.Utilities.rncp:main',
|
||||
'rnx=RNS.Utilities.rnx:main',
|
||||
'rnodeconf=RNS.Utilities.rnodeconf:main',
|
||||
|
Loading…
Reference in New Issue
Block a user