Skip to content

Commit af3a185

Browse files
authored
Revert "Implemented support for MSP jumbo frames, switched dataflash reading to be using jumbo frames."
1 parent 60cb7ab commit af3a185

File tree

6 files changed

+25
-85
lines changed

6 files changed

+25
-85
lines changed

js/msp.js

Lines changed: 9 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,13 @@ var MSP = {
1010
message_buffer: null,
1111
message_buffer_uint8_view: null,
1212
message_checksum: 0,
13-
messageIsJumboFrame: false,
1413

1514
callbacks: [],
1615
packet_error: 0,
1716
unsupported: 0,
1817

1918
last_received_timestamp: null,
2019
listeners: [],
21-
22-
JUMBO_FRAME_SIZE_LIMIT: 255,
2320

2421
read: function (readInfo) {
2522
var data = new Uint8Array(readInfo.data);
@@ -53,12 +50,13 @@ var MSP = {
5350
break;
5451
case 3:
5552
this.message_length_expected = data[i];
56-
if (this.message_length_expected === this.JUMBO_FRAME_SIZE_LIMIT) {
57-
this.messageIsJumboFrame = true;
58-
}
5953

6054
this.message_checksum = data[i];
6155

56+
// setup arraybuffer
57+
this.message_buffer = new ArrayBuffer(this.message_length_expected);
58+
this.message_buffer_uint8_view = new Uint8Array(this.message_buffer);
59+
6260
this.state++;
6361
break;
6462
case 4:
@@ -67,39 +65,13 @@ var MSP = {
6765

6866
if (this.message_length_expected > 0) {
6967
// process payload
70-
if (this.messageIsJumboFrame) {
71-
this.state++;
72-
} else {
73-
this.state = this.state + 3;
74-
}
68+
this.state++;
7569
} else {
7670
// no payload
77-
this.state += 5;
71+
this.state += 2;
7872
}
7973
break;
80-
case 5:
81-
this.message_length_expected = data[i];
82-
83-
this.message_checksum ^= data[i];
84-
85-
this.state++;
86-
87-
break;
88-
case 6:
89-
this.message_length_expected = this.message_length_expected + 256 * data[i];
90-
91-
this.message_checksum ^= data[i];
92-
93-
this.state++;
94-
95-
break;
96-
case 7:
97-
// setup arraybuffer
98-
this.message_buffer = new ArrayBuffer(this.message_length_expected);
99-
this.message_buffer_uint8_view = new Uint8Array(this.message_buffer);
100-
101-
this.state++;
102-
case 8: // payload
74+
case 5: // payload
10375
this.message_buffer_uint8_view[this.message_length_received] = data[i];
10476
this.message_checksum ^= data[i];
10577
this.message_length_received++;
@@ -108,7 +80,7 @@ var MSP = {
10880
this.state++;
10981
}
11082
break;
111-
case 9:
83+
case 6:
11284
if (this.message_checksum == data[i]) {
11385
// message received, store dataview
11486
this.dataView = new DataView(this.message_buffer, 0, this.message_length_expected);
@@ -120,7 +92,6 @@ var MSP = {
12092
// Reset variables
12193
this.message_length_received = 0;
12294
this.state = 0;
123-
this.messageIsJumboFrame = false;
12495
this.notify();
12596
break;
12697

@@ -239,4 +210,4 @@ var MSP = {
239210

240211
this.callbacks_cleanup();
241212
}
242-
};
213+
};

js/msp/MSPHelper.js

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -446,8 +446,6 @@ MspHelper.prototype.process_data = function(dataHandler) {
446446
'115200',
447447
'230400',
448448
'250000',
449-
'500000',
450-
'1000000'
451449
];
452450
if (semver.lt(CONFIG.apiVersion, "1.6.0")) {
453451
SERIAL_CONFIG.ports = [];
@@ -1048,8 +1046,6 @@ MspHelper.prototype.crunch = function(code) {
10481046
'115200',
10491047
'230400',
10501048
'250000',
1051-
'500000',
1052-
'1000000'
10531049
]; //TODO, instead of lookuptable, this should be sent as uint32
10541050
var serialPortFunctions = {
10551051
'MSP': 0,
@@ -1209,29 +1205,17 @@ MspHelper.prototype.setRawRx = function(channels) {
12091205
* Send a request to read a block of data from the dataflash at the given address and pass that address and a dataview
12101206
* of the returned data to the given callback (or null for the data if an error occured).
12111207
*/
1212-
MspHelper.prototype.dataflashRead = function(address, blockSize, onDataCallback) {
1213-
var outData = [address & 0xFF, (address >> 8) & 0xFF, (address >> 16) & 0xFF, (address >> 24) & 0xFF];
1214-
1215-
if (semver.gte(CONFIG.flightControllerVersion, "3.1.0")) {
1216-
outData = outData.concat([blockSize & 0xFF, (blockSize >> 8) & 0xFF]);
1217-
}
1218-
1219-
MSP.send_message(MSPCodes.MSP_DATAFLASH_READ, outData, false, function(response) {
1208+
MspHelper.prototype.dataflashRead = function(address, onDataCallback) {
1209+
MSP.send_message(MSPCodes.MSP_DATAFLASH_READ, [address & 0xFF, (address >> 8) & 0xFF, (address >> 16) & 0xFF, (address >> 24) & 0xFF],
1210+
false, function(response) {
12201211
var chunkAddress = response.data.readU32();
1221-
1222-
var headerSize = 4;
1223-
var dataSize = response.data.buffer.byteLength - headerSize;
1224-
if (semver.gte(CONFIG.flightControllerVersion, "3.1.0")) {
1225-
headerSize = headerSize + 2;
1226-
dataSize = response.data.readU16();
1227-
}
1228-
1212+
12291213
// Verify that the address of the memory returned matches what the caller asked for
12301214
if (chunkAddress == address) {
12311215
/* Strip that address off the front of the reply and deliver it separately so the caller doesn't have to
12321216
* figure out the reply format:
12331217
*/
1234-
onDataCallback(address, new DataView(response.data.buffer, response.data.byteOffset + headerSize, dataSize));
1218+
onDataCallback(address, new DataView(response.data.buffer, response.data.byteOffset + 4, response.data.buffer.byteLength - 4));
12351219
} else {
12361220
// Report error
12371221
onDataCallback(address, null);

js/serial_backend.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ $(document).ready(function () {
110110
$('input.auto_connect').prop('checked', true);
111111
$('input.auto_connect, span.auto_connect').prop('title', chrome.i18n.getMessage('autoConnectEnabled'));
112112

113-
$('select#baud').val(500000).prop('disabled', true);
113+
$('select#baud').val(115200).prop('disabled', true);
114114
} else {
115115
// disabled by user
116116
GUI.auto_connect = false;
@@ -127,7 +127,7 @@ $(document).ready(function () {
127127
if (GUI.auto_connect) {
128128
$('input.auto_connect, span.auto_connect').prop('title', chrome.i18n.getMessage('autoConnectEnabled'));
129129

130-
$('select#baud').val(500000).prop('disabled', true);
130+
$('select#baud').val(115200).prop('disabled', true);
131131
} else {
132132
$('input.auto_connect, span.auto_connect').prop('title', chrome.i18n.getMessage('autoConnectDisabled'));
133133

main.html

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,7 @@
116116
</div>
117117
<div class="dropdown dropdown-dark">
118118
<select class="dropdown-select" id="baud" title="Baud Rate">
119-
<option value="1000000">1000000</option>
120-
<option value="500000" selected="selected">500000</option>
121-
<option value="250000">250000</option>
122-
<option value="115200">115200</option>
119+
<option value="115200" selected="selected">115200</option>
123120
<option value="57600">57600</option>
124121
<option value="38400">38400</option>
125122
<option value="28800">28800</option>

tabs/onboard_logging.js

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ var
44
sdcardTimer;
55

66
TABS.onboard_logging = {
7-
available: false,
8-
BLOCK_SIZE: 4096
7+
available: false
98
};
109
TABS.onboard_logging.initialize = function (callback) {
1110
var
@@ -314,12 +313,7 @@ TABS.onboard_logging.initialize = function (callback) {
314313
$(".dataflash-saving")[0].close();
315314
}
316315

317-
function mark_saving_dialog_done(startTime, totalBytes) {
318-
var totalTime = (new Date().getTime() - startTime) / 1000;
319-
console.log('Received ' + totalBytes + ' bytes in ' + totalTime.toFixed(2) + 's ('
320-
+ (totalBytes / totalTime / 1024).toFixed(2) + 'kB / s) with block size ' + self.BLOCK_SIZE + '.');
321-
322-
316+
function mark_saving_dialog_done() {
323317
$(".dataflash-saving").addClass("done");
324318
}
325319

@@ -362,27 +356,26 @@ TABS.onboard_logging.initialize = function (callback) {
362356
if (saveCancelled) {
363357
dismiss_saving_dialog();
364358
} else {
365-
mark_saving_dialog_done(startTime, nextAddress);
359+
mark_saving_dialog_done();
366360
}
367361
} else {
368-
mspHelper.dataflashRead(nextAddress, self.BLOCK_SIZE, onChunkRead);
362+
mspHelper.dataflashRead(nextAddress, onChunkRead);
369363
}
370364
};
371365

372366
fileWriter.write(blob);
373367
} else {
374368
// A zero-byte block indicates end-of-file, so we're done
375-
mark_saving_dialog_done(startTime, nextAddress);
369+
mark_saving_dialog_done();
376370
}
377371
} else {
378372
// There was an error with the received block (address didn't match the one we asked for), retry
379-
mspHelper.dataflashRead(nextAddress, self.BLOCK_SIZE, onChunkRead);
373+
mspHelper.dataflashRead(nextAddress, onChunkRead);
380374
}
381375
}
382376

383-
var startTime = new Date().getTime();
384377
// Fetch the initial block
385-
mspHelper.dataflashRead(nextAddress, self.BLOCK_SIZE, onChunkRead);
378+
mspHelper.dataflashRead(nextAddress, onChunkRead);
386379
});
387380
});
388381
}

tabs/ports.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,7 @@ TABS.ports.initialize = function (callback, scrollPosition) {
3939
'19200',
4040
'38400',
4141
'57600',
42-
'115200',
43-
'230400',
44-
'250000',
45-
'500000',
46-
'1000000'
47-
42+
'115200'
4843
];
4944

5045
var gpsBaudRates = [

0 commit comments

Comments
 (0)