mirror of
https://codeberg.org/icewind/pms700x.git
synced 2026-06-03 18:14:11 +02:00
nostd
This commit is contained in:
parent
53ba8ebae3
commit
60df0a3e48
2 changed files with 7 additions and 14 deletions
|
|
@ -3,6 +3,9 @@ name = "pms700x"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Robin Appelman <robin@icewind.nl>"]
|
authors = ["Robin Appelman <robin@icewind.nl>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
exclude = ["*.pdf"]
|
||||||
|
license = "MIT OR Apache-2.0"
|
||||||
|
description = "Read"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
embedded-hal = "0.2"
|
embedded-hal = "0.2"
|
||||||
|
|
|
||||||
18
src/lib.rs
18
src/lib.rs
|
|
@ -1,5 +1,7 @@
|
||||||
|
#![no_std]
|
||||||
|
|
||||||
|
use core::marker::PhantomData;
|
||||||
use embedded_hal::serial::{Read, Write};
|
use embedded_hal::serial::{Read, Write};
|
||||||
use std::marker::PhantomData;
|
|
||||||
|
|
||||||
mod private {
|
mod private {
|
||||||
pub trait Sealed {}
|
pub trait Sealed {}
|
||||||
|
|
@ -199,7 +201,6 @@ impl SensorReader {
|
||||||
let byte = serial.read()?;
|
let byte = serial.read()?;
|
||||||
let offset = self.byte_offset;
|
let offset = self.byte_offset;
|
||||||
self.byte_offset += 1;
|
self.byte_offset += 1;
|
||||||
println!("read {}: {:x}", offset, byte);
|
|
||||||
self.data[offset as usize] = byte;
|
self.data[offset as usize] = byte;
|
||||||
match (offset, byte) {
|
match (offset, byte) {
|
||||||
(0, START_HEADER_1) => Err(nb::Error::WouldBlock),
|
(0, START_HEADER_1) => Err(nb::Error::WouldBlock),
|
||||||
|
|
@ -225,9 +226,6 @@ impl SensorReader {
|
||||||
(offset, _) => {
|
(offset, _) => {
|
||||||
if offset >= self.length + 3 {
|
if offset >= self.length + 3 {
|
||||||
self.byte_offset = 0;
|
self.byte_offset = 0;
|
||||||
if !self.validate_data() {
|
|
||||||
eprintln!("invalid checksum")
|
|
||||||
}
|
|
||||||
Ok(())
|
Ok(())
|
||||||
} else {
|
} else {
|
||||||
Err(nb::Error::WouldBlock)
|
Err(nb::Error::WouldBlock)
|
||||||
|
|
@ -236,6 +234,7 @@ impl SensorReader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
fn validate_data(&self) -> bool {
|
fn validate_data(&self) -> bool {
|
||||||
let mut sum = 0;
|
let mut sum = 0;
|
||||||
for byte in self.data.iter().take(self.length as usize + 2) {
|
for byte in self.data.iter().take(self.length as usize + 2) {
|
||||||
|
|
@ -306,7 +305,6 @@ impl CommandWriter {
|
||||||
6 => self.verify_low,
|
6 => self.verify_low,
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
};
|
};
|
||||||
println!("write {}: {:x}", self.state, write_byte);
|
|
||||||
serial.write(write_byte)?;
|
serial.write(write_byte)?;
|
||||||
|
|
||||||
self.state += 1;
|
self.state += 1;
|
||||||
|
|
@ -319,11 +317,3 @@ impl CommandWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
#[test]
|
|
||||||
fn it_works() {
|
|
||||||
assert_eq!(2 + 2, 4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue