| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- function setCookie(name, value ) {
- var expires = "";
- document.cookie = name+"="+value+expires+"; path=/";
- }
- function getCookie(name) {
- var nameEQ = name + "=";
- var ca = document.cookie.split(';');
- for(var i=0;i < ca.length;i++) {
- var c = ca[i];
- while (c.charAt(0)==' ') c = c.substring(1,c.length);
- if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
- }
- return '';
- }
- function updateHTML_Locate(apname, ts, rssi, delta){
- $('tr.aprow#' + apname +' td.rssi' ).text(rssi);
- $('tr.aprow#' + apname +' td.delta' ).text(delta);
- }
- function updateHTML_Measure(apname, ts, rssi, delta){
- $('tr.aprow#' + apname +' td.rssi' ).text(rssi);
- $('tr.aprow#' + apname +' td.delta' ).text(delta);
- }
- function updateHTML_view(data){
- var collected_aps = []
- for (var apname in data) {
- if (data.hasOwnProperty(apname)) {
- for (var i in data[apname]) {
- var apinfo = data[apname][i];
- var rssi = apinfo[0];
- var ts = apinfo[1];
- var delta = apinfo[3];
-
- var aptable = $('table#aps')
- var aprow = $('tr.aprow#' + apname)
- aprow.show()
- var rgbval = $('span#rgb_' + (Math.round(rssi))).text()
-
- $('td.history', aprow).append('<span class="full" style="background-color:' + rgbval + '">' + rssi +'</span>')
- $('td.history span', aprow)
-
- collected_aps.push(apname)
- };
- };
- }
-
- var MAX_SIGNALS = 30
- $('table#aps tr.aprow:visible').each(function(){
- var aprow = $(this)
- if ($.inArray(aprow.attr('id'), collected_aps) == -1){
- $('td.history', aprow).append('<span class="empty" style="color:silver">-00</span>')
- };
-
- while ($('td.history span', aprow).length > MAX_SIGNALS){
- $('td.history span:first', aprow).remove()
- };
-
- if ($('td.history span.full', aprow).length == 0){
- aprow.hide()
- };
- });
-
- $('table#aps tr.aprow:visible').each(function(){
- var aprow = $(this)
- var sum = 0
- var values = $('td.history span.full', aprow)
-
- values.each(function(){
- sum = sum + parseFloat($(this).text())
- });
- var mean = sum / values.length;
-
- var sum = 0
- values.each(function(){
- var rssi = parseFloat($(this).text())
- sum = sum + (mean - rssi) * (mean - rssi)
- });
- var sigma = sum / values.length;
- $('td.sigma', aprow).text(Math.round(sigma * 10) / 10)
-
- //~ var variance = Math.sqrt(sum / values.length);
-
-
- $('td.mean', aprow).text(Math.round(mean * 10) / 10)
- var rgbval = $('span#rgb_' + (Math.round(mean))).text()
- $('td.mean', aprow).css('background-color', rgbval)
- });
-
- }
- function receiveAPs(jsid, station, updatefuncSingle, updatefuncAll, filter){
- $.get('/getAPInfo?name=' + station + '&jsid=' + jsid + filter, function(data){
-
- if (updatefuncAll){
- updatefuncAll(data)
- } else {
- for (var apname in data) {
- if (data.hasOwnProperty(apname)) {
- for (var i in data[apname]) {
- var apinfo = data[apname][i];
- var rssi = apinfo[0];
- var ts = apinfo[1];
- var delta = apinfo[3];
-
- updatefuncSingle(apname, ts, rssi, delta)
- //~ console.log(apinfo[1]);
- };
-
- }
- }
- };
-
- //~ timer.stop()
- });
- };
- $(document).ready(function() {
- // id for this javascript session
- var jsid = parseInt(Math.random() * 100000000)
-
- var station = $('div#stationinfo span#name').text();
-
- var updatefunc = null;
- var updatefuncAll = null;
-
- var filter = ''
- try {
-
- if ($('div#meta span#pagename').text() == 'view2'){
- updatefuncAll = updateHTML_view;
- $('span#clear_hist').click(function(){
- $('td.history span').remove()
- });
-
- } else if ($('div#meta span#pagename').text() == 'locate'){
- updatefunc = updateHTML_Locate;
- filter = '&filter='
-
- $('td.apid').each(function(){
- filter = filter + $(this).text() + ','
- });
-
- } else if ($('div#meta span#pagename').text() == 'measure'){
-
- // move cut image to end of div onclick
- $('img.cutplot').dblclick(function(){
- $(this).appendTo('div#cutplots')
- });
-
- $('input#locid').val(getCookie('measure.locid'))
- $('input#locid').change(function(){
- setCookie('measure.locid', $('input#locid').val())
- });
-
- updatefunc = updateHTML_Measure;
- $('form#locationinfo').submit(function(){
- var locid = $('form#locationinfo input#locid').val();
- var dur = $('form#locationinfo input#duration').val();
- if (locid == ''){
- alert('need location != ""');
- return false;
- };
-
- $('form#locationinfo span#activity').text('starting...');
-
- $.get('/startMeasureLoc?name=' + station + '&locid=' + locid + '&duration=' + dur, function(data){
- if (data.started == ''){
-
- $('form#locationinfo span#activity').text('error: ' + data.error);
- return false
- };
-
- $('form#locationinfo td#startts').text(data.started);
- var dur_in_ms = parseInt(dur) * 1000 + 1000
- $('form#locationinfo span#activity').text('started, waiting ' + dur_in_ms + ' ms');
-
- $.timer(dur_in_ms, function(timer){
- timer.stop()
- $('form#locationinfo span#activity').text('checking results...');
-
- $.get('/getMeasurementResults?name=' + station + '&locid=' + locid, function(result_data){
-
- if (result_data.stopped == ''){
- alert('measurement not stopped!')
- return false;
- };
-
- $('form#locationinfo span#activity').text('got results');
- $('form#locationinfo td#endts').text(result_data.stopped);
-
- $('table#aplist thead tr').append('<td>loc ' + locid + '</td>')
-
-
- var d = result_data.data;
- for (var apname in d) {
-
- if (d.hasOwnProperty(apname)) {
- var title = d[apname].rssis
- $('tr.aprow#' + apname).append('<td title="' + title + '">' + d[apname].avg + '</td>')
- };
- };
-
-
- });
- });
- });
-
- return false;
- });
-
- } else if ($('div#meta span#pagename').text() == 'collect'){
-
- $('span#startButton').click(function(){
- var startstopval = $('span#startButton').text();
- var pathid = $('select#pathid').val();
-
- if (startstopval == 'start'){
- $('span#startButton').css('background-color', '#F87217');
- $.get('/startCollectPath?station=' + station + '&pathid=' + pathid, function(data){
- $('span#startButton').text('stop');
- $('span#startButton').css('background-color', '#F76541');
- });
- } else {
- $('span#startButton').css('background-color', '#F87217');
- if ($('span.untriggeredLocidButton').length > 0){
- $.get('/stopCollectPath?station=' + station + '&pathid=' + pathid + '&broken', function(data){
- $('span#startButton').text('start');
- $('span#startButton').css('background-color', '#52D017');
- $('span.locidButton').css('background-color', '#FFFFFF');
- });
- } else {
- $.get('/stopCollectPath?station=' + station + '&pathid=' + pathid, function(data){
- $('span#startButton').text('start');
- $('span#startButton').css('background-color', '#52D017');
- $('span.locidButton').css('background-color', '#FFFFFF');
- });
- };
-
- $('span.locidButton').addClass('untriggeredLocidButton')
- }
- return false;
- });
-
- $('span#nextButton').click(function(){
- if ($('span#startButton').text() == 'start'){
- // if unstarted - start by clicking next
- $('span#startButton').click();
- return
- };
-
- var button = $('span.untriggeredLocidButton:first')
- var locid = button.text()
- var pathid = $('select#pathid').val();
- button.css('background-color', '#F87217');
- button.removeClass('untriggeredLocidButton');
- var rts = new Date().getTime() / 1000
- $.get('/newCollectPathPosition?station=' + station + '&pathid=' + pathid + '&locid=' + locid + '&remotets=' + rts, function(data){
- button.css('background-color', '#52D017');
- if ($('span.untriggeredLocidButton').length == 0){
- $('span#startButton').click()
- };
- //~ alert(data)
- console.log($('root', data).attr('value'))
- $('div#feedback').text($('root', data).attr('value') + ' measurements')
- $('div#feedback').css('opacity', 1.0)
- $('div#feedback').animate({'opacity': 0.0}, 2000)
- });
- });
-
- buildPushButtons = function(locids){
- $('span.locidButton').remove();
- $(locids).each(function(i, locid){
- if (locid.trim() != ''){
- var s = '<span class="locidButton untriggeredLocidButton" style="cursor:pointer;padding:2px;border:1px solid grey;">' + locid.trim() + '</span>';
- $('div#pushButtons').append(s)
- };
- })
- };
-
-
- var stored_pathid = getCookie('collectpath.pathid');
- if (stored_pathid != ''){
- $('select#pathid option[value=' + stored_pathid +']').attr('selected', 'true')
- var locids = $('span.path#' + stored_pathid).text().split(',');
- buildPushButtons(locids);
- };
-
- $('select#pathid').change(function(){
- var pathid = $(this).val()
- var locids = $('span.path#' + pathid).text().split(',')
- buildPushButtons(locids)
- setCookie('collectpath.pathid', pathid);
- });
-
- // move cut image to end of div onclick
- $('img.cutplot').dblclick(function(){
- $(this).appendTo('div#cutplots')
- });
-
- } else if ($('div#meta span#pagename').text() == 'evaluate'){
- $('tr.path').click(function(){
- //~ alert($(this).attr('pathid'))
- $('tr.run#' + $(this).attr('pathid')).toggle()
- });
- if ($('table.optrun:first tr.path').length < 5){
- $('tr.run').show()
- };
- } else if ($('div#meta span#pagename').text() == 'evaluatePath'){
- $('td#imgs1 img:nth-child(1)').show()
- $('td#imgs2 img:nth-child(2)').show()
-
- // make first set of images switchable
- var pos = 1;
- $('td#switch1 span').each(function(){
- $(this).attr('pos', pos)
-
- $(this).click(function(){
- $('td#imgs1 img').hide();
- $('td#imgs1 img:nth-child(' + $(this).attr('pos') + ')').show()
- });
- pos += 1;
- })
-
- // duplicated from above
- pos = 1;
- $('td#switch2 span').each(function(){
- $(this).attr('pos', pos)
-
- $(this).click(function(){
- $('td#imgs2 img').hide();
- $('td#imgs2 img:nth-child(' + $(this).attr('pos') + ')').show()
- });
- pos += 1;
- })
- } else if ($('div#meta span#pagename').text() == 'optruns'){
-
-
- var selected_values = []
- $('tr.param').click(function(){
- $('#curr_hist').remove()
- var data = selected_values[0]
- $(selected_values).each(function(i, val){
- if (i > 0)
- data = data + '|' + val
- });
- var title = $('td.name', this).text()
- $('body').append('<img width="1350" height="540" id="curr_hist" src="/plotHistogram?title=' + title +'&data=' + data + '&format=materials"/>')
- $('#curr_hist').css({'position': 'absolute', 'border': '2px solid grey'})
- $('#curr_hist').click(function(){$(this).remove()})
- $('#curr_hist').center()
- });
-
- $('tr.param').hover(function(){
- $(this).css('background-color', '#CCCCCC');
- var our_class = $('tr.p_' + $(this).attr('n'))
- our_class.css('background-color', '#CCCCCC');
-
- // clear array
- selected_values = []
- $('td.value', our_class).each(function(){
- selected_values.push($(this).text());
- });
-
- }, function(){
- $(this).css('background-color', 'white');
- $('tr.p_' + $(this).attr('n')).css('background-color', 'white');
- });
- };
-
-
-
- if (updatefunc != null || updatefuncAll != null){
- $.timer(1000, function(timer){
- receiveAPs(jsid, station, updatefunc, updatefuncAll, filter)
- });
- };
-
-
-
-
- } catch(err) {
- alert(err)
- }
- });
|