/* 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 << "Para encender el LED utilice: ./leds on" << std::endl; std::cout << "Para apagar el LED utilice: ./leds off" << std::endl; std::cout << "Para hacer parpadear el LED utilice: sudo ./leds blink" << std::endl; } } std::cout << "programa terminado" << std::endl; return 0; }