Esempio n. 1
0
        // 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
        }
Esempio n. 2
0
        // 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"
            });
        }
Esempio n. 3
0
        // 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"
            });
        }
Esempio n. 4
0
        // 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
        }
Esempio n. 5
0
        // 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
            });
        }
Esempio n. 6
0
        // 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"
            });
        }
Esempio n. 7
0
        // 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"
            });
        }
Esempio n. 8
0
        // 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
        }
Esempio n. 9
0
        // 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"
            });
        }
Esempio n. 10
0
        // 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"
            });
        }
Esempio n. 11
0
 /// <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)
 {
 }
Esempio n. 12
0
 /// <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)
 {
 }
Esempio n. 13
0
 /// <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)
 {
 }