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
TaskTesla.cpp
00001 /* 00002 * TaskTesla.cpp 00003 * 00004 * Created on: 01.06.2016 00005 * Author: Adrian 00006 */ 00007 00008 #include "TaskTesla.h " 00009 00010 TaskTesla::TaskTesla(MPU9250* mpu9250,Mutex* mutexI2C, Queue<MPU9250TeslaMessage,TESLA_QUEUE_LENGHT>* queue){ 00011 this->mpu9250 = mpu9250; 00012 setMutex(mutexI2C); 00013 setQueue(queue); 00014 } 00015 00016 TaskTesla::TaskTesla(MPU9250* mpu9250,rtos::Mutex* mutexI2C, 00017 rtos::Queue<MPU9250TeslaMessage,TESLA_QUEUE_LENGHT>* queue, 00018 osPriority priority, uint32_t stackSize, unsigned char *stackPointer){ 00019 this->mpu9250 = mpu9250; 00020 setMutex(mutexI2C); 00021 setQueue(queue); 00022 setPriority(priority); 00023 setStackSize(stackSize); 00024 setStackPointer(stackPointer); 00025 setState(SLEEPING); 00026 } 00027 00028 TaskTesla::~TaskTesla() { 00029 // TODO Auto-generated destructor stub 00030 } 00031 00032 void TaskTesla::measure(){ 00033 MPU9250TeslaMessage mpu9250TeslaMessage; 00034 00035 while(true){ 00036 mutexInterface->lock(osWaitForever); 00037 mpu9250TeslaMessage.setXTesla(mpu9250->getXAxisTesla()); 00038 mpu9250TeslaMessage.setYTesla(mpu9250->getYAxisTesla()); 00039 mpu9250TeslaMessage.setZTesla(mpu9250->getZAxisTesla()); 00040 mutexInterface->unlock(); 00041 00042 queue->put(&mpu9250TeslaMessage,osWaitForever); 00043 osDelay(TESLA_TASK_DELAY_MS); 00044 } 00045 } 00046 00047 void TaskTesla::setQueue(Queue<MPU9250TeslaMessage,TESLA_QUEUE_LENGHT>* queue){ 00048 this->queue = queue; 00049 }
Generated on Tue Jul 12 2022 21:35:27 by 1.7.2