Subversion Repositories HomeAutomation

Rev

Rev 2193 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 2193 Rev 2196
Line 1... Line 1...
1
 
1
 
2
pages.PID = {
2
pages.info = {
3
  init: function(pageInstance)
3
  init: function(pageInstance)
4
  {
4
  {
-
 
5
    /* List to keep referenses to all the different slider elements */
-
 
6
    pageInstance.pageInfoElements = {};
-
 
7
 
5
    this.pageshow = function(arg) {
8
    this.pageshow = function(arg) {
6
    /* Request the initial value from the server */
9
    /* Request the initial value from the server */
7
      requestServerDataUpdate();
-
 
8
      requestServerData();
10
      requestServerData();    
9
      /* Set timer for continious polling of the current values */
11
      /* Set timer for continious polling of the current values */
10
      pageInstance.pollTimer = setInterval(reloadImage, 60000);
-
 
11
      pageInstance.pollTimer2 = setInterval(requestServerData, 5000);
12
      pageInstance.pollTimer = setInterval(requestServerData, 2000);
12
    }
13
    }
13
   
14
   
14
    this.pagehide = function(arg) {
15
    this.pagehide = function(arg) {
15
      clearInterval(pageInstance.pollTimer);
16
      clearInterval(pageInstance.pollTimer);
16
      clearInterval(pageInstance.pollTimer2);
-
 
17
    }
17
    }
18
   
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 */
19
    /* Function to update values of sliders based on new server data */
71
    function handleServerData(jsonData)
20
    function handleServerData(jsonData)
72
    {
21
    {
73
      var g1,g2,g3,g4;
-
 
74
      /* Loop through all results */
22
      /* Loop through all results */
75
      jQuery.each(jsonData, function(alias, data)
23
      jQuery.each(jsonData, function(alias, data)
76
      {
24
      {
-
 
25
        /* Only do something if we know the alias*/
-
 
26
        if (pageInstance.pageInfoElements[alias])
-
 
27
        {
-
 
28
          /* Clear existing information */
-
 
29
          pageInstance.pageInfoElements[alias].empty();
-
 
30
 
-
 
31
          var text = "";
-
 
32
 
77
      /* Loop through all values */
33
          /* Loop through all values */
78
      jQuery.each(data, function(name, value)
34
          jQuery.each(data, function(name, value)
79
      {
35
          {
80
        /* Check if the value is simple or complex */
36
            /* Check if the value is simple or complex */
81
        if (typeof value.value != "string")
37
            if (typeof value.value == "string")
82
        {
38
            {
-
 
39
              text += "<b>" + name + "</b> : <i>" + value.value + "</i><br/>";
-
 
40
            }
-
 
41
            else
-
 
42
            {
-
 
43
              text += "<b>" + name + "</b><br/>";
83
          jQuery.each(value.value, function(name2, value2)
44
              jQuery.each(value.value, function(name2, value2)
84
          {
45
              {
-
 
46
                text += "&nbsp;&nbsp;" + name2 + " : <i>" + value2 + "</i><br/>";
85
        if (name2 == "Reference")
47
              });
86
        {
48
            }
87
            g2 = value2;
49
          });
88
        }
50
 
-
 
51
          /* If no values were found print a nice text */
89
        if (name2 == "Measurment")
52
          if (text.length == 0)
90
        {
53
          {
-
 
54
            text = "<i>No data available</i>";
91
            g1 = value2;
55
          }
92
        }
56
 
93
        if (name2 == "PWM")
57
          var name = alias;
94
        {
58
 
95
            g3 = value2;
59
          if (aliasNames[alias])
96
        }
60
          {
97
        if (name2 == "Sum")
61
            name = aliasNames[alias];
-
 
62
          }
98
        {
63
 
99
            g4 = value2;
64
          /* Add the title */
-
 
65
          text = "<h3>" + name + "</h3>" + text + "<br/>";
100
        }
66
 
101
          });
67
          /* Update the element markup */
-
 
68
          pageInstance.pageInfoElements[alias].html(text);
102
        }
69
        }
103
      });
-
 
104
      });
70
      });
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
    }
71
    }
107
   
72
   
108
   
73
   
109
    /* Function to request new values from the server */
74
    /* Function to request new values from the server */
110
    function requestServerDataUpdate()
75
    function requestServerData()
111
    {
76
    {
112
      sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance.alias + "'));", handleServerDataUpdate);
77
      sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance.aliases.join("','") + "'));", handleServerData);
113
    }
78
    }
114
   
79
       
-
 
80
 
115
    /* Function to request new values from the server */
81
    /* Loop through all the aliases and create sliders */
-
 
82
    jQuery.each(pageInstance.aliases, function(n, alias)
-
 
83
    {
-
 
84
      var name = alias;
-
 
85
 
116
    function requestServerData()
86
      if (aliasNames[alias])
117
    {
87
      {
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];
88
        name = aliasNames[alias];
131
    }
89
      }
132
   
90
   
133
    /* Create the PID HTML from the template and add it to the DOM */
91
      /* Create the info 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");
92
      pageInstance.pageInfoElements[alias] = $("#page-info-template").tmpl({ alias: alias, name: name }).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
    });
93
    });
174
  }
94
  }
175
 };
95
};
176
 
-