示例#1
0
        public bool PreNextStep(IAgAsHpopPluginResult Result)
        {
            try
            {
                if (m_Enabled)
                {
                    m_PreNextCntr++;
                    DebugMsg(m_PreNextCntr,
                             m_PreNextMsgInterval,
                             m_Name + ".PreNextStep() called the " + m_PreNextCntr + "th time");
                }
            }
            catch (Exception ex)
            {
                m_Enabled = false;

                Message(AgEUtLogMsgType.eUtLogMsgAlarm,
                        m_Name + ".Init(): Exception Message( " + ex.Message + " )");

                Message(AgEUtLogMsgType.eUtLogMsgAlarm,
                        m_Name + ".Init(): Exception StackTr( " + ex.StackTrace + " )");
            }
            finally
            {
            }

            return(m_Enabled);
        }
示例#2
0
        public bool PostPropagate(IAgAsHpopPluginResult Result)
        {
            try
            {
                if (m_Enabled)
                {
                    DebugMsg(0, 1, m_Name + ".PostPropagate() called");
                }
            }
            catch (Exception ex)
            {
                m_Enabled = false;

                Message(AgEUtLogMsgType.eUtLogMsgAlarm,
                        m_Name + ".Init(): Exception Message( " + ex.Message + " )");

                Message(AgEUtLogMsgType.eUtLogMsgAlarm,
                        m_Name + ".Init(): Exception StackTr( " + ex.StackTrace + " )");
            }
            finally
            {
            }

            return(m_Enabled);
        }
示例#3
0
        public bool PreNextStep(IAgAsHpopPluginResult Result)
        {
            try
            {
                if (this.m_PreNextCntr % this.m_PreNextMsgInterval == 0)
                {
                    Debug.WriteLine("--> Entered", this.m_Name + ".PreNextStep()");
                }

                this.m_PreNextCntr++;

                if (this.m_UPS != null)
                {
                    if (this.m_Enabled)
                    {
                        if (this.m_MsgStatus)
                        {
                            if (this.m_PreNextCntr % this.m_PreNextMsgInterval == 0)
                            {
                                this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PreNextStep( " + this.m_PreNextCntr + " ):");
                            }
                        }
                    }
                    else
                    {
                        if (this.m_MsgStatus)
                        {
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PreNextStep(): Disabled");
                        }
                    }
                }
                else
                {
                    throw new Exception("UtPluginSite was null");
                }
            }
            catch (Exception ex)
            {
                this.m_Enabled = false;

                if (this.m_UPS != null)
                {
                    this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PreNextStep(): Exception Message( " + ex.Message + " )");
                    this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PreNextStep(): Exception StackTr( " + ex.StackTrace + " )");
                }
                Debug.WriteLine("Exception Message( " + ex.Message + " )", this.m_Name + ".PreNextStep()");
                Debug.WriteLine("Exception StackTr( " + ex.StackTrace + " )", this.m_Name + ".PreNextStep()");
            }
            finally
            {
                if (this.m_PreNextCntr % this.m_PreNextMsgInterval == 0)
                {
                    Debug.WriteLine("<-- Exited", this.m_Name + ".PreNextStep()");
                }
            }

            return(this.m_Enabled);
        }
示例#4
0
        public bool PreNextStep(IAgAsHpopPluginResult Result)
        {
            try
            {
                m_MsgCntr++;

                if (m_Enabled)
                {
                    if (m_DebugMode)
                    {
                        if ((m_MsgCntr % m_MsgInterval) == 0)
                        {
                            double deltaT = Result.TimeSinceRefEpoch;

                            Message(AgEUtLogMsgType.eUtLogMsgDebug, "PreNextStep( " + m_MsgCntr + " ): Time since Ref Epoch = " + deltaT + " secs");
                        }
                    }
                }
                else if (m_DebugMode == true)
                {
                    Message(AgEUtLogMsgType.eUtLogMsgDebug, "PreNextStep(): Disabled");
                }
            }
            catch (Exception ex)
            {
                this.m_Enabled = false;

                Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PreNextStep(): Exception Message( " + ex.Message + " )");
                Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PreNextStep(): Exception StackTr( " + ex.StackTrace + " )");

                Debug.WriteLine("Exception Message( " + ex.Message + " )", this.m_Name + ".PreNextStep()");
                Debug.WriteLine("Exception StackTr( " + ex.StackTrace + " )", this.m_Name + ".PreNextStep()");
            }
            finally
            {
                if (this.m_MsgCntr % this.m_MsgInterval == 0)
                {
                    Debug.WriteLine("<-- Exited", this.m_Name + ".PreNextStep()");
                }
            }

            m_EvalMsgsOn   = true;
            m_EvalMsgCount = 0;

            return(this.m_Enabled);
        }
示例#5
0
        public bool PostPropagate(IAgAsHpopPluginResult Result)
        {
            Debug.WriteLine("--> Entered", this.m_Name + ".PostPropagate()");

            if (m_DebugMode)
            {
                if (m_Enabled)
                {
                    Message(AgEUtLogMsgType.eUtLogMsgDebug, "PostPropagate(): Enabled");
                }
                else
                {
                    Message(AgEUtLogMsgType.eUtLogMsgDebug, "PostPropagate(): Disabled");
                }
            }

            Debug.WriteLine("<-- Exited", this.m_Name + ".PostPropagate()");

            // don't output on every call here  - this gets called alot and would output too many messages!

            return(this.m_Enabled);
        }
示例#6
0
        public bool PrePropagate(IAgAsHpopPluginResult Result)
        {
            try
            {
                Debug.WriteLine("--> Entered", this.m_Name + ".PrePropagate()");

                if (m_Enabled == true)
                {
                    // Insure that SRP is On
                    bool srpIsOn = Result.IsForceModelOn(AgEForceModelType.eSRPModel);

                    if (!srpIsOn)
                    {
                        m_Enabled = false;

                        Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PrePropagate(): SRP must be ON for this plugin to work but is currently OFF.");
                        Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PrePropagate(): Turning OFF all methods for " + this.m_Name);

                        return(m_Enabled);
                    }

                    // compute terms that don't change over time

                    m_SpeedOfLight   = Result.LightSpeed;
                    m_SpacecraftMass = Result.TotalMass;

                    double tempVal = m_SpacecraftMass * m_SpeedOfLight;

                    if (m_DebugMode)
                    {
                        Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Mass = " + m_SpacecraftMass);
                        Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): c = " + m_SpeedOfLight);
                    }

                    m_BusTerm = Math.PI * m_BusRadius * m_BusRadius *
                                (1.0 + 4.0 / 9.0 * m_DiffuseReflectivity) / tempVal;

                    m_SA_Term = Math.PI * m_SA_AntennaRadius * m_SA_AntennaRadius *
                                (1.0 + 4.0 / 9.0 * m_DiffuseReflectivity) / tempVal;

                    m_BP1Term = m_SolarPanelArrayArea / (3.0 * tempVal);
                    m_BP2Term = m_OtherArea / (3.0 * tempVal);

                    if (m_DebugMode)
                    {
                        Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): BP1Term = " + m_BP1Term);
                        Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): BP2Term = " + m_BP2Term);
                        Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Bus_Term = " + m_BusTerm);
                        Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): SA_Term = " + m_SA_Term);
                    }
                }
                else if (m_DebugMode == true)
                {
                    Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Disabled");
                }
            }
            catch (Exception ex)
            {
                this.m_Enabled = false;

                Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PrePropagate(): Exception Message( " + ex.Message + " )");
                Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PrePropagate(): Exception StackTr( " + ex.StackTrace + " )");

                Debug.WriteLine("Exception Message( " + ex.Message + " )", this.m_Name + ".PrePropagate()");
                Debug.WriteLine("Exception StackTr( " + ex.StackTrace + " )", this.m_Name + ".PrePropagate()");
            }
            finally
            {
                Debug.WriteLine("<-- Exited", this.m_Name + ".PrePropagate()");
            }

            return(this.m_Enabled);
        }
示例#7
0
        public bool PrePropagate(IAgAsHpopPluginResult Result)
        {
            try
            {
                Debug.WriteLine("--> Entered", this.m_Name + ".PrePropagate()");

                if (this.m_UPS != null)
                {
                    if (this.m_Enabled)
                    {
                        int    WholeDays   = 0;
                        double SecsIntoDay = 0.0;
                        int    Year        = 0;
                        int    DayOfYear   = 0;
                        int    Month       = 0;
                        int    DayOfMonth  = 0;
                        int    Hours       = 0;
                        int    Minutes     = 0;
                        double Seconds     = 0.0;

                        if (Result != null)
                        {
                            Result.RefEpochElements(AgEUtTimeScale.eUtTimeScaleUTC, ref WholeDays, ref SecsIntoDay, ref Year, ref DayOfYear, ref Month, ref DayOfMonth, ref Hours, ref Minutes, ref Seconds);

                            m_SrpIsOn = Result.IsForceModelOn(AgEForceModelType.eSRPModel);
                            if (m_SrpIsOn)
                            {
                                this.m_SRPArea = Result.SRPArea;
                            }
                        }

                        if (this.m_MsgStatus)
                        {
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate():");
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Epoch WholeDays( " + WholeDays + " )");
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Epoch SecsIntoDay( " + SecsIntoDay + " )");
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Epoch Year( " + Year + " )");
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Epoch DayOfYear( " + DayOfYear + " )");
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Epoch Month( " + Month + " )");
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Epoch Hours( " + Hours + " )");
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Epoch Minutes( " + Minutes + " )");
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".PrePropagate(): Epoch Seconds( " + Seconds + " )");
                        }
                    }
                    else
                    {
                        if (this.m_MsgStatus)
                        {
                            this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgDebug, this.m_Name + ".Prepropagate(): Disabled");
                        }
                    }
                }
                else
                {
                    throw new Exception("UtPluginSite was null");
                }
            }
            catch (Exception ex)
            {
                this.m_Enabled = false;

                if (this.m_UPS != null)
                {
                    this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PrePropagate(): Exception Message( " + ex.Message + " )");
                    this.m_UPS.Message(AgEUtLogMsgType.eUtLogMsgAlarm, this.m_Name + ".PrePropagate(): Exception StackTr( " + ex.StackTrace + " )");
                }
                Debug.WriteLine("Exception Message( " + ex.Message + " )", this.m_Name + ".PrePropagate()");
                Debug.WriteLine("Exception StackTr( " + ex.StackTrace + " )", this.m_Name + ".PrePropagate()");
            }
            finally
            {
                Debug.WriteLine("<-- Exited", this.m_Name + ".PrePropagate()");
            }

            return(this.m_Enabled);
        }