Subversion Repositories HomeAutomation

Rev

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

  1.  
  2. pages.PID = {
  3.   init: function(pageInstance)
  4.   {
  5.     this.pageshow = function(arg) {
  6.     /* Request the initial value from the server */
  7.       requestServerDataUpdate();
  8.       requestServerData();
  9.       /* Set timer for continious polling of the current values */
  10.       pageInstance.pollTimer = setInterval(reloadImage, 60000);
  11.       pageInstance.pollTimer2 = setInterval(requestServerData, 5000);
  12.       reloadImage();
  13.     }
  14.    
  15.     this.pagehide = function(arg) {
  16.       clearInterval(pageInstance.pollTimer);
  17.       clearInterval(pageInstance.pollTimer2);
  18.     }
  19.    
  20.    
  21.     /* List to keep referenses to all the different slider elements */
  22.     pageInstance.pagePIDElements = {};
  23.    
  24.    
  25.     /* Function to update values based on new server data */
  26.     function handleServerDataUpdate(jsonData)
  27.     {
  28.       /* Loop through all results */
  29.       jQuery.each(jsonData, function(alias, data)
  30.       {
  31.       /* Loop through all values */
  32.       jQuery.each(data, function(name, value)
  33.       {
  34.         /* Check if the value is simple or complex */
  35.         if (typeof value.value != "string")
  36.         {
  37.           jQuery.each(value.value, function(name2, value2)
  38.           {
  39.         if (name2 == "Reference")
  40.         {
  41.             pageInstance.pageInputElements["reference"].find("input").val(value2)
  42.         }
  43.         /*if (name2 == "K_P")
  44.         {
  45.             pageInstance.pageInputElements["kp"].find("input").val(value2)
  46.         }
  47.         if (name2 == "K_I")
  48.         {
  49.             pageInstance.pageInputElements["ki"].find("input").val(value2)
  50.         }
  51.         if (name2 == "K_D")
  52.         {
  53.             pageInstance.pageInputElements["kd"].find("input").val(value2)
  54.         }
  55.         if (name2 == "TimeUnit")
  56.         {
  57.             pageInstance.pageInputElements["timeunit"].find("input").val(value2)
  58.         }
  59.         if (name2 == "RegulatorTime")
  60.         {
  61.             pageInstance.pageInputElements["time"].find("input").val(value2)
  62.         }
  63.         */
  64.           });
  65.         }
  66.       });
  67.       });
  68.     }
  69.    
  70.    
  71.     /* Function to update values based on new server data */
  72.     function handleServerData(jsonData)
  73.     {
  74.       var g1,g2,g3,g4;
  75.       /* Loop through all results */
  76.       jQuery.each(jsonData, function(alias, data)
  77.       {
  78.       /* Loop through all values */
  79.       jQuery.each(data, function(name, value)
  80.       {
  81.         /* Check if the value is simple or complex */
  82.         if (typeof value.value != "string")
  83.         {
  84.           jQuery.each(value.value, function(name2, value2)
  85.           {
  86.         if (name2 == "Reference")
  87.         {
  88.             g2 = value2;
  89.         }
  90.         if (name2 == "Measurment")
  91.         {
  92.             g1 = value2;
  93.         }
  94.         if (name2 == "PWM")
  95.         {
  96.             g3 = value2;
  97.         }
  98.         if (name2 == "Sum")
  99.         {
  100.             g4 = value2;
  101.         }
  102.           });
  103.         }
  104.       });
  105.       });
  106.       pageInstance.pageInputElements["grid"].html($("#page-PID-grid-template").tmpl({ grid1: "Uppmätt:  "+g1, grid2: "Referens:  "+g2,grid3: "PWM:  "+g3,grid4: "Förändring:  "+g4 }));
  107.     }
  108.    
  109.    
  110.     /* Function to request new values from the server */
  111.     function requestServerDataUpdate()
  112.     {
  113.       sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance.alias + "'));", handleServerDataUpdate);
  114.     }
  115.    
  116.     /* Function to request new values from the server */
  117.     function requestServerData()
  118.     {
  119.       sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance.alias + "'));", handleServerData);
  120.     }
  121.    
  122.     function reloadImage()
  123.     {
  124.     pageInstance.pageImageElements["regulatorbild"].find("img").attr('src', pageInstance.picture + '?' + Math.random());
  125.     }
  126.    
  127.     var name = pageInstance.alias;
  128.    
  129.     if (aliasNames[pageInstance.alias])
  130.     {
  131.       name = aliasNames[pageInstance.alias];
  132.     }
  133.    
  134.     /* Create the PID HTML from the template and add it to the DOM */
  135.    
  136.     pageInstance.pageInputElements = {};
  137.     pageInstance.pageImageElements = {};
  138.     pageInstance.pageButtonElements = {};
  139.    
  140.  
  141.    
  142.     pageInstance.pageInputElements["reference"] = $("#page-PID-input-button-template").tmpl({ input_name: "Referens:  " ,button: "Spara referens"}).appendTo(pageInstance.pageContentElement).trigger("create");
  143.     /*.find("button").on("click", function(event)
  144.     {
  145.       sendCommand("JSON.stringify(PID_setValue("+pageInstance.alias+", '26'));");
  146.       event.preventDefault();
  147.     });
  148.     */
  149.     pageInstance.pageInputElements["reference"].find("button").on("click", function(event)
  150.     {
  151.       sendCommand("JSON.stringify(PID_setValue('" + pageInstance.alias + "', '"+pageInstance.pageInputElements["reference"].find("input").val()+"'));");
  152.       //sendCommand("JSON.stringify(PID_setValue("+pageInstance.alias+", '26'));");
  153.       event.preventDefault();
  154.     });
  155.    
  156.    
  157.     pageInstance.pageImageElements["regulatorbild"] = $("#page-PID-image-template").tmpl({url: pageInstance.picture}).appendTo(pageInstance.pageContentElement).trigger("create");
  158.    
  159.     pageInstance.pageInputElements["grid"] = $("#page-PID-grid-template").tmpl({ grid1: "Uppmätt: ", grid2: "Referens: ",grid3: "PWM: ",grid4: "Förändring: " }).appendTo(pageInstance.pageContentElement).trigger("create");
  160.     /*
  161.     pageInstance.pageInputElements["kp"] = $("#page-PID-input-number-template").tmpl({ input_name: "Kp:  " }).appendTo(pageInstance.pageContentElement).trigger("create");
  162.     pageInstance.pageInputElements["ki"] = $("#page-PID-input-number-template").tmpl({ input_name: "Ki:  " }).appendTo(pageInstance.pageContentElement).trigger("create");
  163.     pageInstance.pageInputElements["kd"] = $("#page-PID-input-number-template").tmpl({ input_name: "Kd:  " }).appendTo(pageInstance.pageContentElement).trigger("create");
  164.     pageInstance.pageInputElements["timeunit"] = $("#page-PID-input-template").tmpl({ input_name: "Tidsenhet [s/ms]:  " }).appendTo(pageInstance.pageContentElement).trigger("create");
  165.     pageInstance.pageInputElements["time"] = $("#page-PID-input-button-template").tmpl({ input_name: "Tid:  "  ,button: "Spara regulatorkonstanter"}).appendTo(pageInstance.pageContentElement).trigger("create");
  166.     */
  167.    
  168.    
  169.    
  170.     pageInstance.pageButtonElements["Update"] = $("#page-PID-button-template").tmpl({ button: "Update" }).appendTo(pageInstance.pageContentElement).trigger("create").find("button").on("click", function(event)
  171.     {
  172.       requestServerDataUpdate();
  173.       event.preventDefault();
  174.     });
  175.   }
  176.  };
  177.