Subversion Repositories HomeAutomation

Rev

Blame | Last modification | View Log | SVN | RSS feed

  1.  
  2. function PCAPWM(type, name, id)
  3. {
  4.     this.CanService(type, name, id);
  5.     this.myLastValue = new Array();
  6. }
  7.  
  8. extend(PCAPWM, CanService);
  9.  
  10. PCAPWM.prototype.currentValue = 0;
  11. PCAPWM.prototype.myReportInterval = null;
  12. PCAPWM.prototype.myLastValue = null;
  13.  
  14. PCAPWM.prototype.canMessageHandler = function(canMessage)
  15. {
  16.     var self = this;
  17.     if (canMessage.getDirectionFlag() == "From_Owner")
  18.     {
  19.         switch (canMessage.getCommandName())
  20.         {
  21.  
  22.         case "Pwm":
  23.                 this.currentValue = canMessage.getData("Value")/39;
  24.                 var dataArray = new Array();
  25.                 dataArray["service"] = self;
  26.                 dataArray["channel"] = canMessage.getData("Id");
  27.                 dataArray["currentValue"] = (canMessage.getData("Value")/39);
  28.                 dataArray["moduleName"] = canMessage.getModuleName();
  29.                 dataArray["moduleId"] = canMessage.getModuleId();
  30.                 this.callEvent("newValue", dataArray);
  31.                 //log(this.myName + ":" + this.myId + "> Netstatus, " + connectString + frequencyString + "\n");
  32.             break;
  33.  
  34.         /*case "PCAPWM":
  35.         log(this.myName + ":" + this.myId + "> New value: " + canMessage.getData("Value") + "\n");
  36.         this.myLastValue[canMessage.getData("Id")] = canMessage.getData("Value");
  37.         this.callEvent("newValue", canMessage.getData("Id"));
  38.         break;
  39.        
  40.         case "Report_Interval":
  41.         log(this.myName + ":" + this.myId + "> New report interval: " + canMessage.getData("Time") + "\n");
  42.         this.myReportInterval = canMessage.getData("Time");
  43.         break;*/
  44.         }
  45.     }
  46.    
  47.     this.CanService.prototype.canMessageHandler.call(this, canMessage);
  48. }
  49.  
  50. PCAPWM.prototype.getValue = function(sensorId)
  51. {
  52.     return this.myLastValue[sensorId];
  53. }
  54.  
  55.  
  56. /*hwPWM.prototype.setReportInterval = function(time)
  57. {
  58.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "Report_Interval");
  59.     canMessage.setData("Time", time);
  60.     sendMessage(canMessage);
  61. }*/
  62.  
  63. /**
  64. pwmValue in % with 0.01 resolution (Example: 55.25%)
  65. */
  66. PCAPWM.prototype.setPWMValue = function(pwmvalue, sensorId)
  67. {
  68.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "Pwm");
  69.     canMessage.setData("Id", sensorId);
  70.     canMessage.setData("Value", pwmvalue*100);
  71.     sendMessage(canMessage);
  72.    
  73.     this.myLastValue[sensorId] = pwmvalue;
  74. }
  75. /*hwPWM.prototype.configure = function(pwmPeriod, pwmDefaultValue, DefaultState, StartUpState)
  76. {
  77.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "CONFIG");
  78.     canMessage.setData("pwmPeriod", pwmPeriod);
  79.     canMessage.setData("pwmDefaultValue", pwmDefaultValue);
  80.     canMessage.setData("DefaultState", DefaultState);
  81.     canMessage.setData("StartUpState", StartUpState);
  82.     sendMessage(canMessage);
  83. }*/
  84.  
  85. PCAPWM.prototype.startFade = function(channel, speed, direction)
  86. {
  87.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "Start_Fade");
  88.     canMessage.setData("Channel", channel);
  89.     canMessage.setData("Speed", speed);
  90.     canMessage.setData("Direction", direction);
  91.     sendMessage(canMessage);
  92. }
  93.  
  94. PCAPWM.prototype.stopFade = function(channel)
  95. {
  96.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "Stop_Fade");
  97.     canMessage.setData("Channel", channel);
  98.     sendMessage(canMessage);
  99. }
  100.  
  101. PCAPWM.prototype.absFade = function(channel, speed, endValue)
  102. {
  103. log("sending: "+channel+" "+speed+" "+endValue*39+"\n");   
  104. var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "Abs_Fade");
  105.     canMessage.setData("Channel", channel);
  106.     canMessage.setData("Speed", speed);
  107.     canMessage.setData("EndValue", endValue*39);
  108.     sendMessage(canMessage);
  109. }
  110.  
  111. PCAPWM.prototype.relFade = function(channel, speed, direction, steps)
  112. {
  113.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "Rel_Fade");
  114.     canMessage.setData("Channel", channel);
  115.     canMessage.setData("Speed", speed);
  116.     canMessage.setData("Direction", direction);
  117.     canMessage.setData("Steps", steps*39);
  118.     sendMessage(canMessage);
  119. }
  120.  
  121. PCAPWM.prototype.demo = function(channel, speed, steps)
  122. {
  123.     var canMessage = new CanMessage("act", "To_Owner", this.myName, this.myId, "Demo");
  124.     canMessage.setData("Channel", channel);
  125.     canMessage.setData("Speed", speed);
  126.     canMessage.setData("Steps", steps*39);
  127.     sendMessage(canMessage);
  128. }
  129.  
  130.