lora sensnode

Dependencies:   libmDot mbed-rtos mbed

Fork of mDot_LoRa_Sensornode by Adrian Mitevski

Committer:
socie123
Date:
Wed Aug 10 12:54:10 2016 +0000
Revision:
1:e67174cc4953
Parent:
0:f2815503561f
lora sensnode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mitea1 0:f2815503561f 1 /**
mitea1 0:f2815503561f 2 * @file TaksHumidity.h
mitea1 0:f2815503561f 3 *
mitea1 0:f2815503561f 4 * @author Adrian
mitea1 0:f2815503561f 5 * @date 30.05.2016
mitea1 0:f2815503561f 6 *
mitea1 0:f2815503561f 7
mitea1 0:f2815503561f 8 */
mitea1 0:f2815503561f 9 #include "BME280.h"
mitea1 0:f2815503561f 10 #include "BME280HumidityMessage.h"
mitea1 0:f2815503561f 11 #include "main.h"
mitea1 0:f2815503561f 12
mitea1 0:f2815503561f 13 #ifndef TASKHUMIDITY_H_
mitea1 0:f2815503561f 14 #define TASKHUMIDITY_H_
mitea1 0:f2815503561f 15
mitea1 0:f2815503561f 16 /**
mitea1 0:f2815503561f 17 * @class TaskHumidity
mitea1 0:f2815503561f 18 * @brief This TaskHumidity Class handles the humidity measurement using the BME280.
mitea1 0:f2815503561f 19 * Starting the task using the start() starts the measurement.
mitea1 0:f2815503561f 20 * It can be used alongside with other measurement Tasks inside the mbed::rtos
mitea1 0:f2815503561f 21 * environment. The Task Class basically wraps mbeds Thread functionality.
mitea1 0:f2815503561f 22 */
mitea1 0:f2815503561f 23 class TaskHumidity {
mitea1 0:f2815503561f 24
mitea1 0:f2815503561f 25 public:
mitea1 0:f2815503561f 26 TaskHumidity(BME280*,Mutex*, Queue<BME280HumidityMessage,HUMIDITY_QUEUE_LENGHT>*);
mitea1 0:f2815503561f 27 TaskHumidity(BME280*,Mutex*,Queue<BME280HumidityMessage,HUMIDITY_QUEUE_LENGHT>*,
mitea1 0:f2815503561f 28 osPriority, uint32_t, unsigned char*);
mitea1 0:f2815503561f 29 virtual ~TaskHumidity();
mitea1 0:f2815503561f 30
mitea1 0:f2815503561f 31
mitea1 0:f2815503561f 32 /**
mitea1 0:f2815503561f 33 * Starts the task by building and its measurement
mitea1 0:f2815503561f 34 * @return
mitea1 0:f2815503561f 35 */
mitea1 0:f2815503561f 36 osStatus start();
mitea1 0:f2815503561f 37
mitea1 0:f2815503561f 38 /**
mitea1 0:f2815503561f 39 * Stops the task. Should only be used after start() was used
mitea1 0:f2815503561f 40 * @return
mitea1 0:f2815503561f 41 */
mitea1 0:f2815503561f 42 osStatus stop();
mitea1 0:f2815503561f 43
mitea1 0:f2815503561f 44
mitea1 0:f2815503561f 45 /**
mitea1 0:f2815503561f 46 * Gets the actual state of the Task either RUNNING or SLEEPING
mitea1 0:f2815503561f 47 * @return
mitea1 0:f2815503561f 48 */
mitea1 0:f2815503561f 49 TASK_STATE getState();
mitea1 0:f2815503561f 50
mitea1 0:f2815503561f 51 private:
mitea1 0:f2815503561f 52 rtos::Thread* thread;
mitea1 0:f2815503561f 53 rtos::Queue<BME280HumidityMessage,HUMIDITY_QUEUE_LENGHT>* queue;
mitea1 0:f2815503561f 54 rtos::Mutex* mutexI2C ;
mitea1 0:f2815503561f 55 osPriority priority;
mitea1 0:f2815503561f 56 uint32_t stack_size;
mitea1 0:f2815503561f 57 unsigned char *stack_pointer;
mitea1 0:f2815503561f 58
mitea1 0:f2815503561f 59 TASK_STATE state;
mitea1 0:f2815503561f 60
mitea1 0:f2815503561f 61 BME280* bme280;
mitea1 0:f2815503561f 62 BME280_MODE bme280Mode;
mitea1 0:f2815503561f 63
mitea1 0:f2815503561f 64
mitea1 0:f2815503561f 65 /**
mitea1 0:f2815503561f 66 * @brief A Callback function thats called by the mbed::Thread of this TaskClass
mitea1 0:f2815503561f 67 * @param
mitea1 0:f2815503561f 68 */
mitea1 0:f2815503561f 69 static void callBack(void const *);
mitea1 0:f2815503561f 70
mitea1 0:f2815503561f 71 /**
mitea1 0:f2815503561f 72 * @brief A thread safe method that measures the humidity. After measuring the humidity
mitea1 0:f2815503561f 73 * it stores the humidity value inside a BME280HumidityMessage
mitea1 0:f2815503561f 74 */
mitea1 0:f2815503561f 75 void measureHumidity();
mitea1 0:f2815503561f 76
mitea1 0:f2815503561f 77
mitea1 0:f2815503561f 78 /**
mitea1 0:f2815503561f 79 * @brief Sets the message Queue of the Task where the measured values will be stored
mitea1 0:f2815503561f 80 * after the measurement
mitea1 0:f2815503561f 81 * @param queueHumidity the queue where the BME280Humidity will be stored
mitea1 0:f2815503561f 82 */
mitea1 0:f2815503561f 83 void setQueue(Queue<BME280HumidityMessage,HUMIDITY_QUEUE_LENGHT>* queueHumdity);
mitea1 0:f2815503561f 84
mitea1 0:f2815503561f 85 /**
mitea1 0:f2815503561f 86 * @brief Sets the mutex thats used for a thread safe measurement
mitea1 0:f2815503561f 87 * @param mutexI2C the I2C mutex
mitea1 0:f2815503561f 88 */
mitea1 0:f2815503561f 89 void setMutex(Mutex* mutexI2C);
mitea1 0:f2815503561f 90
mitea1 0:f2815503561f 91 /**
mitea1 0:f2815503561f 92 * @brief Sets the priority of the Task
mitea1 0:f2815503561f 93 * @param priority priority of the Task
mitea1 0:f2815503561f 94 */
mitea1 0:f2815503561f 95 void setPriority(osPriority priority);
mitea1 0:f2815503561f 96
mitea1 0:f2815503561f 97 /**
mitea1 0:f2815503561f 98 * @brief Sets the size of the Task
mitea1 0:f2815503561f 99 * @param stackSize the stack size in Bytes
mitea1 0:f2815503561f 100 */
mitea1 0:f2815503561f 101 void setStackSize(uint32_t stackSize);
mitea1 0:f2815503561f 102
mitea1 0:f2815503561f 103 /**
mitea1 0:f2815503561f 104 * @brief Sets the stack pointer of for the task stack
mitea1 0:f2815503561f 105 * @param stackPointer
mitea1 0:f2815503561f 106 */
mitea1 0:f2815503561f 107 void setStackPointer(unsigned char* stackPointer);
mitea1 0:f2815503561f 108
mitea1 0:f2815503561f 109
mitea1 0:f2815503561f 110 /**
mitea1 0:f2815503561f 111 * @brief Sets the actual state of the Task.
mitea1 0:f2815503561f 112 * @param taskState either RUNNING or SLEEPING
mitea1 0:f2815503561f 113 */
mitea1 0:f2815503561f 114 void setState(TASK_STATE);
mitea1 0:f2815503561f 115 };
mitea1 0:f2815503561f 116
mitea1 0:f2815503561f 117
mitea1 0:f2815503561f 118 #endif /* TASKHUMIDITY_H_ */