refactor xbee complet

Dependencies:   mbed-rtos mbed

Fork of Repo_Noeud_Mobile by Projet_S5

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers FlexSensor.cpp Source File

FlexSensor.cpp

00001 #include "FlexSensor.h"
00002 
00003 Serial f_pc(USBTX, USBRX);
00004 DigitalOut led1(LED1);
00005 DigitalOut led2(LED2);
00006 DigitalOut led3(LED3);
00007 
00008 FlexSensor::FlexSensor() //default constructor
00009 {
00010     FlexSensor(p18, p19, p20, p17);
00011 }
00012 
00013 FlexSensor::FlexSensor(PinName pinIndex, PinName pinMajeur, PinName pinAnnulaire, PinName pinReference)
00014 {
00015     this->AinIndex = new AnalogIn(pinIndex);
00016     this->AinMajeur = new AnalogIn(pinMajeur);
00017     this->AinAnnulaire = new AnalogIn(pinAnnulaire);
00018     this->AinRef = new AnalogIn(pinReference);
00019 
00020     flex_data.index = 0x01;
00021     flex_data.majeur = 0x01;
00022     flex_data.annulaire = 0x01;
00023 
00024 }
00025 
00026 FlexSensor::~FlexSensor()
00027 {
00028     delete this->AinIndex;
00029     delete this->AinMajeur;
00030     delete this->AinAnnulaire;
00031     delete this->AinRef;
00032 }
00033 
00034 void FlexSensor::Run()
00035 {
00036     while(true) {
00037         mutex.lock();
00038         unsigned short Vref = AinRef->read_u16();
00039         AinIndex->read_u16() > Vref ? flex_data.index = 1 : flex_data.index = 0;
00040         AinMajeur->read_u16() > Vref ? flex_data.majeur = 1 : flex_data.majeur = 0;
00041         AinAnnulaire->read_u16() > Vref ? flex_data.annulaire = 1 : flex_data.annulaire = 0;
00042 
00043         led1 = flex_data.index;
00044         led2 = flex_data.majeur;
00045         led3 = flex_data.annulaire;
00046         mutex.unlock();
00047     }
00048 }
00049 
00050 flex_t FlexSensor::get_flex_values()
00051 {
00052     mutex.lock();
00053     flex_t result = flex_data;
00054     mutex.unlock();
00055 
00056     return result;
00057 }