Module embedded_hal_mock::adc

source ·
Expand description

ADC mock implementation.

Usage

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

// 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 embedded_hal::adc::OneShot;
use embedded_hal_mock::adc::Mock;
use embedded_hal_mock::adc::Transaction;
use embedded_hal_mock::adc::MockChan1;
use embedded_hal_mock::MockError;
use std::io::ErrorKind;


// 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

Mock ADC implementation
Mock ADC channel implementation
Mock ADC channel implementation
Mock ADC channel implementation
ADC transaction type

Type Definitions

Mock ADC implementation