99 lines
2.1 KiB
Java
99 lines
2.1 KiB
Java
package control;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.BufferedWriter;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.io.OutputStreamWriter;
|
|
|
|
public class LedHandler {
|
|
private BufferedReader inp;
|
|
private BufferedWriter out;
|
|
private Process p;
|
|
|
|
public LedHandler(){
|
|
try {
|
|
p = Runtime.getRuntime().exec("sudo python led.py");
|
|
inp = new BufferedReader( new InputStreamReader(p.getInputStream()) );
|
|
out = new BufferedWriter( new OutputStreamWriter(p.getOutputStream()) );
|
|
|
|
//setLed(15, 100, 100, 100);
|
|
//strobo();
|
|
}
|
|
catch (Exception err) {
|
|
err.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void close(){
|
|
try {
|
|
inp.close();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
try {
|
|
out.close();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
p.destroy();
|
|
}
|
|
|
|
|
|
/**
|
|
* Set the color of a specific led
|
|
* @param Pixel number of the led
|
|
* @param Red value
|
|
* @param Green value
|
|
* @param Blue value
|
|
* Remember: Button leds are GRB, normal ledstrip is RGB
|
|
*/
|
|
public void setLed(int led, int r, int g, int b) {
|
|
if(led<0)
|
|
return;
|
|
try {
|
|
System.out.println("Set the led with " + r);
|
|
out.write( "1|" + led + "|" + r + "|" + g + "|" + b + "\n" );
|
|
out.flush();
|
|
}
|
|
catch (Exception err) {
|
|
err.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Shows the (new) colors
|
|
*/
|
|
public void show(){
|
|
try {
|
|
out.write( "0\n" );
|
|
out.flush();
|
|
}
|
|
catch (Exception err) {
|
|
err.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void strobo(){
|
|
boolean on = true;
|
|
while(true){
|
|
if(on){
|
|
for(int i = 1; i < 66; i++){
|
|
setLed(i, 0, 0, 0);
|
|
}
|
|
}else{
|
|
for(int i = 1; i < 66; i++){
|
|
setLed(i, 255, 255, 255);
|
|
}
|
|
}
|
|
on = !on;
|
|
show();
|
|
try {
|
|
Thread.sleep(100);
|
|
} catch (InterruptedException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|