Local library

Dependencies:   WakeUp PinDetect

Dependents:   Inductive_Sensor Inductive_Sensor_Jasper Inductive_Sensor_3

Bob.cpp

Committer:
bobgiesberts
Date:
2016-01-18
Revision:
3:68c005d410e1
Parent:
2:681ecede6dcb
Child:
4:9c3c8eb56a2b

File content as of revision 3:68c005d410e1:

/**
* @file Bob.cpp
* @brief just so functions to communicate with the
* processor board for the LDC1101
*
* @author Bob Giesberts
*
* @date 2015-12-18
*/

#include "Bob.h"
#include "mbed.h"
#include "WakeUp.h"


Bob::Bob(PinName redled, PinName greenled, PinName sd_enable, PinName sd_present, PinName battery, PinName V_Det) : _red(redled), _green(greenled), _sd_enable(sd_enable)
{
    _red = 0;
    _green = 0;    
    
    _sd_enable = 1;    

    _sd_card_detect = new DigitalIn( sd_present ); 
    _sd_card_detect->mode( PullUp );

    _batt = new AnalogIn( battery );
    
    _V_Det = new DigitalIn( V_Det ); 
    _V_Det->mode( PullUp );
    
    // WakeUp::calibrate();
}

bool Bob::checkSD(void)
{
    _sd_enable.write(1);
    return !_sd_card_detect->read();
}

void Bob::sleep(int s)
{
     _sd_enable.write(0);  // unpower SD-card + unpower sensor
     WakeUp::calibrate();
     WakeUp::set( s );
     deepsleep();
}

void Bob::wakeup(void)
{
    _sd_enable.write(1);   // power SD-card + unpower sensor
    wait(0.3);
}

void Bob::SDoff(void)
{
    _sd_enable.write(0);
}

void Bob::SDon(void)
{
    _sd_enable.write(1);
}

// battery voltage should be 3.1V (min) < 3.7V (typ) < 4.22V (max)
float Bob::battery(void)
{
    return (float)_batt->read() * 3.0 * 2.0;
}

void Bob::flash( int n )
{
    _red = 0;
    _green = 0;
    for(int i=0; i<n*2; i++){
        _red = 1-_red; _green = 1-_green; wait(0.2);
    }
}

void Bob::flash_red( int n )
{
    _red = 0;
    for(int i=0; i<n*2; i++){
        _red = 1-_red; wait(0.2);
    }
}

void Bob::flash_green( int n )
{
    _green = 0;
    for(int i=0; i<n*2; i++){
        _green = 1-_green; wait(0.2);
    }
}

void Bob::red(void)   { _red   = 1; }
void Bob::green(void) { _green = 1; }

void Bob::redoff(void)   { _red   = 0; }
void Bob::greenoff(void) { _green = 0; }