Subversion Repositories HomeAutomation

Rev

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

Rev Author Line No. Line
2196 linlun 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