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. |
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. |
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 |
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 |
|
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 += " " + 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 |
|
89 | if (name2 == "Measurment") |
| 54 | { |
90 | { |
| 55 | text = "<i>No data available</i>"; |
- | |
| 56 |
|
91 | g1 = value2; |
| 57 | 92 | } |
|
| 58 |
|
93 | if (name2 == "PWM") |
| 59 | 94 | { |
|
| 60 |
|
95 | g3 = value2; |
| 61 |
|
96 | } |
| 62 |
|
97 | if (name2 == "Sum") |
| 63 | } |
- | |
| 64 | 98 | { |
|
| 65 |
|
99 | g4 = value2; |
| 66 | text = "<h3>" + name + "</h3>" + text + "<br/>"; |
- | |
| 67 | 100 | } |
|
| 68 |
|
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 |
110 | function requestServerDataUpdate() |
| 77 | { |
111 | { |
| 78 | sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance. |
112 | sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance.alias + "'));", handleServerDataUpdate); |
| 79 | } |
113 | } |
| 80 | 114 | ||
| 81 | - | ||
| 82 | /* |
115 | /* Function to request new values from the server */ |
| 83 | jQuery.each(pageInstance.aliases, function(n, alias) |
- | |
| 84 | { |
- | |
| 85 | var name = alias; |
- | |
| 86 | - | ||
| 87 |
|
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 |
|
130 | name = aliasNames[pageInstance.alias]; |
| 90 | } |
131 | } |
| 91 | 132 | ||
| 92 |
|
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 |
|
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 | ||