Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dbrgn/embedded-hal-mock
Mocks for testing embedded-hal based drivers without hardware access.
https://github.com/dbrgn/embedded-hal-mock
Last synced: about 1 month ago
JSON representation
Mocks for testing embedded-hal based drivers without hardware access.
- Host: GitHub
- URL: https://github.com/dbrgn/embedded-hal-mock
- Owner: dbrgn
- License: apache-2.0
- Created: 2018-03-25T13:08:52.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-06-02T18:30:02.000Z (4 months ago)
- Last Synced: 2024-07-19T04:58:20.192Z (2 months ago)
- Language: Rust
- Homepage: https://docs.rs/embedded-hal-mock/
- Size: 217 KB
- Stars: 117
- Watchers: 9
- Forks: 24
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# embedded-hal-mock
[![GitHub Actions][github-actions-badge]][github-actions]
![Minimum Rust Version][min-rust-badge]
[![Crates.io Version][version-badge]][crates-io]This is a collection of types that implement the embedded-hal traits.
The implementations never access real hardware. Instead, the hardware is mocked
or no-op implementations are used.The goal of the crate is to be able to test drivers in CI without having access
to hardware.[Docs](https://docs.rs/embedded-hal-mock/)
## Usage
See module-level docs for more information.
## embedded_hal version
This crate supports both version 0.x and version 1.x of embedded-hal. By default only support
for version 0.x is enabled. To enable support for version 1.x, use the `eh1` feature.## Cargo Features
There are currently the following cargo features:
- `eh0`: Provide module `eh0` that mocks embedded-hal version 0.x (enabled by default)
- `eh1`: Provide module `eh1` that mocks embedded-hal version 1.x (enabled by default)
- `embedded-time`: Enable the `eh0::timer` module (enabled by default)
- `embedded-hal-async`: Provide mocks for embedded-hal-async in `eh1`## no\_std
Currently this crate is not `no_std`. If you think this is important, let
me know.## Status
| Feature | embedded-hal | embeded-hal-async |
|---------------------------------------------|--------------|-------------------|
| I²C | ✅ | ✅ |
| SPI | ✅ | ✅ |
| No-op delay | ✅ | ✅ |
| Actual delay | ✅ | ✅ |
| Serial | ✅ | - |
| RNG | - | - |
| I/O pins (including PWM) | ✅ | ✅ |
| ADC | ✅ | - |
| Timers (with `embedded-time` Cargo feature) | ✅ | - |Pull requests for more mock implementations are welcome! :)
## Minimum Supported Rust Version (MSRV)
This crate is guaranteed to compile on stable Rust 1.63 and up. It *might*
compile with older versions but that may change in any new patch release.## Development Version of `embedded-hal`
If you would like to use the current development version of `embedded-hal` (or any other version),
so long as they are API compatible you can use a patch field in your `Cargo.toml` file to override
the dependency version.```yaml
[patch.crates-io]
eh1 = { git = "https://github.com/rust-embedded/embedded-hal" }
```## License
Licensed under either of
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT) at your option.### Contributing
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall
be dual licensed as above, without any additional terms or conditions.[github-actions]: https://github.com/dbrgn/embedded-hal-mock/actions/workflows/ci.yml
[github-actions-badge]: https://github.com/dbrgn/embedded-hal-mock/actions/workflows/ci.yml/badge.svg
[min-rust-badge]: https://img.shields.io/badge/rustc-1.63+-blue.svg
[crates-io]: https://crates.io/crates/embedded-hal-mock
[version-badge]: https://img.shields.io/crates/v/embedded-hal-mock.svg