commit 9ab9cc69b6b932906fe0a25fd772ddcec6f02a9b Author: Daniel Date: Fri May 13 19:02:25 2022 +0000 first commit diff --git a/led.cpp b/led.cpp new file mode 100644 index 0000000..b13e95c --- /dev/null +++ b/led.cpp @@ -0,0 +1,75 @@ +/* led.cpp */ +#include"led.h" +#include +#include +#include +#include + +#define LED_PATH "/sys/class/leds/beaglebone:green:usr" + +CLED::CLED(int ledNumber){ + this->ledNumber = ledNumber; //Solo para argumentos que sean numeros + std::ostringstream s; + s << LED_PATH << ledNumber; + path =std::string(s.str()); //convert to string +} + +void CLED::WriteLED(std::string filename, std::string value){ + std::ofstream fs; + fs.open((path+filename).c_str()); + fs << value; + fs.close(); +} + +void CLED::RemoveTrigger(){ + WriteLED("/trigger", "none"); +} + +void CLED::TurnOn(){ + std::cout << "LED" << ledNumber << "on" << std::endl; + RemoveTrigger(); + WriteLED("/brightness", "1"); +} + +void CLED::TurnOff(){ + std::cout << "LED" << ledNumber << "off" << std::endl; + RemoveTrigger(); + WriteLED("/brightness","0"); + +} + + +void CLED::blink(){ + std::cout << "LED" << ledNumber << "blinking" << std::endl; + WriteLED("/trigger", "timer"); + WriteLED("/delay_on", "50"); + WriteLED("/delay_off", "50"); + +} + +CLED::~CLED(){ + std::cout << "destroying LED " << path << std::endl; +} + + +int main(int argc, char* argv[]){ + if(argc!=2){ + std::cout << "Para usarse es: makeLEDS " << std::endl; + std::cout << "los comandos son on, off y blink" << std::endl; + } + std::cout << "Starting app" << std::endl; + std::string cmd(argv[1]); + + // se crean 4 objetos de LED y se ponen en el array para controlar todos los LEDS. + CLED leds[4]= {CLED(0), CLED(1), CLED(2), CLED(3) }; + + for(int i=0; i<=3; i++){ + if(cmd=="on")leds[i].TurnOn(); + else if(cmd=="off")leds[i].TurnOff(); + else if(cmd=="blink")leds[i].blink(); + else{std::cout << "comando invalido" << std::endl;} + } + std::cout << "programa terminado" << std::endl; + return 0; + +} diff --git a/led.h b/led.h new file mode 100644 index 0000000..3903cb9 --- /dev/null +++ b/led.h @@ -0,0 +1,25 @@ +/* class LED for manage BBB leds + * Daniel Llamas 14/03/2022*/ +#ifndef LED_H +#define LED_H +#include +#include +#include +#include + + +class CLED{ + private: + std::string path; + int ledNumber; + virtual void WriteLED(std::string filename, std::string value); + virtual void RemoveTrigger(); + public: + CLED(int ledNumber); //class creator + virtual void TurnOn(); + virtual void TurnOff(); + virtual void blink(); + virtual ~CLED(); //class deconstructor +}; + +#endif diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..be76604 --- /dev/null +++ b/main.cpp @@ -0,0 +1,11 @@ + + +//#include +using namespace std; + +int main(int argc, char* argv[]){ + CLED led1 = CLED(3); + led1.TurnOn(); + return 0; +} + diff --git a/makefile b/makefile new file mode 100644 index 0000000..19a0835 --- /dev/null +++ b/makefile @@ -0,0 +1,8 @@ +all: + g++ main.cpp -o led led.cpp + +clean: + rm led + +debug: + g++ -g main.cpp -o led led.cpp