A multifunctional and modular Firmware for Multitech's mDot based on ARM mBed provides a widerange of functionality for several Sensors such as MAX44009, BME280, MPU9250, SI1143 and uBlox. It allows you to quickly build a Sensornode that measures specific data with its sensors and sends it via LoRaWAN.
Dependencies: mDot_LoRa_Sensornode_Flowmeter_impl mbed-rtos mbed
TaskLoRaMeasurement.cpp
00001 /** 00002 * @file TaskLoRaMeasurement.cpp 00003 * 00004 * @author Adrian 00005 * @date 13.06.2016 00006 */ 00007 00008 #include "TaskLoRaMeasurement.h " 00009 00010 TaskLoRaMeasurement::TaskLoRaMeasurement(LoRa* lora,Mutex* mutexLoRa, 00011 Queue<LoRaMeasurementMessage,LORA_MEASUREMENT_QUEUE_LENGHT>* queue){ 00012 this->lora = lora; 00013 setMutex(mutexLoRa); 00014 setQueue(queue); 00015 } 00016 00017 TaskLoRaMeasurement::TaskLoRaMeasurement(LoRa* lora,Mutex* mutexLoRa, 00018 rtos::Queue<LoRaMeasurementMessage,LORA_MEASUREMENT_QUEUE_LENGHT>* queue, 00019 osPriority priority, uint32_t stackSize, unsigned char *stackPointer){ 00020 this->lora = lora; 00021 setMutex(mutexLoRa); 00022 setQueue(queue); 00023 setPriority(priority); 00024 setStackSize(stackSize); 00025 setStackPointer(stackPointer); 00026 setState(SLEEPING); 00027 } 00028 00029 TaskLoRaMeasurement::~TaskLoRaMeasurement() { 00030 // TODO Auto-generated destructor stub 00031 } 00032 00033 void TaskLoRaMeasurement::measure(){ 00034 LoRaMeasurementMessage* loraMeasurementMessage = new LoRaMeasurementMessage(); 00035 00036 while(true){ 00037 mutexInterface->lock(osWaitForever); 00038 loraMeasurementMessage->setRssi(lora->getLastRssi()); 00039 loraMeasurementMessage->setSnr(lora->getLastSnr()); 00040 loraMeasurementMessage->setSpreadingFactor(lora->getSpreadingFactor()); 00041 loraMeasurementMessage->setTxPowerdBm(lora->getTxPowerdBm()); 00042 mutexInterface->unlock(); 00043 00044 queue->put(loraMeasurementMessage,osWaitForever); 00045 osDelay(LORA_MEASUREMENT_TASK_DELAY_MS); 00046 } 00047 00048 00049 } 00050 00051 void TaskLoRaMeasurement::setQueue(Queue<LoRaMeasurementMessage,LORA_MEASUREMENT_QUEUE_LENGHT>* queue){ 00052 this->queue = queue; 00053 }
Generated on Tue Jul 12 2022 21:35:27 by 1.7.2