Last active
August 17, 2017 22:27
-
-
Save alevy/a274981a29ffc00230aa16101ee0b89f to your computer and use it in GitHub Desktop.
Rust Tock app that reports sensor data to `ble-env-sense` service
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#![feature(alloc)] | |
#![no_std] | |
extern crate alloc; | |
extern crate tock; | |
use alloc::fmt::Write; | |
use tock::console::Console; | |
use tock::ipc::ble_ess::{self, ReadingType}; | |
use tock::sensors::*; | |
#[inline(never)] | |
fn main() { | |
let mut console = Console::new(); | |
write!(&mut console, "Starting BLE ESS\n").unwrap(); | |
let mut ess = match ble_ess::connect() { | |
Ok(ess) => ess, | |
_ => { | |
write!(&mut console, "BLE IPC Service not installed\n").unwrap(); | |
return | |
} | |
}; | |
write!(&mut console, "Found BLE IPC Service\n").unwrap(); | |
let mut humidity = HumiditySensor; | |
let mut temperature = TemperatureSensor; | |
let mut light = AmbientLightSensor; | |
loop { | |
// Temperature | |
let temp = temperature.read(); | |
write!(&mut console, "Temperature: {}\n", temp).unwrap(); | |
if let Err(_) = ess.set_reading(ReadingType::Temperature, temp) { | |
write!(&mut console, "Failed to set temperature\n").unwrap_or(()); | |
} | |
// Light | |
let lx = light.read(); | |
write!(&mut console, "Light: {}\n", lx).unwrap(); | |
if let Err(_) = ess.set_reading(ReadingType::Light, lx) { | |
write!(&mut console, "Failed to set temperature\n").unwrap_or(()); | |
} | |
// Humidity | |
let humid = humidity.read(); | |
write!(&mut console, "Humidity: {}\n", humid).unwrap(); | |
if let Err(_) = ess.set_reading(ReadingType::Humidity, humid) { | |
write!(&mut console, "Failed to set temperature\n").unwrap_or(()); | |
} | |
tock::timer::delay_ms(5000); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment