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. |
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. |
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 |
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 += " " + name2 + " : <i>" + value2 + "</i><br/>"; |
|
| 85 |
|
47 | }); |
| 86 | |
48 | } |
| 87 |
|
49 | }); |
| 88 | } |
50 | |
| - | 51 | /* If no values were found print a nice text */ |
|
| 89 | if |
52 | if (text.length == 0) |
| 90 | { |
53 | { |
| - | 54 | text = "<i>No data available</i>"; |
|
| 91 |
|
55 | } |
| 92 | } |
56 | |
| 93 |
|
57 | var name = alias; |
| 94 | { |
58 | |
| 95 |
|
59 | if (aliasNames[alias]) |
| 96 | |
60 | { |
| 97 |
|
61 | name = aliasNames[alias]; |
| - | 62 | } |
|
| 98 | { |
63 | |
| 99 |
|
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 |
75 | function requestServerData() |
| 111 | { |
76 | { |
| 112 | sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance. |
77 | sendCommand("JSON.stringify(Module_GetLastDataNative('" + pageInstance.aliases.join("','") + "'));", handleServerData); |
| 113 | } |
78 | } |
| 114 | 79 | ||
| - | 80 | ||
| 115 | /* |
81 | /* Loop through all the aliases and create sliders */ |
| - | 82 | jQuery.each(pageInstance.aliases, function(n, alias) |
|
| - | 83 | { |
|
| - | 84 | var name = alias; |
|
| - | 85 | ||
| 116 |
|
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 |
|
88 | name = aliasNames[alias]; |
| 131 | } |
89 | } |
| 132 | 90 | ||
| 133 | /* Create the |
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 |
|
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 | - | ||