Subversion Repositories HomeAutomation

Rev

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