
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
a7105
is a Rust crate that provides a high-level interface for interacting with the A7105 2.4GHz FSK/GFSK Transceiver, built on top of embedded-hal
traits. This crate supports both synchronous (sync) and asynchronous (async) APIs, allowing users to choose the mode that best fits their application requirements.
This crate makes no assumptions for the protocol, if any, used on top of the a7105. Instead, the responsibility of this crate end at configuring the radio and reading/writing raw bytes over the air.
Sync and Async support is through embedded-hal
and embedded-hal-async
, configurable through the async
and blocking
features. By default the crate will use async
variants. If blocking APIs are preferred, the blocking
feature can be specified and default features disabled.
Add the following line to your Cargo.toml file:
[dependencies]
a7105 = "0.1.0"
This example utilizes the default async APIs. The blocking API has the exact same function signatures.
use a7105::prelude::*;
// Get a handle to the SPI peripheral attached to the A7105. This step
// will be highly specific to the hardware used and if a blocking or
// async peripheral is being used
let spi = unimplemented!();
let mut radio = A7105::new(spi);
// It is usually a good idea to reset the radio before anything else
radio.command(Command::Reset).await.unwrap();
// Write a register, in this example setting IdData to 0x01234567
radio.write_reg(registers::IdData {
id: 0x01234567
}).await.unwrap();
// Read a register, in this example `DataRate`
let data_rate: registers::DataRate = radio.read_reg().await.unwrap();
// Transmit the given bytes
radio.tx(&[0, 1, 2, 3]).await.unwrap();
// Receive a set number of bytes into the provided buffer
let mut buf = [0; 8];
radio.rx(&mut buf).await.unwrap();
// Set the radio's mode
radio.set_mode(Mode::Idle).await.unwrap();
// Destroys the radio instance and gets back the SPI peripheral
let spi = radio.destroy();
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.
This work is licensed under either of
at your option.
FAQs
Unknown package
We found that a7105 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.