Subversion Repositories HomeAutomation

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. /* the display object who created the menu item */
  2. DimmerMenuItem.prototype.parentDisplay = null;
  3.  
  4. DimmerMenuItem.prototype.dimmers = null;
  5. DimmerMenuItem.prototype.mode = 0;
  6. DimmerMenuItem.prototype.currentDimmerItem = 0;
  7.  
  8. function DimmerMenuItem(parentDisplay, hd44789Object)
  9. {
  10.     var self = this;
  11.     this.parentDisplay = parentDisplay;
  12.     this.display = hd44789Object;  
  13. }
  14.  
  15. /* the display object who created the menu item */
  16. DimmerMenuItem.prototype.parentDisplay = null;
  17. /* the display that we are writing to */
  18. DimmerMenuItem.prototype.display = null;
  19.  
  20. /* How often the display shall update [ms]*/
  21. DimmerMenuItem.prototype.UpdateTime = 5000;
  22.  
  23. /* what DimmerMenuItem is left of this item, if used */
  24. DimmerMenuItem.prototype.LeftItem = null;
  25. /* what DimmerMenuItem is right of this item, if used */
  26. DimmerMenuItem.prototype.RightItem = null;
  27. /* what DimmerMenuItem is after of this item, if used */
  28. DimmerMenuItem.prototype.PressEnterItem = null;
  29.  
  30. /*
  31. Standard events can be:
  32. left, right, enter, back, up, down....
  33. */
  34. DimmerMenuItem.prototype.processEvent = function (event)
  35. {
  36.     switch (event)
  37.     {
  38.     case "right":
  39.         if (this.mode == 0) {
  40.             this.parentDisplay.changeToRight();
  41.         } else if (this.mode == 1){
  42.             this.currentDimmerItem--;
  43.             if (this.currentDimmerItem == -1) {
  44.                 this.mode = 2;
  45.             }
  46.         } else if (this.mode == 3){
  47. this.dimmers[this.currentDimmerItem]['service'].relFade(this.dimmers[this.currentDimmerItem]['channel'],132, "Decrease", 25);
  48.         } else {
  49. this.mode = 1;
  50. this.currentDimmerItem= this.dimmers.length-1;
  51. }
  52.         break;
  53.  
  54.     case "left":
  55.         if (this.mode == 0) {
  56.             this.parentDisplay.changeToLeft();
  57.         } else if (this.mode == 1){
  58.             this.currentDimmerItem++;
  59.             if (this.currentDimmerItem == this.dimmers.length) {
  60.                 this.mode = 2;
  61.             }
  62.         } else if (this.mode == 3){
  63. this.dimmers[this.currentDimmerItem]['service'].relFade(this.dimmers[this.currentDimmerItem]['channel'],132, "Increase", 25);
  64.         } else {
  65. this.mode = 1;
  66. this.currentDimmerItem=0;
  67. }
  68.         break;
  69.     case "enter":
  70. if (this.mode == 0) {
  71.             if (this.dimmers.length > 0) {
  72.                 this.currentDimmerItem = 0;
  73.                 this.mode = 1;
  74.             }
  75.         } else if (this.mode == 1){
  76.             this.mode = 3;
  77.         } else if (this.mode == 3) {
  78.             this.mode = 1;
  79.         } else {
  80.             this.mode = 0;
  81.         }
  82.         break;
  83.     }
  84. }
  85.  
  86. DimmerMenuItem.prototype.onEnter = function ()
  87. {
  88. this.dimmers = getDimmerList();
  89. this.mode = 0;
  90.     this.display.clearScreen();
  91. }
  92. DimmerMenuItem.prototype.update = function ()
  93. {
  94.     this.display.clearScreen();
  95. if (this.mode != 2) {
  96.     for (var i = 0; i < this.dimmers.length && i < 4; i++) {
  97. if (this.mode == 1 && this.currentDimmerItem == i) {
  98. this.display.printText(0, i, this.parentDisplay.lcdCenterText("-"+ this.dimmers[i]['name'] + " " +getDimmerValue(this.dimmers[i]['name'])+"."));
  99. } else if (this.mode == 3 && this.currentDimmerItem == i) {
  100. this.display.printText(0, i, this.parentDisplay.lcdCenterText("<>"+ this.dimmers[i]['name'] + " " +getDimmerValue(this.dimmers[i]['name'])+"."));
  101. } else {
  102. this.display.printText(0, i, this.parentDisplay.lcdCenterText(""+ this.dimmers[i]['name'] + " " +getDimmerValue(this.dimmers[i]['name'])+"."));
  103. }
  104.  
  105. }
  106. } else {
  107. this.display.printText(0, i, this.parentDisplay.lcdCenterText("Tillbaka"));
  108. }
  109. }
  110.  
  111. DimmerMenuItem.prototype.onExit = function ()
  112. {
  113.     this.mode = 0;
  114. }
  115.  
  116.  
  117.