Leon Wehmeier / Mbed OS fiasco_max32630

Dependencies:   SoftSerial MAX14690 Buffer

Fork of rtos_threading_with_callback by mbed_example

Committer:
lwehmeier
Date:
Fri Mar 30 10:32:10 2018 +0000
Revision:
3:d7ec6dc025b0
Parent:
2:bf699e054b34
implemented basic GPS read support, freed serial connection for uart jpg camera module

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lwehmeier 2:bf699e054b34 1 #include "mbed.h"
lwehmeier 2:bf699e054b34 2 #include "DHT.h"
lwehmeier 2:bf699e054b34 3 #include "rtos.h"
lwehmeier 2:bf699e054b34 4 #include "global.h"
lwehmeier 3:d7ec6dc025b0 5 #include "logger.h"
lwehmeier 2:bf699e054b34 6
lwehmeier 2:bf699e054b34 7 class DHTData
lwehmeier 2:bf699e054b34 8 {
lwehmeier 2:bf699e054b34 9 public:
lwehmeier 2:bf699e054b34 10 static void run()
lwehmeier 2:bf699e054b34 11 {
lwehmeier 2:bf699e054b34 12 while(1)
lwehmeier 2:bf699e054b34 13 {
lwehmeier 2:bf699e054b34 14 int error = dht.readData();
lwehmeier 2:bf699e054b34 15 if (0 == error) {
lwehmeier 2:bf699e054b34 16 float c = dht.ReadTemperature(CELCIUS);
lwehmeier 2:bf699e054b34 17 float h = dht.ReadHumidity();
lwehmeier 2:bf699e054b34 18 humidity = h;
lwehmeier 2:bf699e054b34 19 float dpf = dht.CalcdewPointFast(c, h);
lwehmeier 3:d7ec6dc025b0 20 char *buffer = new char[50];
lwehmeier 3:d7ec6dc025b0 21 sprintf(buffer, "Temperature: %3.2f, Humidity: %3.2f\r\n", c,h);
lwehmeier 3:d7ec6dc025b0 22 Logger::log(buffer);
lwehmeier 3:d7ec6dc025b0 23
lwehmeier 2:bf699e054b34 24 printf("DHT: Temperature in Celcius: %4.2f\r\n", c);
lwehmeier 2:bf699e054b34 25 printf("DHT: Humidity is %4.2f, Dewpoint: %4.2f\r\n", h, dpf);
lwehmeier 2:bf699e054b34 26
lwehmeier 2:bf699e054b34 27 {
lwehmeier 2:bf699e054b34 28 linkPacket *p = new linkPacket();
lwehmeier 2:bf699e054b34 29 uint8_t *data = new uint8_t[4];
lwehmeier 2:bf699e054b34 30 data[0]=((uint8_t*)&h)[0];
lwehmeier 2:bf699e054b34 31 data[1]=((uint8_t*)&h)[1];
lwehmeier 2:bf699e054b34 32 data[2]=((uint8_t*)&h)[2];
lwehmeier 2:bf699e054b34 33 data[3]=((uint8_t*)&h)[3];
lwehmeier 2:bf699e054b34 34 p->payload=data;
lwehmeier 2:bf699e054b34 35 p->payloadSz=4;
lwehmeier 2:bf699e054b34 36 p->priority =3;
lwehmeier 2:bf699e054b34 37 p->frameType = FRAMETYPE_HUMIDITY;
lwehmeier 2:bf699e054b34 38 txQueue.addPacket(p);
lwehmeier 2:bf699e054b34 39 }
lwehmeier 2:bf699e054b34 40 {
lwehmeier 2:bf699e054b34 41 linkPacket *p = new linkPacket();
lwehmeier 2:bf699e054b34 42 uint8_t *data = new uint8_t[4];
lwehmeier 2:bf699e054b34 43 data[0]=((uint8_t*)&dpf)[0];
lwehmeier 2:bf699e054b34 44 data[1]=((uint8_t*)&dpf)[1];
lwehmeier 2:bf699e054b34 45 data[2]=((uint8_t*)&dpf)[2];
lwehmeier 2:bf699e054b34 46 data[3]=((uint8_t*)&dpf)[3];
lwehmeier 2:bf699e054b34 47 p->payload=data;
lwehmeier 2:bf699e054b34 48 p->payloadSz=4;
lwehmeier 2:bf699e054b34 49 p->priority =3;
lwehmeier 2:bf699e054b34 50 p->frameType = FRAMETYPE_DEWPOINT;
lwehmeier 2:bf699e054b34 51 txQueue.addPacket(p);
lwehmeier 2:bf699e054b34 52 }
lwehmeier 2:bf699e054b34 53
lwehmeier 2:bf699e054b34 54 } else {
lwehmeier 2:bf699e054b34 55 printf("DHT: Error: %d\r\n", error);
lwehmeier 2:bf699e054b34 56 }
lwehmeier 2:bf699e054b34 57 rtos::Thread::wait(20000);//ms
lwehmeier 2:bf699e054b34 58 }
lwehmeier 2:bf699e054b34 59 }
lwehmeier 2:bf699e054b34 60 DHTData()
lwehmeier 2:bf699e054b34 61 {
lwehmeier 2:bf699e054b34 62 registerThread(DHTData::run);
lwehmeier 2:bf699e054b34 63 }
lwehmeier 2:bf699e054b34 64 static DHT dht;
lwehmeier 2:bf699e054b34 65 };
lwehmeier 2:bf699e054b34 66 DHT DHTData::dht(P3_2, DHT11);;
lwehmeier 2:bf699e054b34 67
lwehmeier 2:bf699e054b34 68 // some witchcraft to register run function without touching anything outside our library
lwehmeier 2:bf699e054b34 69 static DHTData _dummy;