@@ -1457,88 +1457,89 @@ function graphAddPosition(idx, new_data) {
14571457
14581458 }
14591459
1460- // push latest altitude
1461- if ( splice ) {
1462- if ( splice_pad ) {
1463- data [ 0 ] . data . splice ( splice_idx , splice_remove , [ ts , parseInt ( new_data . gps_alt ) ] , [ ts + pad_size , parseInt ( new_data . gps_alt ) ] , [ ts + pad_size + 1 , null ] ) ;
1464- data [ 0 ] . nulls += 2 ;
1465- } else {
1466- data [ 0 ] . data . splice ( splice_idx , splice_remove , [ ts , parseInt ( new_data . gps_alt ) ] ) ;
1467- }
1468- data [ 0 ] . nulls -= splice_remove ;
1469- } else {
1470- data [ 0 ] . data . push ( [ ts , parseInt ( new_data . gps_alt ) ] ) ;
1471- }
1472-
14731460 if ( parseInt ( new_data . gps_alt ) < 0 ) delete vehicle . graph_yaxes [ i ] . min ;
14741461
14751462 // we don't record extra data, if there is no telemetry graph loaded
14761463 // altitude is used for altitude profile
1477- if ( ! plot ) return ;
1464+ if ( plot ) {
14781465
1479- // the rest of the series is from the data field
1480- var json = $ . parseJSON ( new_data . data ) ;
1481- if ( ! json ) return ;
1466+ // the rest of the series is from the data field
1467+ var json = $ . parseJSON ( new_data . data ) ;
1468+ if ( ! json ) return ;
14821469
1483- // init empty data matrix
1484- var data_matrix = [ ] ;
1485- for ( var k in vehicle . graph_data_map ) data_matrix [ vehicle . graph_data_map [ k ] ] = [ ts , null ] ;
1470+ // init empty data matrix
1471+ var data_matrix = [ ] ;
1472+ for ( var k in vehicle . graph_data_map ) data_matrix [ vehicle . graph_data_map [ k ] ] = [ ts , null ] ;
14861473
1487- $ . each ( json , function ( k , v ) {
1488- if ( isNaN ( v ) || v == "" ) return ; // only take data that is numerical
1474+ $ . each ( json , function ( k , v ) {
1475+ if ( isNaN ( v ) || v == "" ) return ; // only take data that is numerical
14891476
1490- i = ( k in vehicle . graph_data_map ) ? vehicle . graph_data_map [ k ] : data . length ;
1477+ i = ( k in vehicle . graph_data_map ) ? vehicle . graph_data_map [ k ] : data . length ;
14911478
1492- if ( i >= 8 ) return ; // up to 8 seperate data plots only
1479+ if ( i >= 8 ) return ; // up to 8 seperate data plots only
14931480
1494- if ( data [ i ] === undefined ) {
1495- // when a new data field comes in packet other than the first one
1496- if ( data [ 0 ] . data . length > 1 ) {
1497- var xref = data [ 0 ] . data ;
1481+ if ( data [ i ] === undefined ) {
1482+ // configure series
1483+ data [ i ] = {
1484+ label : k + " = 0" ,
1485+ key : k ,
1486+ yaxis : i + 1 ,
1487+ nulls : 0 ,
1488+ data : [ ]
1489+ } ;
14981490
1499- data [ i ] = { } ;
1500- data [ i ] . data = new Array ( xref . length ) ;
1491+ // when a new data field comes in packet other than the first one
1492+ if ( data [ 0 ] . data . length > 0 ) {
1493+ var xref = data [ 0 ] . data ;
15011494
1502- // we intialize it's series entry with empty data
1503- // all series need to be the same length for slicing to work
1504- for ( var k in xref ) {
1505- data [ i ] . data [ k ] = [ xref [ k ] [ 9 ] , null ] ;
1506- }
1507- }
1495+ data [ i ] . data = new Array ( xref . length ) ;
1496+
1497+ // we intialize it's series entry with empty data
1498+ // all series need to be the same length for slicing to work
1499+ for ( var kk in xref ) {
1500+ data [ i ] . data [ kk ] = [ xref [ kk ] [ 0 ] , null ] ;
1501+ }
15081502
1509- // configure series
1510- data [ i ] = {
1511- label : k + " = 0" ,
1512- key : k ,
1513- yaxis : i + 1 ,
1514- nulls : 0 ,
1515- data : [ ]
1516- } ;
1503+ }
15171504
1518- vehicle . graph_data_map [ k ] = i ;
1519- data_matrix [ i ] = [ ts , null ] ;
1505+ vehicle . graph_data_map [ k ] = i ;
1506+ data_matrix [ i ] = [ ts , null ] ;
15201507
1521- // additinal series configuration
1522- if ( isInt ( v ) ) $ . extend ( true , data [ i ] , { noInterpolate : true , lines : { steps : true } } ) ;
1523- }
1508+ // additinal series configuration
1509+ if ( isInt ( v ) ) $ . extend ( true , data [ i ] , { noInterpolate : true , lines : { steps : true } } ) ;
1510+ }
15241511
1525- if ( parseFloat ( v ) < 0 ) delete vehicle . graph_yaxes [ i ] . min ;
1512+ if ( parseFloat ( v ) < 0 ) delete vehicle . graph_yaxes [ i ] . min ;
15261513
1527- data_matrix [ i ] [ 1 ] = parseFloat ( v ) ;
1528- } ) ;
1514+ data_matrix [ i ] [ 1 ] = parseFloat ( v ) ;
1515+ } ) ;
15291516
1530- for ( var k in data_matrix ) {
1531- if ( splice ) {
1532- if ( splice_pad ) {
1533- data [ k ] . data . splice ( splice_idx , splice_remove , data_matrix [ k ] , [ ts + pad_size , data_matrix [ k ] [ 1 ] ] , [ ts + pad_size + 1 , null ] ) ;
1534- data [ k ] . nulls += 2 ;
1517+ for ( var k in data_matrix ) {
1518+ if ( splice ) {
1519+ if ( splice_pad ) {
1520+ data [ k ] . data . splice ( splice_idx , splice_remove , data_matrix [ k ] , [ ts + pad_size , data_matrix [ k ] [ 1 ] ] , [ ts + pad_size + 1 , null ] ) ;
1521+ data [ k ] . nulls += 2 ;
1522+ } else {
1523+ data [ k ] . data . splice ( splice_idx , splice_remove , data_matrix [ k ] ) ;
1524+ }
1525+ data [ k ] . nulls -= splice_remove ;
15351526 } else {
1536- data [ k ] . data . splice ( splice_idx , splice_remove , data_matrix [ k ] ) ;
1527+ data [ k ] . data . push ( data_matrix [ k ] ) ;
15371528 }
1538- data [ k ] . nulls -= splice_remove ;
1529+ }
1530+ }
1531+
1532+ // push latest altitude
1533+ if ( splice ) {
1534+ if ( splice_pad ) {
1535+ data [ 0 ] . data . splice ( splice_idx , splice_remove , [ ts , parseInt ( new_data . gps_alt ) ] , [ ts + pad_size , parseInt ( new_data . gps_alt ) ] , [ ts + pad_size + 1 , null ] ) ;
1536+ data [ 0 ] . nulls += 2 ;
15391537 } else {
1540- data [ k ] . data . push ( data_matrix [ k ] ) ;
1538+ data [ 0 ] . data . splice ( splice_idx , splice_remove , [ ts , parseInt ( new_data . gps_alt ) ] ) ;
15411539 }
1540+ data [ 0 ] . nulls -= splice_remove ;
1541+ } else {
1542+ data [ 0 ] . data . push ( [ ts , parseInt ( new_data . gps_alt ) ] ) ;
15421543 }
15431544}
15441545
0 commit comments