Switch ECAM controller to Emesary
This commit is contained in:
parent
b171018c27
commit
d8a962d969
6 changed files with 35 additions and 36 deletions
|
@ -240,9 +240,7 @@ var IESIRecipient =
|
|||
NewIESIRecipient.MainScreen = canvas_IESI.new("Aircraft/A320-family/Models/Instruments/IESI/res/iesi.svg", "A320 IESI");
|
||||
}
|
||||
|
||||
#if (!math.mod(notifications.frameNotification.FrameCount,2)){
|
||||
NewIESIRecipient.MainScreen.update(notification);
|
||||
#}
|
||||
NewIESIRecipient.MainScreen.update(notification);
|
||||
return emesary.Transmitter.ReceiptStatus_OK;
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_NotProcessed;
|
||||
|
|
|
@ -973,14 +973,13 @@ var UpperECAMRecipient =
|
|||
}
|
||||
}
|
||||
|
||||
#if (!math.mod(notifications.frameNotification.FrameCount,2)){
|
||||
if (EWDRecipient.type) {
|
||||
EWDRecipient.MainScreen.updateIAE(notification);
|
||||
} else {
|
||||
EWDRecipient.MainScreen.updateCFM(notification);
|
||||
|
||||
}
|
||||
#}
|
||||
if (EWDRecipient.type) {
|
||||
EWDRecipient.MainScreen.updateIAE(notification);
|
||||
} else {
|
||||
EWDRecipient.MainScreen.updateCFM(notification);
|
||||
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_OK;
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_NotProcessed;
|
||||
|
|
|
@ -26,6 +26,7 @@ var flash = 0;
|
|||
var hasCleared = 0;
|
||||
var statusFlag = 0;
|
||||
var counter = 0;
|
||||
var counterClear = 0;
|
||||
var noMainMsg = 0;
|
||||
var storeFirstWarning = nil;
|
||||
|
||||
|
@ -260,22 +261,16 @@ var status = {
|
|||
var ECAM_controller = {
|
||||
_recallCounter: 0,
|
||||
_noneActive: 0,
|
||||
counter: 0,
|
||||
_ready: 0,
|
||||
init: func() {
|
||||
ECAMloopTimer.start();
|
||||
me.counter = 0;
|
||||
me.reset();
|
||||
me._ready = 1;
|
||||
},
|
||||
loop: func() {
|
||||
loop: func(notification) {
|
||||
if (!me._ready) {
|
||||
return;
|
||||
}
|
||||
if ((systems.ELEC.Bus.acEss.getValue() >= 110 or systems.ELEC.Bus.ac2.getValue() >= 110) and !pts.Acconfig.running.getBoolValue()) {
|
||||
# update FWC phases
|
||||
if (me.counter == 0) {
|
||||
phaseLoop();
|
||||
me.counter = 1;
|
||||
return;
|
||||
}
|
||||
me.counter = 0;
|
||||
|
||||
# check active messages
|
||||
messages_priority_3();
|
||||
messages_priority_2();
|
||||
|
@ -303,7 +298,7 @@ var ECAM_controller = {
|
|||
}
|
||||
|
||||
# write to ECAM
|
||||
var counter = 0;
|
||||
counter = 0;
|
||||
|
||||
if (!pts.Acconfig.running.getBoolValue()) {
|
||||
foreach (var w; warnings.vector) {
|
||||
|
@ -352,6 +347,7 @@ var ECAM_controller = {
|
|||
}
|
||||
},
|
||||
reset: func() {
|
||||
me._ready = 0;
|
||||
foreach (var w; warnings.vector) {
|
||||
if (w.active == 1) {
|
||||
w.active = 0;
|
||||
|
@ -390,15 +386,15 @@ var ECAM_controller = {
|
|||
},
|
||||
clear: func() {
|
||||
hasCleared = 0;
|
||||
counter = 0;
|
||||
counterClear = 0;
|
||||
noMainMsg = 0;
|
||||
storeFirstWarning = nil;
|
||||
|
||||
# first go through the first eight, see how many mainMsg there are
|
||||
foreach (var w; warnings.vector) {
|
||||
if (counter >= 8) { break; }
|
||||
if (counterClear >= 8) { break; }
|
||||
if (w.active == 1 and w.clearFlag != 1 and w.isMemo != 1) {
|
||||
counter += 1;
|
||||
counterClear += 1;
|
||||
if (w.isMainMsg == 1) {
|
||||
if (noMainMsg == 0) {
|
||||
storeFirstWarning = w;
|
||||
|
@ -410,11 +406,11 @@ var ECAM_controller = {
|
|||
|
||||
# then, if there is an overflow and noMainMsg == 1, we clear the first shown ones
|
||||
if (leftOverflow.getBoolValue() and noMainMsg == 1) {
|
||||
counter = 0;
|
||||
counterClear = 0;
|
||||
foreach (var w; warnings.vector) {
|
||||
if (counter >= 8) { break; }
|
||||
if (counterClear >= 8) { break; }
|
||||
if (w.active == 1 and w.clearFlag != 1 and w.isMemo != 1) {
|
||||
counter += 1;
|
||||
counterClear += 1;
|
||||
if (w.isMainMsg == 1) { continue; }
|
||||
w.clearFlag = 1;
|
||||
hasCleared = 1;
|
||||
|
@ -482,10 +478,6 @@ setlistener("/systems/electrical/bus/dc-ess", func {
|
|||
}
|
||||
}, 0, 0);
|
||||
|
||||
var ECAMloopTimer = maketimer(0.15, func {
|
||||
ECAM_controller.loop();
|
||||
});
|
||||
|
||||
# Flash Master Warning Light
|
||||
var shutUpYou = func() {
|
||||
lights[0].setBoolValue(0);
|
||||
|
|
|
@ -352,8 +352,13 @@ var ECAMRecipient =
|
|||
{
|
||||
if (notification.NotificationType == "FrameNotification")
|
||||
{
|
||||
if (!math.mod(notifications.frameNotification.FrameCount,2)){
|
||||
debug.dump(notifications.frameNotification.FrameCount);
|
||||
if (notifications.frameNotification.FrameCount == 5){
|
||||
ECAM.loop(notification);
|
||||
} elsif (notifications.frameNotification.FrameCount == 7){
|
||||
phaseLoop();
|
||||
} elsif (notifications.frameNotification.FrameCount == 10){
|
||||
ECAM_controller.loop(notification);
|
||||
}
|
||||
return emesary.Transmitter.ReceiptStatus_OK;
|
||||
}
|
||||
|
|
|
@ -96,3 +96,8 @@ var FrameNotificationAddProperty =
|
|||
#
|
||||
var frameNotification = FrameNotification.new(1);
|
||||
|
||||
|
||||
# Frame count
|
||||
# 5 = ECAM
|
||||
# 7 = FWC phases
|
||||
# 10 = ECAM messages
|
|
@ -24,7 +24,7 @@ var cur_frame_inc = 0.05;
|
|||
var execLoop = func
|
||||
{
|
||||
notifications.frameNotification.fetchvars();
|
||||
if (notifications.frameNotification.FrameCount >= 1) {
|
||||
if (notifications.frameNotification.FrameCount > 10) {
|
||||
notifications.frameNotification.FrameCount = 0;
|
||||
}
|
||||
emesary.GlobalTransmitter.NotifyAll(notifications.frameNotification);
|
||||
|
|
Loading…
Reference in a new issue