commit 8d971736575272588387ff718d941eeb14467d49 Author: Gustavo Martinez Date: Wed May 11 17:27:03 2022 -0500 First commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..727c8bd --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +led diff --git a/led.cpp b/led.cpp new file mode 100644 index 0000000..303ecbc --- /dev/null +++ b/led.cpp @@ -0,0 +1,49 @@ +/* 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 Turn On" << ledNumber << "on" << std::endl; + RemoveTrigger(); + WriteLED("/brightness", "1"); +} + +void CLED::TurnOff(){ + std::cout << "LED Turn Off" << ledNumber << "off" << std::endl; + RemoveTrigger(); + WriteLED("/brightness", "0"); +} + +void CLED::BlinkLED(){ + std::cout << "LED blinking" << ledNumber << "blinking" << std::endl; + WriteLED("/trigger", "timer"); + WriteLED("/delay_on", "50"); + WriteLED("/delay_off", "50"); +} + +CLED::~CLED(){ + std::cout << "destroying LED " << path << std::endl; +} \ No newline at end of file diff --git a/led.h b/led.h new file mode 100644 index 0000000..3b56652 --- /dev/null +++ b/led.h @@ -0,0 +1,25 @@ +/* class LED for manage BBB leds + * Gustavo Mart�nez Mondrag�n 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 ~CLED(); //class deconstructor + virtual void TurnOn(); + virtual void TurnOff(); + virtual void BlinkLED(); +}; + +#endif diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..0fcdf25 --- /dev/null +++ b/main.cpp @@ -0,0 +1,26 @@ +#include"led.h" +#include +using namespace std; + +int main(int argc, char* argv[]){ + CLED led1 = CLED(3); + string cmd(argv[1]); + + if(argc!=2) + std::cout << "Incorrect number of arguments" << std::endl; + + if(cmd=="on") + led1.TurnOn(); + + else if(cmd=="off") + led1.TurnOff(); + + else if(cmd=="blink") + led1.BlinkLED(); + + else + cout << "Invalid command" << endl; + + 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