|
|
@@ -2,6 +2,8 @@ use embedded_nrf24l01::{Configuration, CrcMode, DataRate, NRF24L01};
|
|
2
|
2
|
use linux_embedded_hal::spidev::{SpiModeFlags, Spidev, SpidevOptions};
|
|
3
|
3
|
use linux_embedded_hal::sysfs_gpio::Direction;
|
|
4
|
4
|
use linux_embedded_hal::Pin;
|
|
|
5
|
+use std::convert::TryInto;
|
|
|
6
|
+use std::time::Instant;
|
|
5
|
7
|
|
|
6
|
8
|
use spi::EmbeddedHalSpidev;
|
|
7
|
9
|
|
|
|
@@ -43,7 +45,7 @@ fn main() {
|
|
43
|
45
|
// Initialize the radio module.
|
|
44
|
46
|
let mut nrf24 = NRF24L01::new(ce, cs, spi).unwrap();
|
|
45
|
47
|
nrf24.set_frequency(0x32).unwrap();
|
|
46
|
|
- nrf24.set_rf(DataRate::R2Mbps, 0).unwrap();
|
|
|
48
|
+ nrf24.set_rf(DataRate::R2Mbps, 3).unwrap();
|
|
47
|
49
|
nrf24.set_crc(Some(CrcMode::OneByte)).unwrap();
|
|
48
|
50
|
nrf24.set_auto_retransmit(250, 3).unwrap();
|
|
49
|
51
|
nrf24
|
|
|
@@ -60,6 +62,8 @@ fn main() {
|
|
60
|
62
|
|
|
61
|
63
|
println!("width: {}", nrf24.get_address_width().unwrap());
|
|
62
|
64
|
|
|
|
65
|
+ let mut start = Instant::now();
|
|
|
66
|
+
|
|
63
|
67
|
// Receive data.
|
|
64
|
68
|
let mut nrf24 = nrf24.rx().unwrap();
|
|
65
|
69
|
println!("Starting to receive:");
|
|
|
@@ -67,6 +71,16 @@ fn main() {
|
|
67
|
71
|
if let Some(pipe) = nrf24.can_read().unwrap() {
|
|
68
|
72
|
let payload = nrf24.read().unwrap();
|
|
69
|
73
|
println!("packet received on pipe {}: {:?}", pipe, payload.as_ref());
|
|
|
74
|
+ let pressure = u32::from_le_bytes(payload.as_ref()[0..4].try_into().unwrap());
|
|
|
75
|
+ let temperature = u32::from_le_bytes(payload.as_ref()[4..8].try_into().unwrap());
|
|
|
76
|
+ let humidity = u32::from_le_bytes(payload.as_ref()[8..12].try_into().unwrap());
|
|
|
77
|
+ println!("pressure: {}", pressure as f32 / 100.0);
|
|
|
78
|
+ println!("temperature: {}", temperature as f32 / 100.0);
|
|
|
79
|
+ println!("humidity: {}", humidity as f32 / 1024.0);
|
|
|
80
|
+ let end = Instant::now();
|
|
|
81
|
+ let elapsed = end.duration_since(start);
|
|
|
82
|
+ println!("Debug: {:?}", elapsed);
|
|
|
83
|
+ start = end;
|
|
70
|
84
|
}
|
|
71
|
85
|
}
|
|
72
|
86
|
}
|