53 id: 'record', |
54 id: 'record', |
54 url: url |
55 url: url |
55 }, |
56 }, |
56 dataAdapter = new $.jqx.dataAdapter(source, { |
57 dataAdapter = new $.jqx.dataAdapter(source, { |
57 loadComplete: function(records) { |
58 loadComplete: function(records) { |
58 var record = dataAdapter.records[0], |
59 record = dataAdapter.records[0]; |
59 oline = (record.online) ? 'On-line' : 'Off-line', |
60 updateScreen(); |
60 html = '<div id="node_table">'; |
61 } |
61 html += '<table style="width: 100%; padding: 10px;">'; |
62 }); |
62 html += '<tr><th colspan=2>Systeem overzicht</th></tr>'; |
63 |
63 html += '<tr><td>Uuid</td><td>' + record.uuid + '</td></tr>'; |
64 function updateScreen() { |
64 html += '<tr><td>Systeem</td><td>' + record.node + '</td></tr>'; |
65 var oline = (record.online) ? 'On-line' : 'Off-line', |
65 html += '<tr><td>Online</td><td>' + oline + '</td></tr>'; |
66 html = '<div id="node_table">'; |
66 html += '<tr><td>Type</td><td>' + record.group_id + '</td></tr>'; |
67 html += '<table style="width: 100%; padding: 10px;">'; |
67 html += '<tr><td>Eerst gezien</td><td>' + record.firstseen + '</td></tr>'; |
68 html += '<tr><th colspan=2>Systeem overzicht</th></tr>'; |
68 html += '<tr><td>Laatst gezien</td><td>' + record.lastseen + '</td></tr>'; |
69 html += '<tr><td>Uuid</td><td>' + record.uuid + '</td></tr>'; |
|
70 html += '<tr><td>Systeem</td><td>' + record.node + '</td></tr>'; |
|
71 html += '<tr><td>Online</td><td>' + oline + '</td></tr>'; |
|
72 html += '<tr><td>Type</td><td>' + record.group_id + '</td></tr>'; |
|
73 html += '<tr><td>Eerst gezien</td><td>' + record.firstseen + '</td></tr>'; |
|
74 html += '<tr><td>Laatst gezien</td><td>' + record.lastseen + '</td></tr>'; |
|
75 if (record.online) { |
69 html += '<tr><td>Hardware maker</td><td>' + record.hardwaremake + '</td></tr>'; |
76 html += '<tr><td>Hardware maker</td><td>' + record.hardwaremake + '</td></tr>'; |
70 html += '<tr><td>Hardware model</td><td>' + record.hardwaremodel + '</td></tr>'; |
77 html += '<tr><td>Hardware model</td><td>' + record.hardwaremodel + '</td></tr>'; |
71 html += '<tr><td>OS</td><td>' + record.os + ' versie: ' + record.os_version + '</td></tr>'; |
78 html += '<tr><td>OS</td><td>' + record.os + ' versie: ' + record.os_version + '</td></tr>'; |
72 html += '<tr><td>Firmware</td><td>' + record.firmware + '</td></tr>'; |
79 html += '<tr><td>Firmware</td><td>' + record.firmware + '</td></tr>'; |
|
80 |
|
81 if (record.temperature > 0) |
|
82 html += '<tr><td>Temperatuur</td><td>' + record.temperature.toFixed(1) + '°C</td></tr>'; |
|
83 if (record.humidity > 0) |
|
84 html += '<tr><td>Vochtigheid</td><td>' + record.humidity.toFixed(1) + '%</td></tr>'; |
|
85 if (record.barometer > 0) |
|
86 html += '<tr><td>Luchtdruk</td><td>' + record.barometer.toFixed(0) + '</td></tr>'; |
|
87 if ((record.gps_latitude != 0) && (record.gps_longitude != 0)) |
|
88 html += '<tr><td>GPS</td><td>' + record.gps_latitude + ' ' + record.gps_longitude + ' ' + record.gps_altitude + '</td></tr>'; |
|
89 html += '<tr><td>Netwerk</td><td>' + record.net_ifname + ' ' + record.net_address + '</td></tr>'; |
|
90 if (record.net_rssi < 0) |
|
91 html += '<tr><td>WiFi signaal</td><td>' + record.net_rssi + '</td></tr>'; |
|
92 html += '<tr><td>Update interval</td><td>' + record.up_interval + ' sec.</td></tr>'; |
|
93 } |
|
94 html += '</<table>'; |
|
95 html += '</div>'; |
|
96 $('#ContentPanel').html(html); |
|
97 } |
|
98 |
|
99 // Get the data. |
|
100 dataAdapter.dataBind(); |
|
101 |
|
102 websocket.onmessage = function(evt) { |
|
103 var msg = evt.data; |
|
104 var obj = JSON.parse(msg); |
|
105 if (! obj.device && obj.node == record.node) { |
|
106 record.online = obj.online; |
73 if (record.online) { |
107 if (record.online) { |
74 if (record.temperature > 0) { |
108 record.group_id = obj.group_id; |
75 html += '<tr><td>Temperatuur</td><td>' + record.temperature.toFixed(1) + '°C</td></tr>'; |
109 record.lastseen = obj.lastseen; |
76 } |
110 if (obj.hardwaremake) |
77 if (record.humidity > 0) { |
111 record.harwaremake = obj.hardwaremake; |
78 html += '<tr><td>Vochtigheid</td><td>' + record.humidity.toFixed(1) + '%</td></tr>'; |
112 if (obj.hardwaremodel) |
79 } |
113 record.hardwaremodel = obj.hardwaremodel; |
80 if (record.barometer > 0) { |
114 if (obj.os) |
81 html += '<tr><td>Luchtdruk</td><td>' + record.barometer.toFixed(0) + '</td></tr>'; |
115 record.os = obj.os; |
82 } |
116 if (obj.os_version) |
83 if ((record.gps_latitude != 0) && (record.gps_longitude != 0)) { |
117 record.os_version = obj.os_version; |
84 html += '<tr><td>GPS</td><td>' + record.gps_latitude + ' ' + record.gps_longitude + ' ' + record.gps_altitude + '</td></tr>'; |
118 if (obj.firmware) |
85 } |
119 record.firmware = obj.firmware; |
86 html += '<tr><td>Netwerk</td><td>' + record.net_ifname + ' ' + record.net_address + '</td></tr>'; |
120 if (obj.temperature) |
87 if (record.net_rssi < 0) { |
121 record.temperature = obj.temperature; |
88 html += '<tr><td>WiFi signaal</td><td>' + record.net_rssi + '</td></tr>'; |
122 if (obj.humidity) |
89 } |
123 record.humidity = obj.humidity; |
90 html += '<tr><td>Update interval</td><td>' + record.up_interval + ' sec.</td></tr>'; |
124 record.net_ifname = obj.net_ifname; |
|
125 record.net_address = obj.net_address; |
|
126 if (obj.net_rssi) |
|
127 record.net_rssi = obj.net_rssi; |
91 } |
128 } |
92 html += '</<table>'; |
129 updateScreen(); |
93 html += '</div>'; |
|
94 $('#ContentPanel').html(html); |
|
95 } |
130 } |
96 }); |
131 } |
97 |
|
98 // Get the data immediatly and then at regular intervals to refresh. |
|
99 dataAdapter.dataBind(); |
|
100 setInterval(function() { |
|
101 dataAdapter.dataBind(); |
|
102 }, 30000); |
|
103 }); |
132 }); |
104 |
133 |