1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-23 08:15:19 +03:00

retry on timeout mechanism

This commit is contained in:
Pawel Spychalski (DzikuVx) 2017-01-20 20:34:24 +01:00
parent ba165a0f14
commit 9594880041
3 changed files with 31 additions and 2 deletions

View file

@ -92,6 +92,7 @@ var MSP = {
mspHelper.processData(this); mspHelper.processData(this);
} else { } else {
console.log('code: ' + this.code + ' - crc failed'); console.log('code: ' + this.code + ' - crc failed');
console.log(data);
this.packet_error++; this.packet_error++;
$('span.packet-error').html(this.packet_error); $('span.packet-error').html(this.packet_error);
@ -109,10 +110,27 @@ var MSP = {
this.last_received_timestamp = Date.now(); this.last_received_timestamp = Date.now();
}, },
/**
*
* @param {MSP} mspData
*/
putCallback: function (mspData) { putCallback: function (mspData) {
MSP.callbacks.push(mspData); MSP.callbacks.push(mspData);
}, },
/**
* @param {number} code
*/
removeCallback: function (code) {
for (var i in this.callbacks) {
if (this.callbacks.hasOwnProperty(i) && this.callbacks[i].code == code) {
clearTimeout(this.callbacks[i].timer);
this.callbacks.splice(i, 1);
}
}
},
send_message: function (code, data, callback_sent, callback_msp) { send_message: function (code, data, callback_sent, callback_msp) {
var bufferOut, var bufferOut,
bufView, bufView,

View file

@ -957,7 +957,7 @@ var mspHelper = (function (gui) {
var callback = dataHandler.callbacks[i].callback; var callback = dataHandler.callbacks[i].callback;
// remove timeout // remove timeout
clearInterval(dataHandler.callbacks[i].timer); clearTimeout(dataHandler.callbacks[i].timer);
// remove object from array // remove object from array
dataHandler.callbacks.splice(i, 1); dataHandler.callbacks.splice(i, 1);

View file

@ -40,7 +40,18 @@ helper.mspQueue = (function (serial, MSP) {
*/ */
privateScope.portInUse = true; privateScope.portInUse = true;
//TODO implement timeout scenario request.timer = setTimeout(function () {
console.log('MSP data request timed-out: ' + request.code);
/*
* Remove current callback
*/
MSP.removeCallback(request.code);
/*
* Create new entry in the queue
*/
publicScope.put(request);
}, serial.getTimeout());
/* /*
* Set receive callback here * Set receive callback here