1
0
Fork 0
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:
Pawel Spychalski (DzikuVx) 2024-04-26 12:05:17 +02:00
parent a4fd2bce9d
commit 93bb0eba4f
3 changed files with 32 additions and 1 deletions

View file

@ -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));