mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-19 06:15:11 +03:00
Deduplicatrion of the queue and delayed release of hard lock
This commit is contained in:
parent
a4fd2bce9d
commit
93bb0eba4f
3 changed files with 32 additions and 1 deletions
|
@ -59,6 +59,15 @@ var mspQueue = function () {
|
|||
|
||||
privateScope.queueLocked = false;
|
||||
|
||||
privateScope.isMessageInQueue = function (code) {
|
||||
for (var i = 0; i < privateScope.queue.length; i++) {
|
||||
if (privateScope.queue[i].code == code) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
publicScope.setremoveCallback = function(cb) {
|
||||
privateScope.removeCallback = cb;
|
||||
}
|
||||
|
@ -86,6 +95,10 @@ var mspQueue = function () {
|
|||
privateScope.lockMethod = method;
|
||||
};
|
||||
|
||||
publicScope.getLockMethod = function () {
|
||||
return privateScope.lockMethod;
|
||||
};
|
||||
|
||||
publicScope.setSoftLock = function () {
|
||||
privateScope.softLock = new Date().getTime();
|
||||
};
|
||||
|
@ -223,6 +236,12 @@ var mspQueue = function () {
|
|||
*/
|
||||
publicScope.put = function (mspRequest) {
|
||||
|
||||
console.log(mspRequest.code);
|
||||
if (privateScope.isMessageInQueue(mspRequest.code)) {
|
||||
console.log('Message already in queue: ' + mspRequest.code);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (privateScope.queueLocked === true) {
|
||||
return false;
|
||||
}
|
||||
|
@ -317,6 +336,10 @@ var mspQueue = function () {
|
|||
}
|
||||
};
|
||||
|
||||
publicScope.getQueue = function () {
|
||||
return privateScope.queue;
|
||||
};
|
||||
|
||||
setInterval(publicScope.executor, Math.round(1000 / privateScope.handlerFrequency));
|
||||
setInterval(publicScope.balancer, Math.round(1000 / privateScope.balancerFrequency));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue