| /*led.cpp*/ | |
| #include"led.h" | |
| #include<iostream> | |
| #include<fstream> | |
| #include<string> | |
| #include<sstream> | |
|  | |
| #define LED_PATH "/sys/class/leds/beaglebone:green:usr" | |
|  | |
| LED::LED(int number){ | |
|   this->number = number; | |
|   std::ostringstream s; | |
|   s << LED_PATH << number; // LED number to the Path | |
|   path = std::string(s.str()); // convert to string | |
| } | |
| 
 | |
| void LED::writeLED(std::string filename, std::string value){ | |
|   std::ofstream fs; | |
|   fs.open((path + filename).c_str()); | |
|   fs << value; | |
|   fs.close(); | |
| } | |
| 
 | |
| void LED::removeTrigger(){ | |
|   writeLED("/trigger", "none"); | |
| } | |
| 
 | |
| void LED::turnOn(){ | |
|   std::cout << "Turning LED" << number << "on" << std::endl; | |
|   removeTrigger(); | |
|   writeLED("/brightness", "1"); | |
| } | |
| 
 | |
| void LED::turnOff(){ | |
|   std::cout << "Turning LED" << number << "off" << std::endl; | |
|   removeTrigger(); | |
|   writeLED("/brightness", "0"); | |
| } | |
| 
 | |
| void LED::flash(std::string delayms ="50"){ | |
|   std::cout << "Making LED" << number << "flash" << std::endl; | |
|   writeLED("/trigger", "timer"); | |
|   writeLED("/delay_on", delayms); | |
|   writeLED("/delay_off", delayms); | |
| } | |
| 
 | |
| void LED::outputState(){ | |
|   std::ifstream fs; | |
|   fs.open((path + "/trigger").c_str()); | |
|   std::string line; | |
|   while(getline(fs,line)) std::cout << line <<std::endl; | |
|   fs.close(); | |
| } | |
| 
 | |
| LED::~LED(){ | |
|   std::cout << "!!Destroying the LED with path: " << path << std::endl; | |
| }
 |