Skip to content

Commit bed9820

Browse files
fix bugs when adding graph points
* overriding series data on intialization * overriding an index value * incorrectly intializing new series
1 parent b80a290 commit bed9820

File tree

2 files changed

+62
-61
lines changed

2 files changed

+62
-61
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ <h2>Chase car mode</h2>
271271
<div class="holder" style="height: 200px;width: 50px"></div>
272272
</div>
273273
</div>
274-
<div id="main" style="dispaly: none">
274+
<div id="main" style="display: none">
275275
<div class="scrollwrapper">
276276
<div class="portrait">
277277
<div class="row vehicle0"><div class="header empty"><span>No vehicles :(</span></div></div>

js/tracker.js

Lines changed: 61 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)