mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-23 16:25:19 +03:00
Extract mspDeduplicationQueue to separate file
This commit is contained in:
parent
2156090a0d
commit
040b0cec52
6 changed files with 55 additions and 41 deletions
|
@ -5,6 +5,7 @@ const MSPCodes = require('./msp/MSPCodes');
|
|||
const SimpleSmoothFilter = require('./simple_smooth_filter');
|
||||
const PidController = require('./pid_controller');
|
||||
const eventFrequencyAnalyzer = require('./eventFrequencyAnalyzer');
|
||||
const mspDeduplicationQueue = require('./msp/mspDeduplicationQueue');
|
||||
|
||||
var mspQueue = function () {
|
||||
|
||||
|
@ -42,38 +43,6 @@ var mspQueue = function () {
|
|||
privateScope.removeCallback = null;
|
||||
privateScope.putCallback = null;
|
||||
|
||||
/**
|
||||
* This is the list of all messages that are currently in queue, including being already dispatched via radio and waiting for response
|
||||
*/
|
||||
privateScope.messagesInQueue = [];
|
||||
|
||||
//Store new code in the queue
|
||||
publicScope.storeMessage = function (code) {
|
||||
privateScope.messagesInQueue.push(code);
|
||||
};
|
||||
|
||||
//Remove code from the queue
|
||||
publicScope.removeMessage = function (code) {
|
||||
var index = privateScope.messagesInQueue.indexOf(code);
|
||||
if (index > -1) {
|
||||
privateScope.messagesInQueue.splice(index, 1);
|
||||
}
|
||||
};
|
||||
|
||||
//List all messages in the queue
|
||||
publicScope.getMessages = function () {
|
||||
return privateScope.messagesInQueue;
|
||||
};
|
||||
|
||||
//Check if message is in the queue
|
||||
publicScope.isMessageInQueue = function (code) {
|
||||
return privateScope.messagesInQueue.indexOf(code) > -1;
|
||||
};
|
||||
|
||||
publicScope.flushMessages = function () {
|
||||
privateScope.messagesInQueue = [];
|
||||
};
|
||||
|
||||
publicScope.computeDropRatio = function () {
|
||||
privateScope.dropRatio = privateScope.loadPidController.run(publicScope.getLoad());
|
||||
};
|
||||
|
@ -196,7 +165,7 @@ var mspQueue = function () {
|
|||
|
||||
request.timer = setTimeout(function () {
|
||||
console.log('MSP data request timed-out: ' + request.code);
|
||||
publicScope.removeMessage(request.code);
|
||||
mspDeduplicationQueue.remove(request.code);
|
||||
/*
|
||||
* Remove current callback
|
||||
*/
|
||||
|
@ -262,19 +231,19 @@ var mspQueue = function () {
|
|||
|
||||
console.log('Received message ', mspRequest.code);
|
||||
|
||||
const isMessageInQueue = publicScope.isMessageInQueue(mspRequest.code);
|
||||
const isMessageInQueue = mspDeduplicationQueue.check(mspRequest.code);
|
||||
|
||||
if (isMessageInQueue) {
|
||||
console.log('Message already in queue: ' + mspRequest.code);
|
||||
return false;
|
||||
}
|
||||
|
||||
publicScope.storeMessage(mspRequest.code);
|
||||
|
||||
if (privateScope.queueLocked === true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
mspDeduplicationQueue.put(mspRequest.code);
|
||||
|
||||
privateScope.queue.push(mspRequest);
|
||||
return true;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue