Module adc

Source
Available on crate feature eh0 only.
Expand description

ADC mock implementation.

§Usage

use embedded_hal::adc::OneShot;
use embedded_hal_mock::eh0::adc::{Mock, MockChan0, MockChan1, Transaction};

// Configure expectations: expected input channel numbers and values returned by read operations
let expectations = [
    Transaction::read(0, 0xab),
    Transaction::read(1, 0xabcd)
];
let mut adc = Mock::new(&expectations);

// Reading
assert_eq!(0xab, adc.read(&mut MockChan0 {}).unwrap());
assert_eq!(0xabcd, adc.read(&mut MockChan1 {}).unwrap());

// Finalise expectations
adc.done();

§Testing Error Handling

Attach an error to test error handling. An error is returned when such a transaction is executed.

use std::io::ErrorKind;

use embedded_hal::adc::OneShot;
use embedded_hal_mock::eh0::{
    adc::{Mock, MockChan1, Transaction},
    MockError,
};

// Configure expectations
let expectations = [
    Transaction::read(1, 0xabba).with_error(MockError::Io(ErrorKind::InvalidData))
];
let mut adc = Mock::new(&expectations);

// Reading returns an error
adc.read(&mut MockChan1 {})
    .expect_err("expected error return");

// Finalise expectations
adc.done();

Structs§

MockAdc
Mock ADC implementation
MockChan0
Mock ADC channel implementation
MockChan1
Mock ADC channel implementation
MockChan2
Mock ADC channel implementation
Transaction
ADC transaction type

Type Aliases§

Mock
Mock ADC implementation