-
Notifications
You must be signed in to change notification settings - Fork 23
Basic DECT support #52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
The code is based on the embassy-net-tcp-client example.
|
Very cool! So about how everything should be structured:
So I think mainly this decision needs to be made:
I don't know what a DECT stack looks like, so it's hard for me to judge. Another issue of course is maintenance. |
|
I don't know have the full picture of what a DECT stack looks like either. But there's quite a bit of it on top of the PHY (which the nRF91xx series provides) – a MAC layer that decides whom to talk to when, a "DLC" layer that implements low-layer mesh and forwarding, and then a "CVG" layer with application multiplexing, end-to-end security, eventually fanning out to applications or IPv6. With hophop I hope to keep as much of it hardware independent as I can, facilitating porting to different hardware. Combining this with what you've written, I don't think a full-high-level provider is practical -- it just doesn't exist yet, and it's also not as simple as "here's your network interface, it's all set up from the modem, enjoy your pings". What we could do is
As for possibilities for review: I'll look into possible solutions; mostly, though, the first show stopper is the lack of radio core firmware availability. |
All current and foreseeable functions will be async and require coordination on the channel(s) and sequential processing; requiring exclusive access represents that well.
…thout flashing other firmware inbetween
This makes everything more message-y, and frees the RECV_BUF semantics to also accommodate RSSI.
rather than just reading results out of defmt output
|
Coarse status update: Making progress on the interfaces, but they're still in flux a lot while I'm building initial applications to hammer out how they would eventually be used. As pushing to the branch probably triggers your notifications, feel free to unsubscribe from it: I'll ping you when there are updates on the hardware-and-firmware availability (WIP), or it is ready to review (which kind of implies the former). |
The extra init function did not really carry its weight, given the actual even handler has to do so much lifting.
Any changes that'd enable parallel submission are heavy enough anyway that the type changes incompatibly.
I'm not sure what of this has a place in this library, and this is all immature, but if nothing else, serves as a coordination point.
This PR contains updates and an example of using the nRF9151 in DECT mode. This has large overlaps in terms of setup and infrastructure (handler forwarding and all that), but after setup, paths diverge.
This
It is probably not this library's intention to serve as a full DECT library. If that is so, I see two possible cutting points to which this could be trimmed:
init_with_custom_layout_corepub (that isinit_with_custom_layoutup to the point where the AT commands would begin, which the DECT firmware doesn't do, at least that way). Then, users would use this crate's core setups, including all the libc mangling, handler setup and log processing, and go their merry ways calling unsafe nrfxlib-sys functions.Either way, higher-layer functionality, DECT services and whatsonot should probably live in https://github.com/ariel-os/hophop.
Where do you think would be a sensible library boundary? I'd be happy with either 1. or 2., but maybe I missed other options.
As this is currently pretty much impossible to try out without contact to Nordic sales (see nrf-rs/nrfxlib-sys#16), here's a screenshot of the Python visualization of the RSSI report: