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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TaskTesla.cpp Source File

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 }