Subversion Repositories HomeAutomation

Rev

Rev 1032 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1.  
  2. function KS0108(type, name, id)
  3. {
  4.     this.CanService(type, name, id);
  5. }
  6.  
  7. extend(KS0108, CanService);
  8.  
  9. KS0108.prototype.myBacklightStrength = null;
  10.  
  11. KS0108.prototype.canMessageHandler = function(canMessage)
  12. {
  13.     if (canMessage.getDirectionFlag() == "From_Owner")
  14.     {
  15.         switch (canMessage.getCommandName())
  16.         {
  17.         case "LCD_Clear":
  18.         break;
  19.        
  20.         case "LCD_Cursor":
  21.         break;
  22.        
  23.         case "LCD_Text":
  24.         break;
  25.        
  26.         case "LCD_TextAt":
  27.         break;
  28.        
  29.         case "LCD_Backlight":
  30.         this.myBacklight = canMessage.getData("Strength");
  31.         log(this.myName + ":" + this.myId + "> Reported backlight strength: " + this.myBacklight + "\n");
  32.         break;
  33.         }
  34.     }
  35.    
  36.     this.CanService.prototype.canMessageHandler.call(this, canMessage);
  37. }
  38.  
  39. KS0108.prototype.onlineHandler = function()
  40. {
  41.     this.CanService.prototype.onlineHandler.call(this);
  42.    
  43.     // Request backlight strength
  44.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "LCD_Backlight");
  45.     sendMessage(canMessage);
  46. }
  47.  
  48. KS0108.prototype.printText = function(x, y, text, inverted, transparent)
  49. {
  50.     while (text.length > 0)
  51.     {
  52.         var text6 = text.substr(0, 6);
  53.  
  54.         var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "LCD_TextAt");
  55.         canMessage.setData("Inverted", inverted);
  56.         canMessage.setData("Transparent", transparent);
  57.         canMessage.setData("X", x);
  58.         canMessage.setData("Y", y);
  59.         canMessage.setData("Text", text6);
  60.         sendMessage(canMessage);
  61.        
  62.         x += text6.length;
  63.         text = text.slice(text6.length);
  64.     }
  65. }
  66.  
  67. KS0108.prototype.clearScreen = function(inverted)
  68. {
  69.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "LCD_Clear");
  70.     canMessage.setData("Inverted", inverted);
  71.     sendMessage(canMessage);
  72. }
  73.  
  74. KS0108.prototype.setBacklight = function(strength)
  75. {
  76.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "LCD_Backlight");
  77.     canMessage.setData("Strength", strength);
  78.     sendMessage(canMessage);
  79. }
  80.  
  81. KS0108.prototype.getBacklight = function()
  82. {
  83.     return this.myBacklight;
  84. }
  85.  
  86. KS0108.prototype.drawLine = function(xStart, yStart , xEnd, yEnd, inverted)
  87. {
  88.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "LCD_DrawLine");
  89.     canMessage.setData("Inverted", inverted);
  90.     canMessage.setData("X1", xStart);
  91.     canMessage.setData("Y1", yStart);
  92.     canMessage.setData("X2", xEnd);
  93.     canMessage.setData("Y2", yEnd);
  94.     sendMessage(canMessage);
  95. }
  96.  
  97. KS0108.prototype.drawCircle = function(xCentre, yCentre , radius , inverted)
  98. {
  99.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "LCD_DrawCircle");
  100.     canMessage.setData("Inverted", inverted);
  101.     canMessage.setData("Xcentre", xCentre);
  102.     canMessage.setData("Ycentre", yCentre);
  103.     canMessage.setData("Radius", radius);
  104.     sendMessage(canMessage);
  105. }
  106.  
  107. KS0108.prototype.invertRect = function(x, y , width, height)
  108. {
  109.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "LCD_InvertRect")
  110.     canMessage.setData("X", x);
  111.     canMessage.setData("Y", y);
  112.     canMessage.setData("Width", width);
  113.     canMessage.setData("Height", height);
  114.     sendMessage(canMessage);
  115. }
  116.  
  117. KS0108.prototype.DrawRect = function(x, y , width, height, inverted, fill, radius)
  118. {
  119.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "LCD_DrawRect")
  120.     canMessage.setData("X", x);
  121.     canMessage.setData("Y", y);
  122.     canMessage.setData("Width", width);
  123.     canMessage.setData("Height", height);
  124.     canMessage.setData("Inverted", inverted);
  125.     canMessage.setData("Fill", fill);
  126.     canMessage.setData("Radius", radius);
  127.     sendMessage(canMessage);
  128. }
  129.