IEEE 802.15.4 Examples and API Fixes#587
Conversation
98788b7 to
d0c6f47
Compare
|
I realized that the existing |
|
I've confirmed that the When testing, I noticed some issues with the parsing logic (which have now been fixed). Should be good to merge on my end. I see some CI failures, but those look like they are not relevant to me? |
|
Hm, it really looks like we ought to have a |
Or upgrade to edition 2024. |
|
Ping on this PR. Is there anything blocking on me? |
|
Oh, I was waiting for CI to pass before reviewing. I think that'll be a separate PR though (edition 2024 upgrade). |
|
@jrvanwhy I can take a stab at a version upgrade sometime end of next week! (full disclaimer I'm not as familiar with libtock-rs so I'll need a more thorough review on those changes 🙂) |
|
Can we rerun the ci to see if the below error has gone away? If not, how do you reproduce it to debug? I tried making a Dockerfile using the information in .github/workflows but was not able to get that error. I have successfully built example programs using the PR branch locally without issue. |
|
I just looked and I don't think I have permission to re-run CI. Regardless, the underlying issue is not fixed (that our dependency specifications allow for our dependencies to update to versions that don't work on our MSRV), so I would expect it to fail again. Is it possible that you're accidentally keeping a working Cargo.lock around? The CI starts with a fresh checkout with no Cargo.lock; if your copied your Cargo.lock into your Docker location then that would explain the success. If not, maybe an upstream package was yanked or updated to limit its dependencies in a way that prevents us from hitting this issue? The easy fix to move this PR forward is to bump to resolver 3 (which makes cargo consider the Rust version during dependency resolution). |
|
@jrvanwhy thanks I was able to reproduce the error locally when I ran Your suggestion worked to fix |
|
@tyler-potyondy #589 should fix the CI error |
|
@tyler-potyondy with #589 merged in did you want to see if you can get the CI to pass? I have a PR on the 802.15.4 examples that I would like to submit, but I'm using your code from this PR. Thanks again for the changes! |
The kernel exposese two 15.4 drivers, a standard driver and a phy driver. The standard driver takes a payload and other fields and forms the headers/handles encryption. The phy driver transmits "raw" payloads. - Update naming of examples / functions to specify using raw interface.
The ieee802154_rx_raw and ieee802154_rx_tx apps expect a packet of the form "frame XXXX" where XXXX encodes the frame number using the last four bytes. This fixes the parsing logic to correctly display this information.
f9ac8c2 to
3c52dbd
Compare
IEEE 802.15.4 Examples and API Fixes
This PR updates the
libtock-rs15.4 API to account for the Phy/Standard 15.4 drivers in the kernel.For context, the kernel has two 15.4 driver interfaces (that are mutually exclusive): a standard 15.4 driver and a Phy driver. The standard driver accepts payloads and forms the frame (adding headers, handling encryption, etc.). The Phy driver takes a buffer and transmits this buffer without modification.
The existing 15.4 API uses the standard driver. However, this driver does not expose functionality for things such as setting the channel or tx power (resulting in the errors in #586).
Changes
TODO