Open
Conversation
…update related documentation - Updated radio type choices in various example scripts to include 'kiss-modem'. - Enhanced the create_radio function to support 'kiss-modem' with specific configuration and identity handling. - Added conditional imports for KissSerialWrapper and KissModemWrapper in the hardware module. - Updated documentation to reflect changes in radio type options and identity creation logic.
…packet metrics - Updated the RX callback to accept both (data) and (data, rssi, snr) signatures for improved flexibility. - Implemented a helper function to invoke the callback with the appropriate number of arguments. - Modified the dispatcher to handle per-packet RSSI and SNR values, ensuring accurate metrics without race conditions. - Added a test to verify that the RX callback correctly receives per-packet RSSI and SNR values.
…allbacks - Introduced a method to set an asyncio event loop for safe callback invocation from background threads. - Updated the RX callback dispatcher to utilize the event loop when set, ensuring proper async integration. - Modified the constructor and documentation to reflect changes in callback handling and configuration options. - Added tests to verify event loop functionality and compatibility with radio configuration keys.
…ulation - Changed method signature of calc_shared_secret to accept a 32-byte Ed25519 public key instead of X25519. - Updated documentation to clarify the internal conversion from Ed25519 to X25519 by the modem. - Added validation to ensure the provided public key is the correct length. - Enhanced comments for better understanding of the key exchange process.
Author
|
Did some testing on the ModemIdentity. Verified that it works as intended. There remains an issue with the ModemIdentity because it holds the private key, it breaks the pattern because
There's a need for some kind of a wrapper or duck typing. I don't know what route you'd want to go with that though. |
…ions - Adjusted command constants for KISS Modem to reflect the correct values as per firmware documentation. - Renumbered CMD and RESP constants to ensure consistency and avoid conflicts with firmware commands. - Enhanced comments for clarity regarding the changes made to the command structure.
- Implemented LBT mechanism to check channel availability before transmission, aligning with MeshCore firmware specifications. - Introduced LBT retry delays and maximum wait time to manage channel busy states. - Updated send method to return detailed transmission metadata, including LBT metrics. - Refactored timestamp retrieval in Dispatcher to use asyncio.get_running_loop for better compatibility.
- Added a cleanup method to release modem resources by disconnecting the serial and stopping threads. - Added a check_radio_health method to verify modem connectivity and respond to pings, enhancing reliability. - Added a get_status method to retrieve comprehensive radio status, including configuration and statistics.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
My first draft of a wrapper. I've tested reading a variety of radio packets, handling DMs, and channel messages. I have an experimental branch of meshcore-bot that has implemented this wrapper for all radio functions.
This includes a change to modify the _on_packet_received callback in the dispatcher to optionally return RSSI and SNR on a per-packet basis to ensure they are bound to the right packet that my project would really appreciate, but if it doesn't make it I'll understand.
There's some more work to be done in ModemIdentity, which moves the crypto handling and keys to the radio. It's a little harder test test than simply pushing pyMC generated packets through the radio.