Subversion Repositories HomeAutomation

Rev

Rev 2192 | Rev 2196 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
2068 runge 1
 
2193 linlun 2
pages.PID = {
2068 runge 3
  init: function(pageInstance)
4
  {
2192 linlun 5
    this.pageshow = function(arg) {
6
    /* Request the initial value from the server */
2193 linlun 7
      requestServerDataUpdate();
2192 linlun 8
      requestServerData();
9
      /* Set timer for continious polling of the current values */
2193 linlun 10
      pageInstance.pollTimer = setInterval(reloadImage, 60000);
11
      pageInstance.pollTimer2 = setInterval(requestServerData, 5000);
2192 linlun 12
    }
13
 
14
    this.pagehide = function(arg) {
15
      clearInterval(pageInstance.pollTimer);
2193 linlun 16
      clearInterval(pageInstance.pollTimer2);
2192 linlun 17
    }
18
 
2193 linlun 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 */
2068 runge 71
    function handleServerData(jsonData)
72
    {
2193 linlun 73
      var g1,g2,g3,g4;
2068 runge 74
      /* Loop through all results */
2111 runge 75
      jQuery.each(jsonData, function(alias, data)
2068 runge 76
      {
2193 linlun 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
      });
2068 runge 104
      });
2193 linlun 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 }));
2068 runge 106
    }
107
 
108
 
109
    /* Function to request new values from the server */
2193 linlun 110
    function requestServerDataUpdate()
111
    {
112
      sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance.alias + "'));", handleServerDataUpdate);
113
    }
114
 
115
    /* Function to request new values from the server */
2068 runge 116
    function requestServerData()
117
    {
2193 linlun 118
      sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance.alias + "'));", handleServerData);
2068 runge 119
    }
2193 linlun 120
 
121
    function reloadImage()
2068 runge 122
    {
2193 linlun 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
 
2080 runge 139
 
140
 
2193 linlun 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();
2068 runge 146
    });
2193 linlun 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
    });
2068 runge 174
  }
2193 linlun 175
 };
176