Subversion Repositories HomeAutomation

Rev

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

  1.  
  2. function DS18x20(type, name, id)
  3. {
  4.     this.CanService(type, name, id);
  5.    
  6.     this.myLastValue = new Array();
  7.  
  8. }
  9.  
  10. extend(DS18x20, CanService);
  11.  
  12. DS18x20.prototype.myReportInterval = null;
  13. DS18x20.prototype.myLastValue = null;
  14.  
  15. DS18x20.prototype.canMessageHandler = function(canMessage)
  16. {
  17. var self = this;
  18.     if (canMessage.getDirectionFlag() == "From_Owner")
  19.     {
  20.         switch (canMessage.getCommandName())
  21.         {
  22.         case "Temperature_Celsius":
  23.         //log(this.myName + ":" + this.myId + "> New value: " + canMessage.getData("Value") + "\n");
  24.         this.myLastValue[canMessage.getData("SensorId")] = canMessage.getData("Value");
  25.         //this.callEvent("newValue", canMessage.getData("SensorId"));
  26. var dataArray = new Array();
  27. dataArray["service"] = self;
  28. dataArray["sensor"] = canMessage.getData("SensorId");
  29. dataArray["value"] = canMessage.getData("Value");
  30. dataArray["moduleName"] = canMessage.getModuleName();
  31. dataArray["moduleId"] = canMessage.getModuleId();
  32. this.callEvent("newValue", dataArray);
  33.         break;
  34.        
  35.         case "Sensor_Report_Interval":
  36.         log(this.myName + ":" + this.myId + "> New report interval: " + canMessage.getData("Time") + "\n");
  37.         this.myReportInterval = canMessage.getData("Time");
  38.         break;
  39.         }
  40.     }
  41.    
  42.     this.CanService.prototype.canMessageHandler.call(this, canMessage);
  43. }
  44.  
  45. DS18x20.prototype.getValue = function(sensorId)
  46. {
  47.     return this.myLastValue[sensorId];
  48. }
  49.  
  50. DS18x20.prototype.setReportInterval = function(time)
  51. {
  52.     log("Setting report int\n");
  53.     var canMessage = new CanMessage("sns", "To_Owner", this.myName, this.myId, "Sensor_Report_Interval");
  54.     canMessage.setData("Time", time);
  55.     sendMessage(canMessage);
  56. }
  57.