lora sensnode
Dependencies: libmDot mbed-rtos mbed
Fork of mDot_LoRa_Sensornode by
app/TaskHumidity.h@1:e67174cc4953, 2016-08-10 (annotated)
- 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?
User | Revision | Line number | New 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_ */ |