LoRa_Node_STM32F103C8T6

Dependencies:   mbed mbed-STM32F103C8T6 OneWireCRC_LoRa_Node SX1276Lib_LoRa_Node

Committer:
lukas_formanek
Date:
Mon Apr 30 22:41:57 2018 +0000
Revision:
6:531b8dccca06
Parent:
5:6e899f5db65e
Child:
8:978eb43296ae
1.5.2018

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lukas_formanek 0:cc04364f049a 1 #include "Thermometer.h"
lukas_formanek 0:cc04364f049a 2
lukas_formanek 5:6e899f5db65e 3 Thermometer thermometer(true, true, false, THERM_PIN);
lukas_formanek 5:6e899f5db65e 4
lukas_formanek 0:cc04364f049a 5 Thermometer::Thermometer(bool crcOn, bool useAddr, bool parasitic, PinName pin)
lukas_formanek 0:cc04364f049a 6 : thermometer(crcOn, useAddr, parasitic, pin)
lukas_formanek 0:cc04364f049a 7 {
lukas_formanek 0:cc04364f049a 8 meassuredValue = 0.0;
lukas_formanek 5:6e899f5db65e 9 intervalSeconds = MEASURE_INTERVAL;
lukas_formanek 5:6e899f5db65e 10 counter = 0;
lukas_formanek 0:cc04364f049a 11 };
lukas_formanek 0:cc04364f049a 12
lukas_formanek 0:cc04364f049a 13 void Thermometer::Init()
lukas_formanek 0:cc04364f049a 14 {
lukas_formanek 0:cc04364f049a 15 thermometer.initialize();
lukas_formanek 6:531b8dccca06 16 thermometer.setResolution(THERMOMETER_RESOLUTION);
lukas_formanek 0:cc04364f049a 17 };
lukas_formanek 0:cc04364f049a 18
lukas_formanek 5:6e899f5db65e 19 void Thermometer::StartPeriodicMeassure(int seconds)
lukas_formanek 0:cc04364f049a 20 {
lukas_formanek 6:531b8dccca06 21 Meassure();
lukas_formanek 6:531b8dccca06 22 intervalSeconds = seconds;
lukas_formanek 6:531b8dccca06 23 counter = 0;
lukas_formanek 6:531b8dccca06 24 thermometerTicker.attach(this,&Thermometer::OnSampleTick,1.0); // kazdu sekundu
lukas_formanek 5:6e899f5db65e 25 };
lukas_formanek 5:6e899f5db65e 26
lukas_formanek 5:6e899f5db65e 27 void Thermometer::StopPeriodicMeassure()
lukas_formanek 5:6e899f5db65e 28 {
lukas_formanek 6:531b8dccca06 29 thermometerTicker.detach();
lukas_formanek 6:531b8dccca06 30 counter = 0;
lukas_formanek 0:cc04364f049a 31 };
lukas_formanek 0:cc04364f049a 32
lukas_formanek 1:a54ff5e2c2f3 33 void Thermometer::Meassure()
lukas_formanek 0:cc04364f049a 34 {
lukas_formanek 0:cc04364f049a 35 meassuredValue = thermometer.readTemperature();
lukas_formanek 0:cc04364f049a 36 while((rint(meassuredValue)) == 85) {
lukas_formanek 0:cc04364f049a 37 Init();
lukas_formanek 0:cc04364f049a 38 meassuredValue = thermometer.readTemperature();
lukas_formanek 0:cc04364f049a 39 }
lukas_formanek 1:a54ff5e2c2f3 40 rfm.SendValue(GATEWAY_ID, meassuredValue);
lukas_formanek 5:6e899f5db65e 41 };
lukas_formanek 0:cc04364f049a 42
lukas_formanek 1:a54ff5e2c2f3 43 void Thermometer::OnSampleTick()
lukas_formanek 1:a54ff5e2c2f3 44 {
lukas_formanek 5:6e899f5db65e 45 counter++;
lukas_formanek 6:531b8dccca06 46 if(counter >= intervalSeconds) {
lukas_formanek 5:6e899f5db65e 47 Meassure();
lukas_formanek 5:6e899f5db65e 48 counter = 0;
lukas_formanek 5:6e899f5db65e 49 }
lukas_formanek 0:cc04364f049a 50 };