@@ -366,8 +366,8 @@ function clean_refresh(text, force, history_step) {
366366 client . subscribe ( topic ) ;
367367 clientTopic = topic ;
368368 } else {
369- client . subscribe ( "sondes/# " ) ;
370- clientTopic = "sondes/# " ;
369+ client . subscribe ( "batch " ) ;
370+ clientTopic = "batch " ;
371371 }
372372 } catch ( err ) { }
373373
@@ -2676,82 +2676,84 @@ function formatData(data, live) {
26762676 response . positions = { } ;
26772677 var dataTemp = [ ] ;
26782678 if ( live ) {
2679- var dataTempEntry = { } ;
2680- var station = data . uploader_callsign ;
2681- dataTempEntry . callsign = { } ;
2682- //check if other stations also received this packet
2683- if ( vehicles . hasOwnProperty ( data . serial ) ) {
2684- if ( data . datetime == vehicles [ data . serial ] . curr_position . gps_time ) {
2685- for ( let key in vehicles [ data . serial ] . curr_position . callsign ) {
2686- if ( vehicles [ data . serial ] . curr_position . callsign . hasOwnProperty ( key ) ) {
2687- if ( key != station ) {
2688- dataTempEntry . callsign [ key ] = { } ;
2689- if ( vehicles [ data . serial ] . curr_position . callsign [ key ] . hasOwnProperty ( "snr" ) ) {
2690- dataTempEntry . callsign [ key ] . snr = vehicles [ data . serial ] . curr_position . callsign [ key ] . snr ;
2691- }
2692- if ( vehicles [ data . serial ] . curr_position . callsign [ key ] . hasOwnProperty ( "rssi" ) ) {
2693- dataTempEntry . callsign [ key ] . rssi = vehicles [ data . serial ] . curr_position . callsign [ key ] . rssi ;
2679+ for ( let entry in data ) {
2680+ var dataTempEntry = { } ;
2681+ var station = data [ entry ] . uploader_callsign ;
2682+ dataTempEntry . callsign = { } ;
2683+ //check if other stations also received this packet
2684+ if ( vehicles . hasOwnProperty ( data [ entry ] . serial ) ) {
2685+ if ( data [ entry ] . datetime == vehicles [ data [ entry ] . serial ] . curr_position . gps_time ) {
2686+ for ( let key in vehicles [ data [ entry ] . serial ] . curr_position . callsign ) {
2687+ if ( vehicles [ data [ entry ] . serial ] . curr_position . callsign . hasOwnProperty ( key ) ) {
2688+ if ( key != station ) {
2689+ dataTempEntry . callsign [ key ] = { } ;
2690+ if ( vehicles [ data [ entry ] . serial ] . curr_position . callsign [ key ] . hasOwnProperty ( "snr" ) ) {
2691+ dataTempEntry . callsign [ key ] . snr = vehicles [ data [ entry ] . serial ] . curr_position . callsign [ key ] . snr ;
2692+ }
2693+ if ( vehicles [ data [ entry ] . serial ] . curr_position . callsign [ key ] . hasOwnProperty ( "rssi" ) ) {
2694+ dataTempEntry . callsign [ key ] . rssi = vehicles [ data [ entry ] . serial ] . curr_position . callsign [ key ] . rssi ;
2695+ }
26942696 }
26952697 }
26962698 }
26972699 }
26982700 }
2699- }
2700- dataTempEntry . callsign [ station ] = { } ;
2701- if ( data . snr ) {
2702- dataTempEntry . callsign [ station ] . snr = data . snr ;
2703- }
2704- if ( data . rssi ) {
2705- dataTempEntry . callsign [ station ] . rssi = data . rssi ;
2706- }
2707- dataTempEntry . gps_alt = data . alt ;
2708- dataTempEntry . gps_lat = data . lat ;
2709- dataTempEntry . gps_lon = data . lon ;
2710- if ( data . heading ) {
2711- dataTempEntry . gps_heading = data . heading ;
2712- }
2713- dataTempEntry . gps_time = data . datetime ;
2714- dataTempEntry . server_time = data . datetime ;
2715- dataTempEntry . vehicle = data . serial ;
2716- dataTempEntry . position_id = data . serial + "-" + data . datetime ;
2717- dataTempEntry . data = { } ;
2718- if ( data . batt ) {
2719- dataTempEntry . data . batt = data . batt ;
2720- }
2721- if ( data . burst_timer ) {
2722- dataTempEntry . data . burst_timer = data . burst_timer ;
2723- }
2724- if ( data . frequency ) {
2725- dataTempEntry . data . frequency = data . frequency ;
2726- }
2727- if ( data . humidity ) {
2728- dataTempEntry . data . humidity = data . humidity ;
2729- }
2730- if ( data . manufacturer ) {
2731- dataTempEntry . data . manufacturer = data . manufacturer ;
2732- }
2733- if ( data . sats ) {
2734- dataTempEntry . data . sats = data . sats ;
2735- }
2736- if ( data . temp ) {
2737- dataTempEntry . data . temperature_external = data . temp ;
2738- }
2739- if ( data . type ) {
2740- dataTempEntry . data . type = data . type ;
2741- dataTempEntry . type = data . type ;
2742- }
2743- if ( data . subtype ) {
2744- dataTempEntry . data . type = data . subtype ;
2745- dataTempEntry . type = data . subtype ;
2746- }
2747- if ( data . pressure ) {
2748- dataTempEntry . data . pressure = data . pressure ;
2749- }
2750- if ( data . xdata ) {
2751- dataTempEntry . data . xdata = data . xdata ;
2752- }
2753- if ( data . serial . toLowerCase ( ) != "xxxxxxxx" ) {
2754- dataTemp . push ( dataTempEntry ) ;
2701+ dataTempEntry . callsign [ station ] = { } ;
2702+ if ( data [ entry ] . snr ) {
2703+ dataTempEntry . callsign [ station ] . snr = data [ entry ] . snr ;
2704+ }
2705+ if ( data [ entry ] . rssi ) {
2706+ dataTempEntry . callsign [ station ] . rssi = data [ entry ] . rssi ;
2707+ }
2708+ dataTempEntry . gps_alt = data [ entry ] . alt ;
2709+ dataTempEntry . gps_lat = data [ entry ] . lat ;
2710+ dataTempEntry . gps_lon = data [ entry ] . lon ;
2711+ if ( data [ entry ] . heading ) {
2712+ dataTempEntry . gps_heading = data [ entry ] . heading ;
2713+ }
2714+ dataTempEntry . gps_time = data [ entry ] . datetime ;
2715+ dataTempEntry . server_time = data [ entry ] . datetime ;
2716+ dataTempEntry . vehicle = data [ entry ] . serial ;
2717+ dataTempEntry . position_id = data [ entry ] . serial + "-" + data [ entry ] . datetime ;
2718+ dataTempEntry . data = { } ;
2719+ if ( data [ entry ] . batt ) {
2720+ dataTempEntry . data . batt = data [ entry ] . batt ;
2721+ }
2722+ if ( data [ entry ] . burst_timer ) {
2723+ dataTempEntry . data . burst_timer = data [ entry ] . burst_timer ;
2724+ }
2725+ if ( data [ entry ] . frequency ) {
2726+ dataTempEntry . data . frequency = data [ entry ] . frequency ;
2727+ }
2728+ if ( data [ entry ] . humidity ) {
2729+ dataTempEntry . data . humidity = data [ entry ] . humidity ;
2730+ }
2731+ if ( data [ entry ] . manufacturer ) {
2732+ dataTempEntry . data . manufacturer = data [ entry ] . manufacturer ;
2733+ }
2734+ if ( data [ entry ] . sats ) {
2735+ dataTempEntry . data . sats = data [ entry ] . sats ;
2736+ }
2737+ if ( data [ entry ] . temp ) {
2738+ dataTempEntry . data . temperature_external = data [ entry ] . temp ;
2739+ }
2740+ if ( data [ entry ] . type ) {
2741+ dataTempEntry . data . type = data [ entry ] . type ;
2742+ dataTempEntry . type = data [ entry ] . type ;
2743+ }
2744+ if ( data [ entry ] . subtype ) {
2745+ dataTempEntry . data . type = data [ entry ] . subtype ;
2746+ dataTempEntry . type = data [ entry ] . subtype ;
2747+ }
2748+ if ( data [ entry ] . pressure ) {
2749+ dataTempEntry . data . pressure = data [ entry ] . pressure ;
2750+ }
2751+ if ( data [ entry ] . xdata ) {
2752+ dataTempEntry . data . xdata = data [ entry ] . xdata ;
2753+ }
2754+ if ( data [ entry ] . serial . toLowerCase ( ) != "xxxxxxxx" ) {
2755+ dataTemp . push ( dataTempEntry ) ;
2756+ }
27552757 }
27562758 } else if ( data . length == null ) {
27572759 for ( let key in data ) {
@@ -2814,7 +2816,9 @@ function formatData(data, live) {
28142816 if ( data [ key ] [ i ] . xdata ) {
28152817 dataTempEntry . data . xdata = data [ key ] [ i ] . xdata ;
28162818 }
2817- dataTemp . push ( dataTempEntry ) ;
2819+ if ( data [ key ] [ i ] . serial . toLowerCase ( ) != "xxxxxxxx" ) {
2820+ dataTemp . push ( dataTempEntry ) ;
2821+ }
28182822 }
28192823 }
28202824 }
@@ -2978,8 +2982,8 @@ function liveData() {
29782982 client . subscribe ( topic ) ;
29792983 clientTopic = topic ;
29802984 } else {
2981- client . subscribe ( "sondes/# " ) ;
2982- clientTopic = "sondes/# " ;
2985+ client . subscribe ( "batch " ) ;
2986+ clientTopic = "batch " ;
29832987 }
29842988 clientConnected = true ;
29852989 $ ( "#stText" ) . text ( "websocket |" ) ;
@@ -3013,18 +3017,17 @@ function liveData() {
30133017 setTimeout ( function ( ) {
30143018 messageRate -= 1 ;
30153019 } , ( 1000 * messageRateAverage ) ) ;
3016- var messageCalculatedRate = Math . round ( messageRate / messageRateAverage / 10 ) * 10 ;
30173020 if ( document . getElementById ( "stTimer" ) . classList . contains ( 'friendly-dtime' ) ) {
30183021 document . getElementById ( "stTimer" ) . classList . remove ( 'friendly-dtime' ) ;
30193022 }
3020- $ ( "#stTimer" ) . text ( messageCalculatedRate + " msg/s" ) ;
3023+ $ ( "#stTimer" ) . text ( Math . round ( messageRate / 10 ) + " msg/s" ) ;
30213024 $ ( "#updatedText" ) . text ( " " ) ;
30223025 var dateNow = new Date ( ) . getTime ( ) ;
30233026 try {
30243027 if ( clientActive ) {
30253028 var frame = JSON . parse ( message . payloadString . toString ( ) ) ;
30263029 if ( wvar . query == "" || sondePrefix . indexOf ( wvar . query ) > - 1 || wvar . query == frame . serial ) {
3027- if ( ( dateNow - new Date ( frame . time_received ) . getTime ( ) ) < 30000 ) {
3030+ if ( ( dateNow - new Date ( frame [ frame . length - 1 ] . time_received ) . getTime ( ) ) < 30000 ) {
30283031 var test = formatData ( frame , true ) ;
30293032 if ( clientActive ) {
30303033 live_data_buffer . positions . position . push . apply ( live_data_buffer . positions . position , test . positions . position )
0 commit comments