Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetInterfacePlusHostname NTPClient Onewire RdWebServer SDFileSystem-RTOS mbed-rtos mbed-src
Thermometers.h@20:7933076df5af, 2015-10-13 (annotated)
- Committer:
- Bobty
- Date:
- Tue Oct 13 18:35:20 2015 +0000
- Revision:
- 20:7933076df5af
- Parent:
- 16:89778849e9f7
Improved logging and added a mutex to avoid clashes on SD card access
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Bobty | 9:0e103c2f869a | 1 | // Handles Thermometers |
| Bobty | 9:0e103c2f869a | 2 | // Rob Dobson, 2015 |
| Bobty | 9:0e103c2f869a | 3 | |
| Bobty | 9:0e103c2f869a | 4 | #ifndef Thermometers__H |
| Bobty | 9:0e103c2f869a | 5 | #define Thermometers__H |
| Bobty | 9:0e103c2f869a | 6 | |
| Bobty | 9:0e103c2f869a | 7 | #include "RdDS18B20.h" |
| Bobty | 20:7933076df5af | 8 | #include "Logger.h" |
| Bobty | 9:0e103c2f869a | 9 | |
| Bobty | 9:0e103c2f869a | 10 | struct TemperatureValue |
| Bobty | 9:0e103c2f869a | 11 | { |
| Bobty | 9:0e103c2f869a | 12 | time_t timeStamp; |
| Bobty | 9:0e103c2f869a | 13 | char address[DS18B20::ONEWIRE_ADDR_STRLEN]; |
| Bobty | 9:0e103c2f869a | 14 | double tempInCentigrade; |
| Bobty | 9:0e103c2f869a | 15 | }; |
| Bobty | 9:0e103c2f869a | 16 | |
| Bobty | 9:0e103c2f869a | 17 | class Thermometers |
| Bobty | 9:0e103c2f869a | 18 | { |
| Bobty | 9:0e103c2f869a | 19 | public: |
| Bobty | 20:7933076df5af | 20 | Thermometers(int numTempSensorPins, const PinName tempSensorPins[], int serviceIntervalInMs, Logger &logger); |
| Bobty | 9:0e103c2f869a | 21 | void Init(); |
| Bobty | 9:0e103c2f869a | 22 | void Service(); |
| Bobty | 9:0e103c2f869a | 23 | int GetTemperatureValues(int maxTempValues, TemperatureValue* tempValues, int maxAgeInSecs); |
| Bobty | 9:0e103c2f869a | 24 | static const int numSecondsBetweenThermReadings = 10; |
| Bobty | 9:0e103c2f869a | 25 | static const int timeForThermReadingInSecs = 2; |
| Bobty | 9:0e103c2f869a | 26 | static const int reGetThermometerAddressesAfterNumReadings = 100; |
| Bobty | 9:0e103c2f869a | 27 | static const int MAX_ONEWIRE_BUSES = 1; |
| Bobty | 9:0e103c2f869a | 28 | static const int MAX_THERMOMETERS = 8; |
| Bobty | 9:0e103c2f869a | 29 | |
| Bobty | 9:0e103c2f869a | 30 | private: |
| Bobty | 9:0e103c2f869a | 31 | // Thermometer info |
| Bobty | 9:0e103c2f869a | 32 | int _numTempSensorPins; |
| Bobty | 9:0e103c2f869a | 33 | const PinName* _tempSensorPins; |
| Bobty | 9:0e103c2f869a | 34 | int _numThermometerBuses; |
| Bobty | 9:0e103c2f869a | 35 | DS18B20* _thermometerBuses[MAX_ONEWIRE_BUSES]; |
| Bobty | 9:0e103c2f869a | 36 | int _serviceIntervalInMs; |
| Bobty | 9:0e103c2f869a | 37 | |
| Bobty | 9:0e103c2f869a | 38 | // Counters for state machine |
| Bobty | 9:0e103c2f869a | 39 | int _countForThermReadings; |
| Bobty | 9:0e103c2f869a | 40 | int _countForGetThermometerAddresses; |
| Bobty | 16:89778849e9f7 | 41 | |
| Bobty | 16:89778849e9f7 | 42 | // DEBUG |
| Bobty | 16:89778849e9f7 | 43 | int _failReadCount; |
| Bobty | 16:89778849e9f7 | 44 | int _failAddrCount; |
| Bobty | 20:7933076df5af | 45 | Logger &_logger; |
| Bobty | 9:0e103c2f869a | 46 | }; |
| Bobty | 9:0e103c2f869a | 47 | |
| Bobty | 9:0e103c2f869a | 48 | #endif |