// Implements the means to speak out the RA down count in ft above ground /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_RAcallout(GUI.GUI_Speech speaker) : base(speaker) { m_name = "RA Callout"; m_test = "100"; // need to set this below the lowest callout level, it will be activated only once we are above our detection RA m_lastTriggered = -1; // the bands must accomodate for VSpeeds up to ~ -1000 fps on the way down and capture each of the levels with some margin // bands must never overlap and should not callout way too early or too late // 1000fps is ~ 17 ft/sec, having about 4 reports/sec is a datapoint resolution of about 4ft // the detector band is set to +-10 above 100, +-5 at 50 and less below - it should therefore catch levels all the time // The readout takes about 1.2 sec too - we should hit the level only after the readout finishes to percieve it as on spot (1.2 sec with -500 VS = 10ft) // In the final flare at 20,10 are with way less VS (else the plane has crashed..) - // VS >500 this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(c_RAgroundOffset + 400.0f, 10.0f), Callback = Say, Text = "400" }); // detect in 410..390 this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(c_RAgroundOffset + 300.0f, 10.0f), Callback = Say, Text = "300" }); // detect in 310..290 this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(c_RAgroundOffset + 200.0f, 10.0f), Callback = Say, Text = "200" }); // detect in 210..190 this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(c_RAgroundOffset + 100.0f, 10.0f), Callback = Say, Text = "100" }); // detect in 110.. 90 // VS ~500 this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(c_RAgroundOffset + 54.0f, 4.0f), Callback = Say, Text = "50" }); // detect in 58..50 this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(c_RAgroundOffset + 44.0f, 4.0f), Callback = Say, Text = "40" }); // detect in 48..40 this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(c_RAgroundOffset + 34.0f, 4.0f), Callback = Say, Text = "30" }); // detect in 38..30 // VS << 500 this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(c_RAgroundOffset + 23.0f, 3.0f), Callback = Say, Text = "20" }); // detect in 26..20 this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(c_RAgroundOffset + 13.0f, 2.0f), Callback = Say, Text = "10" }); // detect in 15..11 }
// Implements the means to speak out the Gear State /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_WarnFuel(GUI.GUI_Speech speaker) : base(speaker) { m_name = "Fuel Warning"; m_test = "Low Fuel Alert"; // add the proc most likely to be hit as the first - saves some computing time on the long run this.AddProc(new EventProcBinary( ) { TriggerState = true, Callback = Say, Text = "Low Fuel Alert" }); }
// Implements the means to speak out the AP - ALT hold State /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_AltHold(GUI.GUI_Speech speaker) : base(speaker) { m_name = "AP ALT Hold"; m_test = "Holding 5000 feet"; // add the proc most likely to be hit as the first - saves some computing time on the long run m_lastTriggered = false; this.AddProc(new EventProcBinary( ) { TriggerState = true, Callback = Say, Text = "Holding" }); }
// Implements the means to speak out the IAS Rotate /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_IAS_Rotate(GUI.GUI_Speech speaker) : base(speaker) { m_name = "IAS Rotate"; m_test = "Rotate"; m_lastTriggered = 100.0f; // set triggered when starting up // add the proc most likely to be hit as the first - saves some computing time on the long run this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(100.0f, 2.0f), Callback = Say, Text = "Rotate" }); // take from design speeds }
// Implements the means to speak out the AP Glideslope Active State /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_Glideslope(GUI.GUI_Speech speaker) : base(speaker) { m_name = "AP GS Capture"; m_test = _slope; // add the proc most likely to be hit as the first - saves some computing time on the long run m_lastTriggered = false; this.AddProc(new EventProcBinary( ) { TriggerState = true, Callback = Say, Text = _text }); }
// Implements the means to speak out the Gear State /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_Gear(GUI.GUI_Speech speaker) : base(speaker) { m_name = "Gear state"; m_test = "Gear Down"; // add the proc most likely to be hit as the first - saves some computing time on the long run this.AddProc(new EventProcBinary( ) { TriggerState = false, Callback = Say, Text = "Gear Up" }); this.AddProc(new EventProcBinary( ) { TriggerState = true, Callback = Say, Text = "Gear Down" }); }
// Implements the means to speak out the Gear State /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_Brakes(GUI.GUI_Speech speaker) : base(speaker) { m_name = "Parkingbrake"; m_test = "Parkingbrake Set"; // add the proc most likely to be hit as the first - saves some computing time on the long run this.AddProc(new EventProcBinary( ) { TriggerState = false, Callback = Say, Text = "Parkingbrake Released" }); this.AddProc(new EventProcBinary( ) { TriggerState = true, Callback = Say, Text = "Parkingbrake Set" }); }
// Implements the means to speak out the OAT Alerts /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_OAT(GUI.GUI_Speech speaker) : base(speaker) { m_name = "OAT Icing"; m_test = "Icing Alert"; m_lastTriggered = 20; // trigger at start // add the proc most likely to be hit as the first - saves some computing time on the long run this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(3.0f, 1.0f), Callback = Say, Text = "Low Air Temperature" }); // around 3 °C this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(-5.0f, 5.0f), Callback = Say, Text = "Icing Alert" }); // capture 0..-10 change }
// Implements the means to speak out the Flaps State /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_Flaps(GUI.GUI_Speech speaker) : base(speaker) { m_name = "Flaps state"; m_test = "Flaps Down"; // add the proc most likely to be hit as the first - saves some computing time on the long run this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(0.0f, 0.05f), Callback = Say, Text = "Flaps Up" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(0.2f, 0.05f), Callback = Say, Text = "Flaps 20" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(0.3f, 0.05f), Callback = Say, Text = "Flaps 30" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(0.4f, 0.05f), Callback = Say, Text = "Flaps 40" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(0.5f, 0.05f), Callback = Say, Text = "Flaps 50" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(0.6f, 0.05f), Callback = Say, Text = "Flaps 60" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(0.7f, 0.05f), Callback = Say, Text = "Flaps 70" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(0.8f, 0.05f), Callback = Say, Text = "Flaps 80" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(1.0f, 0.05f), Callback = Say, Text = "Flaps Down" }); }
// Implements the means to speak out the Waypoint ETE in seconds /// <summary> /// cTor: /// </summary> /// <param name="speaker">A valid Speech obj to speak from</param> public T_WaypointETE(GUI.GUI_Speech speaker) : base(speaker) { m_name = "GPS Waypoint sec."; m_test = "Waypoint in 60"; // add the proc most likely to be hit as the first - saves some computing time on the long run this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(90.0f, 8.0f), Callback = Say, Text = "Waypoint in 90" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(60.0f, 6.0f), Callback = Say, Text = "Waypoint in 60" }); this.AddProc(new EventProcFloat( ) { TriggerStateF = new TriggerBandF(30.0f, 5.0f), Callback = Say, Text = "Waypoint in 30" }); }
/// <summary> /// cTor: get the speaker /// </summary> /// <param name="speaker">A GUI_Speech object to talk from</param> public TriggerFloat(GUI.GUI_Speech speaker) : base(speaker) { }
/// <summary> /// cTor: get the speaker /// </summary> /// <param name="speaker">A GUI_Speech object to talk from</param> public TriggerInteger(GUI.GUI_Speech speaker) : base(speaker) { }
/// <summary> /// cTor: get the speaker /// </summary> /// <param name="speaker">A GUI_Speech object to talk from</param> public TriggerBinary(GUI.GUI_Speech speaker) : base(speaker) { }