Subversion Repositories HomeAutomation

Rev

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

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