LedHandler.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package control;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.io.OutputStreamWriter;
  7. public class LedHandler {
  8. private BufferedReader inp;
  9. private BufferedWriter out;
  10. private Process p;
  11. public LedHandler(){
  12. try {
  13. p = Runtime.getRuntime().exec("sudo python led.py");
  14. inp = new BufferedReader( new InputStreamReader(p.getInputStream()) );
  15. out = new BufferedWriter( new OutputStreamWriter(p.getOutputStream()) );
  16. }
  17. catch (Exception err) {
  18. err.printStackTrace();
  19. }
  20. }
  21. public void close(){
  22. try {
  23. inp.close();
  24. } catch (IOException e) {
  25. e.printStackTrace();
  26. }
  27. try {
  28. out.close();
  29. } catch (IOException e) {
  30. e.printStackTrace();
  31. }
  32. p.destroy();
  33. }
  34. /**
  35. * Set the color of a specific led
  36. * @param Pixel number of the led
  37. * @param Red value
  38. * @param Green value
  39. * @param Blue value
  40. * Remember: Button leds are GRB, normal ledstrip is RGB
  41. */
  42. public void setLed(int led, int r, int g, int b) {
  43. if(led<0)
  44. return;
  45. try {
  46. out.write( "1|" + led + "|" + r + "|" + g + "|" + b + "\n" );
  47. out.flush();
  48. }
  49. catch (Exception err) {
  50. err.printStackTrace();
  51. }
  52. }
  53. /**
  54. * Shows the (new) colors
  55. */
  56. public void show(){
  57. try {
  58. out.write( "0\n" );
  59. out.flush();
  60. }
  61. catch (Exception err) {
  62. err.printStackTrace();
  63. }
  64. }
  65. }