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

  1. /*led.cpp*/
  2. #include"led.h"
  3. #include<iostream>
  4. #include<fstream>
  5. #include<string>
  6. #include<sstream>
  7. #define LED_PATH "/sys/class/leds/beaglebone:green:usr"
  8. LED::LED(int number){
  9. this->number = number;
  10. std::ostringstream s;
  11. s << LED_PATH << number; // LED number to the Path
  12. path = std::string(s.str()); // convert to string
  13. }
  14. void LED::writeLED(std::string filename, std::string value){
  15. std::ofstream fs;
  16. fs.open((path + filename).c_str());
  17. fs << value;
  18. fs.close();
  19. }
  20. void LED::removeTrigger(){
  21. writeLED("/trigger", "none");
  22. }
  23. void LED::turnOn(){
  24. std::cout << "Turning LED" << number << "on" << std::endl;
  25. removeTrigger();
  26. writeLED("/brightness", "1");
  27. }
  28. void LED::turnOff(){
  29. std::cout << "Turning LED" << number << "off" << std::endl;
  30. removeTrigger();
  31. writeLED("/brightness", "0");
  32. }
  33. void LED::flash(std::string delayms ="50"){
  34. std::cout << "Making LED" << number << "flash" << std::endl;
  35. writeLED("/trigger", "timer");
  36. writeLED("/delay_on", delayms);
  37. writeLED("/delay_off", delayms);
  38. }
  39. void LED::outputState(){
  40. std::ifstream fs;
  41. fs.open((path + "/trigger").c_str());
  42. std::string line;
  43. while(getline(fs,line)) std::cout << line <<std::endl;
  44. fs.close();
  45. }
  46. LED::~LED(){
  47. std::cout << "!!Destroying the LED with path: " << path << std::endl;
  48. }