private void CalcRA()
        {
            try
            {
                switch (raFormat_)
                {
                case RADecFormat.HMS:
                case RADecFormat.DMS:
                {
                    double min = Convert.ToDouble(textBoxRAMin.Text);
                    if (min < 0)
                    {
                        min = 0;
                    }
                    else if (min > 59)
                    {
                        min = 59;
                    }

                    double sec = Convert.ToDouble(textBoxRASec.Text);
                    if (sec < 0)
                    {
                        sec = 0;
                    }
                    else if (sec >= 60)
                    {
                        sec = 59.9;
                    }

                    double ra;
                    if (ClientCommonAPI.ParseSignedValue(textBoxRADeg.Text, out ra))
                    {
                        ra += (min + sec / 60.0) / 60.0;
                    }
                    else
                    {
                        ra -= (min + sec / 60.0) / 60.0;
                    }
                    ra_hour_ = SkyObjectPosCalc.Rev((raFormat_ == RADecFormat.HMS) ? ra * 15.0 : ra) / 15.0;
                }
                break;

                case RADecFormat.Degree:
                    ra_hour_ = SkyObjectPosCalc.Rev(Convert.ToDouble(textBoxRADeg.Text)) / 15.0;
                    break;
                }
            }
            catch (System.FormatException)
            {
                ra_hour_ = 0;
            }
            ObjectChanged();
        }
Exemple #2
0
        private void SetPositionText()
        {
            if (!posTextChanged_)
            {
                return;
            }
            posTextChanged_ = false;

            string s = "";

            if (connectionAltAzm_ == null || connectionEqu_ == null || alignment_ == null || !alignment_.IsAligned || object_ == null)
            {
                s += "--, --";
            }
            else
            {
                double d = ClientCommonAPI.CalcTime();
                double azm, alt;
                object_.CalcAzimuthal(d, latitude_, longitude_, out azm, out alt);
                PairA objScope = alignment_.Horz2Scope(new PairA(azm * Const.toRad, alt * Const.toRad), EquAngle);

                if (!showNearestAzmRotation_)
                {
                    s += ClientCommonAPI.PrintAzmAltDifference(SkyObjectPosCalc.Rev(objScope.Azm * Const.toDeg) - AzmAngle * Const.toDeg, (objScope.Alt - AltAngle) * Const.toDeg, oppositeHorzPositioningDir_);
                }
                else
                {
                    double azmd = SkyObjectPosCalc.Rev(objScope.Azm * Const.toDeg - AzmAngle * Const.toDeg);
                    if (azmd > 180)
                    {
                        azmd -= 360;
                    }
                    s += ClientCommonAPI.PrintAzmAltDifference(azmd, (objScope.Alt - AltAngle) * Const.toDeg, oppositeHorzPositioningDir_);
                }
            }

            textBoxPosition.Text = s;
        }
 public static double CalcTime(DateTime timeUtc)
 {
     return(SkyObjectPosCalc.CalcTime(timeUtc.Year, timeUtc.Month, timeUtc.Day, timeUtc.Hour, timeUtc.Minute, timeUtc.Second, timeUtc.Millisecond));
 }
Exemple #4
0
        private void SetScopePositionAndObjectText(bool sendPositionToStellarium)
        {
            if (!scopePosAndObjTextChanged_ && !sendPositionToStellarium)
            {
                return;
            }
            scopePosAndObjTextChanged_ = false;

            double d = ClientCommonAPI.CalcTime();

            string s = "";

            if (connectionAltAzm_ == null)
            {
                s += "Encoder Abs Positions Unknown" + Environment.NewLine;
            }
            else
            {
                s += "Encoder Abs Positions: Azm = " + ClientCommonAPI.PrintAngle(AzmAngle * Const.toDeg, false, false) + ", Alt = " + ClientCommonAPI.PrintAngle(AltAngle * Const.toDeg, false, false) + Environment.NewLine;
                s += "ErrCnt = " + errorCnt_ + Environment.NewLine;
            }

            if (connectionEqu_ == null)
            {
                s += "Equ Angle Unknown" + Environment.NewLine;
            }
            else
            {
                s += "Equ Angle = " + ClientCommonAPI.PrintAngle(EquAngle * Const.toDeg) + Environment.NewLine;
            }

            s += Environment.NewLine;
            if (connectionAltAzm_ == null || connectionEqu_ == null)
            {
                s += "Scope Position Unknown";
            }
            else if (alignment_ != null && alignment_.IsAligned)
            {
                PairA horz = alignment_.Scope2Horz(new PairA(AzmAngle, AltAngle), EquAngle);

                s += "Scope Position: Azm = " + ClientCommonAPI.PrintAngle(SkyObjectPosCalc.Rev(horz.Azm * Const.toDeg), false, false);
                s += ", Alt = " + ClientCommonAPI.PrintAngle(SkyObjectPosCalc.Rev(horz.Alt * Const.toDeg), false, false) + Environment.NewLine;

                double dec, ra;
                SkyObjectPosCalc.AzAlt2Equ(d, latitude_, longitude_, SkyObjectPosCalc.Rev(horz.Azm * Const.toDeg), SkyObjectPosCalc.Rev(horz.Alt * Const.toDeg), out dec, out ra);
                s += "R.A.\t= " + ClientCommonAPI.PrintTime(ra) + " (" + ra.ToString("F5") + "\x00B0)" + Environment.NewLine;
                s += "Dec.\t= " + ClientCommonAPI.PrintAngle(dec, true) + " (" + ClientCommonAPI.PrintDec(dec, "F5") + "\x00B0)" + Environment.NewLine;

                if (sendPositionToStellarium && stellariumConnection_ != null && stellariumConnection_.IsConnected)
                {
                    stellariumConnection_.SendPosition(dec, ra);
                }
            }

            s += Environment.NewLine;
            if (object_ == null)
            {
                s += "No Object Selected";
            }
            else
            {
                double azm, alt;
                object_.CalcAzimuthal(d, latitude_, longitude_, out azm, out alt);
                s += object_.Name + ": Azm = " + ClientCommonAPI.PrintAngle(azm, false, false);
                s += ", Alt = " + ClientCommonAPI.PrintAngle(alt, false, false) + Environment.NewLine;

                double dec, ra;
                object_.CalcTopoRaDec(d, latitude_, longitude_, out dec, out ra);
                s += "R.A.\t= " + ClientCommonAPI.PrintTime(ra) + " (" + ra.ToString("F5") + "\x00B0)" + Environment.NewLine;
                s += "Dec.\t= " + ClientCommonAPI.PrintAngle(dec, true) + " (" + ClientCommonAPI.PrintDec(dec, "F5") + "\x00B0)" + Environment.NewLine;

                /*
                 * double azm, alt;
                 * object_.CalcAzimuthal(d, latitude_, longitude_, out azm, out alt);
                 * s += "Azm.\t= " + ScopeDSCClient.PrintAngle(azm) + " (" + azm.ToString("F5") + "\x00B0)" + Environment.NewLine;
                 * s += "Alt.\t= " + ScopeDSCClient.PrintAngle(alt) + " (" + alt.ToString("F5") + "\x00B0)";
                 * */
            }

            textBoxObject.Text = s;
        }