| 
						
						
						
					 | 
				
				 | 
				
					@ -0,0 +1,57 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/*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; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} |