LoRa_Node_STM32F103C8T6
Dependencies: mbed mbed-STM32F103C8T6 OneWireCRC_LoRa_Node SX1276Lib_LoRa_Node
Thermometer.cpp@6:531b8dccca06, 2018-04-30 (annotated)
- 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?
User | Revision | Line number | New 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 | }; |