Alberto Terrazas / Mbed 2 deprecated Lupe

Dependencies:   mbed

INTERFACE/INTERFACE.cpp

Committer:
papaco
Date:
2019-02-11
Revision:
0:b47aaa131075
Child:
1:4fb1de70cd4d

File content as of revision 0:b47aaa131075:

#include "mbed.h"
#include "INTERFACE.h"

INTERFACE::INTERFACE(PinName Button,PinName Red,PinName Green,PinName Blue,PinName TortillaPin,PinName TempReady):
    Start(Button,PullUp),
    StartRED(Red,0),
    StartGREEN(Green,0),
    StartBLUE(Blue,0),
    Tortilla(TortillaPin),
    TempLED(TempReady,0),
    NXP_LED1(LED1,0),
    NXP_LED2(LED2,0),
    NXP_LED3(LED3,0),
    NXP_LED4(LED4,0){
        //Led Memory
        redState=0;
        greenState=0;
        blueState=0;
        //Flasher control
        FlashTimer=0;
        Flash=true;
        StartLatch=Start.read();
        //Start Button
        StartTimer=0;
    return;
}//Constructor

void INTERFACE::Init(){
    setLED(1,1,0);
    TempLED=0;
    FlashTimer=0;
    Flash=true;
    return;
}//Init

void INTERFACE::Home(){
    setLED(1,1,0);
    TempLED=0;
    FlashTimer=0;
    Flash=true;
    return;
}//Home

bool INTERFACE::getStart(void){
    if(StartLatch!=Start.read())
        return true;
    else
        return false;
}//getStart

int INTERFACE::getFlashTimer(){
    return FlashTimer;
}//getTimer

void INTERFACE::setFlashTimer(int t){
    FlashTimer=t;
    return;
}//setTimer

bool INTERFACE::getFlash(void){
    return Flash;
}//getFlash

void INTERFACE::setFlash(bool state){
    Flash=state;
    FlashTimer=0;
    return;
}//setFlash

void INTERFACE::setLED(int r,int g,int b){
    StartRED=0;
    StartGREEN=0;
    StartBLUE=0;
    if(r>0)
        StartRED=1;
    if(g>0)
        StartGREEN=1;
    if(b>0)
        StartBLUE=1;
    redState=StartRED;
    greenState=StartGREEN;
    blueState=StartBLUE;
    return;
}//setLED

void INTERFACE::flash(){
    if((FlashTimer==FLASH_TIME)&&Flash){
        FlashTimer=0;
        if(redState)
            StartRED=!StartRED;
        if(greenState)
            StartGREEN=!StartGREEN;
        if(blueState)
            StartBLUE=!StartBLUE;
    }else
        FlashTimer++;
    NXP_LED1=StartRED;
    NXP_LED2=StartGREEN;
    NXP_LED3=StartBLUE;
    return;
}//flash

void INTERFACE::check(void){
    flash();
    if(StartTimer<200)
        StartTimer++;
    else{
        StartTimer=0;
        StartLatch=Start.read();
    }//else
}//check

float INTERFACE::getTortilla(){
    return Tortilla.read();
}//getTimer