* Initial version of NextHopRouter
* Set original hop limit in header flags
* Short-circuit to FloodingRouter for broadcasts
* If packet traveled 1 hop, set `relay_node` as `next_hop` for the original transmitter
* Set last byte to 0xFF if it ended at 0x00
As per an idea of @S5NC
* Also update next-hop based on received DM for us
* temp
* Add 1 retransmission for intermediate hops when using NextHopRouter
* Add next_hop and relayed_by in PacketHistory for setting next-hop and handle flooding fallback
* Update protos, store multiple relayers
* Remove next-hop update logic from NeighborInfoModule
* Fix retransmissions
* Improve ACKs for repeated packets and responses
* Stop retransmission even if there's not relay node
* Revert perhapsRebroadcast()
* Remove relayer if we cancel a transmission
* Better checking for fallback to flooding
* Fix newlines in traceroute print logs
* Stop retransmission for original packet
* Use relayID
* Also when want_ack is set, we should try to retransmit
* Fix cppcheck error
* Fix 'router' not in scope error
* Fix another cppcheck error
* Check for hop_limit and also update next hop when `hop_start == hop_limit` on ACK
Also check for broadcast in `getNextHop()`
* Formatting and correct NUM_RETRANSMISSIONS
* Update protos
* Start retransmissions in NextHopRouter if ReliableRouter didn't do it
* Handle repeated/fallback to flooding packets properly
First check if it's not still in the TxQueue
* Guard against clients setting `next_hop`/`relay_node`
* Don't cancel relay if we were the assigned next-hop
* Replies (e.g. tapback emoji) are also a valid confirmation of receipt
---------
Co-authored-by: GUVWAF <thijs@havinga.eu>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Tom Fifield <tom@tomfifield.net>
Co-authored-by: GUVWAF <78759985+GUVWAF@users.noreply.github.com>
* Rework of CH341 HAL
* Applied trunk fmt
* revert serial reading
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Initial commit of a fuzzer for Meshtastic.
* Use a max of 5 for the phone queues
* Only write files to the temp dir
* Limitless queue + fuzzer = lots of ram :)
* Use $PIO_ENV for path to program
* spelling: s/is/to/
* Use loopCanSleep instead of a lock in Router
* realHardware allows full use of a CPU core
* Ignore checkov CKV_DOCKER_2 & CKV_DOCKER_3
* Add Atak seed
* Fix lint issues in build.sh
* Use exception to exit from portduino_main
* Separate build & source files into $WORK & $SRC
* Use an ephemeral port for the API server
* Include CXXFLAGS in the link step
* Read all shared libraries
* Use a separate work directory for each sanitizer
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* For each GPIO PIN, allow to specify gpiochip and line
* Added support for LLCC68 in native env.
* Removed one if by employing &&
* Fix for log, as std::string and not const char*
* Remove CH341 flag, enabling it for all LoRa chips
* Provide a default example
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Fix LED pinout for T-Echo board marked v1.0, date 2021-6-28
* Merge PR #420
* Fixed double and missing Default class.
* Use correct format specifier and fixed typo.
* Removed duplicate code.
* Fix error: #if with no expression
* Fix warning: extra tokens at end of #endif directive.
* Fix antenna switching logic. Complementary-pin control logic is required on the rp2040-lora board.
* Fix deprecated macros.
* Set RP2040 in dormant mode when deep sleep is triggered.
* Fix array out of bounds read.
* Admin key count needs to be set otherwise the key will be zero loaded after reset.
* Don't reset the admin key size when loading defaults. Preserve an existing key in config if possible.
* Remove log spam when reading INA voltage sensor.
* Remove static declaration for admin keys from userPrefs.h. Load hard coded admin keys in case config file has empty slots.
* Removed newlines from log.
* Fix issue #5665.
* Fix build for Pico2 RP2350 platform.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: GUVWAF <78759985+GUVWAF@users.noreply.github.com>
Selection of minor edits from the TFT branch that are too
challenging to cherry-pick cleanly, including:
* introducing the HAS_TFT flag
* fixing pins in unphone
* Adding pinterdevice to portduino settings
* Very hacky first attempt at usermod ech341
* Fixes and debug printfs
* Move to library version of libpinedio-usb
* Add spidev: ch341 option in meshtasticd config.yaml
* Only check settingsStrings on native
* Use new CH341 code
* Bump ch341 lib
* Cleanup USBHal
* Add ch341 config.d files
* Remove ch341quirk
* Bump to most recent spi-userspace driver
* Add handling for ch341 serial, pid, and vid
* Minor fixes from pio check
* Trunk
* Add include for musl compliance
* Point to upstream libch341
* Add MACAddress to config.yaml
* Better error handling on native, including failing to launch with blank MAC Address and real hardware.
* Re-arrange Mac Address handling and add MACAddressSource
* Bump portduino to remove macaddr function there
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Clean up SimRadio and don't let it use PKC
* Add collision emulation for SimRadio
* Add stats from SimRadio to LocalStats
* Make emulating collisions optional
* update radiolib to 7.1.0
* stay at 7.0.2 for STM32, also remove unused board from ESP32 arch
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Add support for loading yaml from a config directory
* Add waveshare hats to the new config.d approach
* Move to available.d for module inactive module configs
remove newline from logging statements in code. The LOG_* functions will now magically add it at the end.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Adding pico-extra utils
* RP2040 can now go to deepsleep
* First RP2040 DeepSleep code - TODO : do better and restore
* FIX RAK11310 compilation (revert SDK + missing defines)
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>