Led-cpp BBB
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

57 lines
1.3 KiB

/*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;
}