///API-No.1
 /// <summary>
 /// 设置眼镜进入模式,运行过程中可修改
 /// </summary>
 public static void SetTrackMode(TrackMode mode)
 {
     if (SvrManager.Instance != null)
     {
         SvrManager.Instance.settings.trackPosition = (mode == TrackMode.Mode_6Dof ? true : false);
     }
 }
示例#2
0
 public TrackHistory(int x, int y, TrackSlope slope)
 {
     X     = (short)x;
     Y     = (short)y;
     Slope = slope;
     Mode  = TrackMode.Normal;
 }
        // Get tracked target *position* (at which light should point)
        Vector3?GetTrackTarget(TrackMode mode)
        {
            switch (mode)
            {
            case TrackMode.ActiveVessel:
            {
                if (vessel == FlightGlobals.ActiveVessel)
                {
                    return(null);
                }

                return(FlightGlobals.ActiveVessel?.transform.position);
            }

            case TrackMode.TargetVessel:
            {
                if (vessel == vessel?.targetObject?.GetVessel())
                {
                    return(null);
                }

                return(vessel?.targetObject?.GetTransform().position);
            }

            default:
                return(null);
            }
        }
示例#4
0
        // Calculate manages calculations that need to be run for each time step
        public void Calculate
        (
            double SunZenith                                    // The Zenith position of the sun with 0 being normal to the earth [radians]
            , double SunAzimuth                                 // The Azimuth position of the sun relative to 0 being true south. Positive if west, negative if east [radians]
            , double PanelTilt                                  // The angle between the surface tilt of the module and the ground [radians]
            , double PanelAzimuth                               // The azimuth direction in which the surface is facing. Positive if west, negative if east [radians]
            , double POABeam                                    // The amount of direct irradiance incident on the panel [W/m^2]
            , double POADiff                                    // The amount of diffuse irradiance incident on the panel [W/m^2]
            , double POAGRef                                    // The amount of ground reflected irradianc incident on the panel [W/m^2]
            , double HBeam                                      // The amount of direct irradiance incident on a horizontally oriented detector [W/m^2]
            , double HDiff                                      // The amount of diffuse irradiance incident on a horizontally oriented detector [W/m^2]
            , TrackMode ArrayTrackMode                          // The tracking mode, used to determine whether to calculate the diffuse factor in Config or Calculate
        )
        {
            // If the user inputs POA irradiance data, it is assumed to already account for horizon
            // If the horizon is either not defined or is 0, the horizon calculations do not need to be carried out
            // The horizon shaded irradiance factors are then assumed to be 1, therefore the horizon shaded irradiance is the same as that output by the tilter class
            if (ReadFarmSettings.UsePOA == true || horizonDefined != true)
            {
                TDir = POABeam;
                TDif = POADiff;
                TRef = POAGRef;
                TGlo = TDir + TDif + TRef;
            }
            else
            {
                // If there is no tracking, these calculations are taken care of in Config
                if (ArrayTrackMode != TrackMode.NOAT)
                {
                    // The full azimuthal range of the Horizon Profile is filled in using Interpolation
                    HorizonAzimInterpolated = InitializeHorizonProfile(PanelAzimuth);
                    HorizonElevInterpolated = GetInterpolatedElevationProfile(HorizonAzimExtended, HorizonElevExtended, HorizonAzimInterpolated);

                    // Calculates the limiting angle array
                    LimitingAngle = GetLimitingAngleArray(PanelTilt, PanelAzimuth, HorizonAzimInterpolated);

                    // The shading factor is calculated via numerical computation using the mathematical models described in the CASSYS documentation
                    DiffFactor = GetHorizonDiffuseFactor(PanelTilt, PanelAzimuth, HorizonAzimInterpolated, HorizonElevInterpolated, LimitingAngle);
                }

                BeamFactor = GetHorizonBeamFactor(SunAzimuth, SunZenith, HorizonAzimInterpolated, HorizonElevInterpolated, PanelAzimuth);

                GRefFactor = GetHorizonGRefFactor(BeamFactor, RefDiffFactor, HBeam, HDiff);

                // The horizon shaded irradiance values are those multiplied by the horizon shading factors
                TDir = BeamFactor * POABeam;
                TDif = DiffFactor * POADiff;
                TRef = GRefFactor * POAGRef;
                TGlo = TDir + TDif + TRef;
            }

            // Calculate horizon shading losses
            LossDir = POABeam - TDir;
            LossDif = POADiff - TDif;
            LossRef = POAGRef - TRef;
            LossGlo = LossDir + LossDif + LossRef;
        }
示例#5
0
        // Config takes values from the xml as well as manages calculations that need only to be run once
        public void Config
        (
            double PanelTiltFixed                                // The tilt of the panel, used in config if no tracking is selected [radians]
            , double PanelAzimFixed                              // The azimuth position of the panel, used in config if no tracking is selected [radians]
            , TrackMode ArrayTrackMode                           // The tracking mode, used to determine whether the diffuse fraction can be calculated in config
        )
        {
            // Loads the Horizon Profile from the .csyx document
            horizonDefined = Convert.ToBoolean(ReadFarmSettings.GetInnerText("O&S", "DefineHorizonProfile", ErrLevel.WARNING, _default: "false"));
            if (horizonDefined == true)
            {
                // Getting the horizon information from the .csyx file
                HorizonDefinitionAzimStr = ReadFarmSettings.GetInnerText("O&S", "HorizonAzi", ErrLevel.WARNING, "0.9", _default: "0");
                HorizonDefinitionElevStr = ReadFarmSettings.GetInnerText("O&S", "HorizonElev", ErrLevel.WARNING, "0.9", _default: "0");

                // Converts the Horizon Profile imported from the.csyx document into an array of doubles
                HorizonAzim = HorizonCSVStringtoArray(HorizonDefinitionAzimStr);
                HorizonElev = HorizonCSVStringtoArray(HorizonDefinitionElevStr);

                // If user inputs horizon azimuth/elevation data of two different lengths
                if (HorizonAzim.Length != HorizonElev.Length)
                {
                    ErrorLogger.Log("The number of horizon azimuth values is not equal to the number of horizon elevation values.", ErrLevel.FATAL);
                }

                // Extends the Horizon Profile by duplicating the first and last values and transposing them 360 degrees forward and backwards, respectively
                CalcExtendedHorizon(HorizonAzim, HorizonElev, out HorizonAzimExtended, out HorizonElevExtended);

                // The full azimuthal range of the Horizon Profile is filled in using Interpolation
                // The horizon profile must be calculated here both for the non-tracking case, as well as for the ground reflected diffuse factor for all tracking cases
                // It is calculated separately in the Calculate method for tracking cases
                HorizonAzimInterpolated = InitializeHorizonProfile(PanelAzimFixed);

                HorizonElevInterpolated = GetInterpolatedElevationProfile(HorizonAzimExtended, HorizonElevExtended, HorizonAzimInterpolated);

                // If there is no tracking implemented the diffuse horizon factor only needs to be calculated once, it is otherwise calculated in the Calculate method
                if (ArrayTrackMode == TrackMode.NOAT && ReadFarmSettings.UsePOA != true)
                {
                    // Calculates the limiting angle array
                    LimitingAngle = GetLimitingAngleArray(PanelTiltFixed, PanelAzimFixed, HorizonAzimInterpolated);

                    // The shading factor is calculated via numerical computation using the mathematical models described in the CASSYS documentation
                    DiffFactor = GetHorizonDiffuseFactor(PanelTiltFixed, PanelAzimFixed, HorizonAzimInterpolated, HorizonElevInterpolated, LimitingAngle);
                }

                // Creating the limiting angle array for the ground, all values are PI/2
                RefLimitingAngle = new double[361];
                for (int i = 0; i < RefLimitingAngle.Length; i++)
                {
                    RefLimitingAngle[i] = Math.PI / 2;
                }

                // Diffuse part of ground reflected factor only needs to be calculated once. 0s are used for azimuth and tilt of surface, as it represents the ground.
                RefDiffFactor = GetHorizonDiffuseFactor(0, 0, HorizonAzimInterpolated, HorizonElevInterpolated, RefLimitingAngle);
            }
        }
        private void InitializeMap()
        {
            TrackMode                = TrackMode.None;
            mapControl.MapClick     += WpfMap1_MapClick;
            mapControl.MapUnit       = GeographyUnit.Meter;
            mapControl.CurrentExtent = defaultExtent;

            InitializeMapTools();
            InitializeOverlays();
        }
示例#7
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            TrackMode layerName = (TrackMode)value;

            if (mapControlModes.ContainsKey(layerName))
            {
                return(mapControlModes[layerName]);
            }
            return(null);
        }
示例#8
0
文件: XTrack.cs 项目: zxsean/seqence
 public void SetFlag(TrackMode mode, bool flag)
 {
     if (flag)
     {
         this.mode |= mode;
     }
     else
     {
         this.mode &= ~(mode);
     }
 }
示例#9
0
 public static void SetTrackMode(this TrackInteractiveOverlay trackOverlay, TrackMode mode)
 {
     if (trackOverlay.TrackMode != mode)
     {
         trackOverlay.TrackMode = mode;
         if (mode == TrackMode.Polygon || mode == TrackMode.Line || mode == TrackMode.Point || mode == TrackMode.Multipoint)
         {
             SetStyle(trackOverlay.TrackShapeLayer);
         }
     }
 }
示例#10
0
            public HSFMotionGroupText(AnimationNode group)
            {
                Name       = group.Name;
                ValueIndex = group.ValueIndex;
                Mode       = group.Mode;

                foreach (AnimTrack track in group.GetTracks())
                {
                    Tracks.Add(new HSFMotionTrackText(track));
                }
            }
示例#11
0
        private void InitializeMap()
        {
            TrackMode                = TrackMode.None;
            mapControl.MapClick     += WpfMap1_MapClick;
            mapControl.MapUnit       = GeographyUnit.Meter;
            mapControl.ZoomLevelSet  = new ThinkGeoCloudMapsZoomLevelSet();
            mapControl.CurrentExtent = defaultExtent;

            InitializeMapTools();
            InitializeOverlays();
        }
示例#12
0
 public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
 {
     if (values.Length == 2 && values[0] is TrackMode && values[1] is MapControl)
     {
         TrackMode  trackMode  = (TrackMode)values[0];
         MapControl mapControl = (MapControl)values[1];
         return(mapControl.Behaviors.TrackBehavior.TrackMode == trackMode);
     }
     else
     {
         return(Binding.DoNothing);
     }
 }
        private string LabelFor(TrackMode mode)
        {
            switch (mode)
            {
            case TrackMode.ActiveVessel:
                return("Active vessel");

            case TrackMode.TargetVessel:
                return("Target vessel");

            default:
                throw new ArgumentOutOfRangeException(nameof(mode));
            }
        }
示例#14
0
        private void SetTrackFlag(TrackMode mode, bool v)
        {
            var tree   = SeqenceWindow.inst.tree;
            var tracks = tree.AllSelectTracks();

            if (tracks.Count > 1)
            {
                tracks.ForEach(x => x.track.SetFlag(mode, v));
            }
            else
            {
                track.SetFlag(mode, v);
            }
            SeqenceWindow.inst.Repaint();
        }
示例#15
0
 private static TrackEffect ParseEffect(TrackMode mode, string value)
 {
     if (mode == TrackMode.Attriubute)
     {
         return((TrackEffect)Enum.Parse(typeof(AttributeTrackEffect), value));
     }
     if (mode == TrackMode.Material)
     {
         return((TrackEffect)Enum.Parse(typeof(MaterialTrackEffect), value));
     }
     else
     {
         return((TrackEffect)Enum.Parse(typeof(TrackEffect), value));
     }
 }
        private void CancelDrawingMenuItem_Click(object sender, MouseButtonEventArgs e)
        {
            TrackMode tmpTrackMode = GisEditor.ActiveMap.TrackOverlay.TrackMode;

            GisEditor.ActiveMap.TrackOverlay.TrackMode = TrackMode.None;
            GisEditor.ActiveMap.TrackOverlay.TrackMode = tmpTrackMode;

            var circle = GisEditor.ActiveMap.TrackOverlay.OverlayCanvas.Children.OfType <System.Windows.Shapes.Ellipse>().FirstOrDefault();

            if (circle != null)
            {
                GisEditor.ActiveMap.TrackOverlay.OverlayCanvas.Children.Remove(circle);
            }

            EditingToolsViewModel.Instance.CancelCommand.Execute(null);
        }
示例#17
0
        private void SetTrackFlag(TrackMode mode, bool v)
        {
            var tree   = TimelineWindow.inst.tree;
            var tracks = tree.AllSelectTracks();

            if (tracks.Count > 1)
            {
                foreach (var track in tracks)
                {
                    track.track.SetFlag(mode, v);
                }
            }
            else
            {
                track.SetFlag(mode, v);
            }
            TimelineWindow.inst.Repaint();
        }
示例#18
0
文件: Helpers.cs 项目: paulyc/Aaru
        static TrackType TrackModeToTrackType(TrackMode trackType)
        {
            switch (trackType)
            {
            case TrackMode.Mode1: return(TrackType.CdMode1);

            case TrackMode.Mode2F1:
            case TrackMode.Mode2F1Alt: return(TrackType.CdMode2Form1);

            case TrackMode.Mode2F2:
            case TrackMode.Mode2F2Alt: return(TrackType.CdMode2Form2);

            case TrackMode.Mode2: return(TrackType.CdMode2Formless);

            case TrackMode.Audio: return(TrackType.Audio);

            default:              return(TrackType.Data);
            }
        }
示例#19
0
文件: Helpers.cs 项目: paulyc/Aaru
        static ushort TrackModeToCookedBytesPerSector(TrackMode trackMode)
        {
            switch (trackMode)
            {
            case TrackMode.Mode1:
            case TrackMode.Mode2F1:
            case TrackMode.Mode2F1Alt: return(2048);

            case TrackMode.Mode2F2:
            case TrackMode.Mode2F2Alt: return(2324);

            case TrackMode.Mode2: return(2336);

            case TrackMode.Audio: return(2352);

            case TrackMode.DVD:   return(2048);

            default:              return(0);
            }
        }
示例#20
0
        public virtual void OnDestroy()
        {
            Foreach(track => track.OnDestroy(), clip => clip.OnDestroy());
            ForeachMark(mark => mark.OnDestroy());

            childs = null;
            marks  = null;
            parent = null;
            clips  = null;
            mode   = 0;
            if (mixs != null)
            {
                for (int i = 0; i < mixs.Count; i++)
                {
                    SharedPool <MixClip> .Return(mixs[i]);
                }
                mixs.Clear();
                mixs = null;
            }
        }
示例#21
0
        private void InitializeMap()
        {
            TrackMode = TrackMode.None;
            mapControl.MapClick += WpfMap1_MapClick;
            mapControl.MapUnit = GeographyUnit.Meter;
            mapControl.CurrentExtent = defaultExtent;

            InitializeMapTools();
            InitializeOverlays();
        }
 public TrackModeViewModel(string name, TrackMode mode, string imagePath)
 {
     this.name      = name;
     this.mode      = mode;
     this.imagePath = imagePath;
 }
 public void CycleTrackMode()
 {
     SelectedTrackMode = SelectedTrackMode.Next();
     UpdateTrackModeControl();
 }
示例#24
0
        // Config manages calculations and initializations that need only to be run once
        public void Config()
        {
            bool useBifacial = Convert.ToBoolean(ReadFarmSettings.GetInnerText("Bifacial", "UseBifacialModel", ErrLevel.FATAL));

            if (useBifacial)
            {
                // Number of segments into which to divide up the ground [#]
                numGroundSegs = Util.NUM_GROUND_SEGS;

                switch (ReadFarmSettings.GetAttribute("O&S", "ArrayType", ErrLevel.FATAL))
                {
                // In all cases, pitch and clearance must be normalized to panel slope lengths
                case "Fixed Tilted Plane":
                    itsTrackMode = TrackMode.NOAT;
                    if (String.Compare(ReadFarmSettings.CASSYSCSYXVersion, "0.9.3") >= 0)
                    {
                        itsPanelTilt = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PlaneTiltFix", ErrLevel.FATAL));
                    }
                    else
                    {
                        itsPanelTilt = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PlaneTilt", ErrLevel.FATAL));
                    }
                    // itsPitch will be assigned in the below (numRows == 1) conditional
                    itsArrayBW   = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "CollBandWidthFix", ErrLevel.FATAL));
                    itsClearance = Convert.ToDouble(ReadFarmSettings.GetInnerText("Bifacial", "GroundClearance", ErrLevel.FATAL)) / itsArrayBW;
                    numRows      = 1;
                    break;

                case "Unlimited Rows":
                    itsTrackMode = TrackMode.NOAT;
                    itsPanelTilt = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PlaneTilt", ErrLevel.FATAL));
                    itsArrayBW   = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "CollBandWidth", ErrLevel.FATAL));
                    itsPitch     = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "Pitch", ErrLevel.FATAL)) / itsArrayBW;
                    itsClearance = Convert.ToDouble(ReadFarmSettings.GetInnerText("Bifacial", "GroundClearance", ErrLevel.FATAL)) / itsArrayBW;
                    numRows      = int.Parse(ReadFarmSettings.GetInnerText("O&S", "RowsBlock", ErrLevel.FATAL));
                    break;

                case "Single Axis Elevation Tracking (E-W)":
                    itsTrackMode = TrackMode.SAXT;
                    itsArrayBW   = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "WActiveSAET", ErrLevel.FATAL));
                    itsPitch     = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PitchSAET", ErrLevel.FATAL)) / itsArrayBW;
                    numRows      = int.Parse(ReadFarmSettings.GetInnerText("O&S", "RowsBlockSAET", ErrLevel.FATAL));
                    break;

                case "Single Axis Horizontal Tracking (N-S)":
                    itsTrackMode = TrackMode.SAXT;
                    itsArrayBW   = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "WActiveSAST", ErrLevel.FATAL));
                    itsPitch     = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PitchSAST", ErrLevel.FATAL)) / itsArrayBW;
                    numRows      = int.Parse(ReadFarmSettings.GetInnerText("O&S", "RowsBlockSAST", ErrLevel.FATAL));
                    break;

                default:
                    ErrorLogger.Log("Bifacial is not supported for the selected orientation and shading.", ErrLevel.FATAL);
                    break;
                }

                transFactor = Convert.ToDouble(ReadFarmSettings.GetInnerText("Bifacial", "PanelTransFactor", ErrLevel.FATAL));

                if (numRows == 1)
                {
                    // Pitch is needed for a single row because of ground patch calculations and geometry. Take value 100x greater than array bandwidth.
                    itsPitch   = 100;
                    itsRowType = RowType.SINGLE;
                }
                else
                {
                    itsRowType = RowType.INTERIOR;
                }

                // Initialize arrays
                frontGroundSH = new int[numGroundSegs];
                rearGroundSH  = new int[numGroundSegs];

                frontSkyViewFactors = new double[numGroundSegs];
                rearSkyViewFactors  = new double[numGroundSegs];

                frontGroundGHI = new double[numGroundSegs];
                rearGroundGHI  = new double[numGroundSegs];

                // Calculate sky view factors for diffuse shading. Stays constant for non-tracking systems, so done here in Config()
                if (itsTrackMode == TrackMode.NOAT)
                {
                    CalcSkyViewFactors();
                }
            }
        }
        private void InitializeProperties()
        {
            queryFilter = new EarthquakeQueryFilter();
            queryResults = new Collection<EarthquakeViewModel>();
            displayTypes = new ObservableCollection<FeatureLayerViewModel>();
            filteredQueryResults = new ObservableCollection<EarthquakeViewModel>();
            SelectedMapMode = MapControlModes.FirstOrDefault();

            foreach (FeatureLayer featureLayer in mapModel.StyleLayerOverlay.Layers.OfType<FeatureLayer>())
            {
                DisplayTypes.Add(new FeatureLayerViewModel(featureLayer));
            }
            SelectedFeatureLayer = DisplayTypes.FirstOrDefault();
        }
示例#26
0
文件: XTrack.cs 项目: zxsean/seqence
 protected XTrack()
 {
     ID   = XSeqence.IncID;
     mode = TrackMode.Normal;
 }
示例#27
0
        // Gathering the tracker mode, and relevant operational limits, and tracking axis characteristics.
        public void Config()
        {
            switch (ReadFarmSettings.GetAttribute("O&S", "ArrayType", ErrLevel.FATAL))
            {
            case "Fixed Tilted Plane":
                itsTrackMode = TrackMode.NOAT;
                if (String.Compare(ReadFarmSettings.CASSYSCSYXVersion, "0.9.3") >= 0)
                {
                    SurfSlope   = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PlaneTiltFix", ErrLevel.FATAL));
                    SurfAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AzimuthFix", ErrLevel.FATAL));
                }
                else
                {
                    SurfSlope   = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PlaneTilt", ErrLevel.FATAL));
                    SurfAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "Azimuth", ErrLevel.FATAL));
                }
                break;

            case "Fixed Tilted Plane Seasonal Adjustment":
                itsTrackMode       = TrackMode.FTSA;
                SurfAzimuth        = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AzimuthSeasonal", ErrLevel.FATAL));
                itsSummerMonth     = DateTime.ParseExact(ReadFarmSettings.GetInnerText("O&S", "SummerMonth", _Error: ErrLevel.FATAL), "MMM", CultureInfo.CurrentCulture).Month;
                itsWinterMonth     = DateTime.ParseExact(ReadFarmSettings.GetInnerText("O&S", "WinterMonth", _Error: ErrLevel.FATAL), "MMM", CultureInfo.CurrentCulture).Month;
                itsSummerDay       = int.Parse(ReadFarmSettings.GetInnerText("O&S", "SummerDay", _Error: ErrLevel.FATAL));
                itsWinterDay       = int.Parse(ReadFarmSettings.GetInnerText("O&S", "WinterDay", _Error: ErrLevel.FATAL));
                itsPlaneTiltSummer = Util.DTOR * double.Parse(ReadFarmSettings.GetInnerText("O&S", "PlaneTiltSummer", _Error: ErrLevel.FATAL));
                itsPlaneTiltWinter = Util.DTOR * double.Parse(ReadFarmSettings.GetInnerText("O&S", "PlaneTiltWinter", _Error: ErrLevel.FATAL));

                // Assume the simualtion will begin when the array is in the summer tilt
                SurfSlope = itsPlaneTiltSummer;

                break;

            case "Unlimited Rows":
                itsTrackMode = TrackMode.NOAT;
                // Defining all the parameters for the shading of a unlimited row array configuration
                SurfSlope   = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PlaneTilt", ErrLevel.FATAL));
                SurfAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "Azimuth", ErrLevel.FATAL));
                break;

            case "Single Axis Elevation Tracking (E-W)":
                // Tracker Parameters
                itsTrackMode      = TrackMode.SAXT;
                itsTrackerAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AxisAzimuthSAET", ErrLevel.FATAL));
                itsTrackerSlope   = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AxisTiltSAET", ErrLevel.FATAL));

                // Operational Limits
                itsMinTilt = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "MinTiltSAET", ErrLevel.FATAL));
                itsMaxTilt = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "MaxTiltSAET", ErrLevel.FATAL));


                // Backtracking Options
                useBackTracking = Convert.ToBoolean(ReadFarmSettings.GetInnerText("O&S", "BacktrackOptSAET", ErrLevel.WARNING, _default: "false"));
                if (useBackTracking)
                {
                    itsTrackerPitch = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PitchSAET", ErrLevel.FATAL));
                    itsTrackerBW    = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "WActiveSAET", ErrLevel.FATAL));
                }
                break;

            case "Single Axis Horizontal Tracking (N-S)":
                // Tracker Parameters
                itsTrackMode      = TrackMode.SAXT;
                itsTrackerSlope   = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AxisTiltSAST", ErrLevel.FATAL));
                itsTrackerAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AxisAzimuthSAST", ErrLevel.FATAL));

                // Operational Limits
                itsMaxTilt = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "RotationMaxSAST", ErrLevel.FATAL));


                // Backtracking Options
                useBackTracking = Convert.ToBoolean(ReadFarmSettings.GetInnerText("O&S", "BacktrackOptSAST", ErrLevel.WARNING, _default: "false"));
                if (useBackTracking)
                {
                    itsTrackerPitch = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PitchSAST", ErrLevel.FATAL));
                    itsTrackerBW    = Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "WActiveSAST", ErrLevel.FATAL));
                }
                break;


            case "Tilt and Roll Tracking":
                // Tracker Parameters
                itsTrackMode      = TrackMode.SAXT;
                itsTrackerSlope   = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AxisTiltTART", ErrLevel.FATAL));
                itsTrackerAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AxisAzimuthTART", ErrLevel.FATAL));

                // Operational Limits
                itsMinRotationAngle = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "RotationMinTART", ErrLevel.FATAL));
                itsMaxRotationAngle = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "RotationMaxTART", ErrLevel.FATAL));

                break;

            case "Two Axis Tracking":
                itsTrackMode = TrackMode.TAXT;
                // Operational Limits
                itsMinTilt    = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "MinTiltTAXT", ErrLevel.FATAL));
                itsMaxTilt    = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "MaxTiltTAXT", ErrLevel.FATAL));
                itsAzimuthRef = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AzimuthRefTAXT", ErrLevel.FATAL));
                itsMinAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "MinAzimuthTAXT", ErrLevel.FATAL));
                itsMaxAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "MaxAzimuthTAXT", ErrLevel.FATAL));
                break;

            case "Azimuth (Vertical Axis) Tracking":
                itsTrackMode = TrackMode.AVAT;
                // Surface Parameters
                SurfSlope = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "PlaneTiltAVAT", ErrLevel.FATAL));
                // Operational Limits
                itsAzimuthRef = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "AzimuthRefAVAT", ErrLevel.FATAL));
                itsMinAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "MinAzimuthAVAT", ErrLevel.FATAL));
                itsMaxAzimuth = Util.DTOR * Convert.ToDouble(ReadFarmSettings.GetInnerText("O&S", "MaxAzimuthAVAT", ErrLevel.FATAL));
                break;

            default:
                ErrorLogger.Log("No orientation and shading was specified by the user.", ErrLevel.FATAL);
                break;
            }
        }
示例#28
0
文件: XTrack.cs 项目: zxsean/seqence
 public bool GetFlag(TrackMode mode)
 {
     return((this.mode & mode) > 0);
 }
示例#29
0
 private void AppendToHistory(TrackSlope slope, TrackMode mode = TrackMode.Normal)
 {
     _history[_length]      = new TrackHistory(_history[_length - 1].X + _xDirection, (int)_history[_length - 1].Y + (int)slope, slope);
     _history[_length].Mode = mode;
     _length++;
 }
示例#30
0
 protected XTrack()
 {
     ID   = XTimeline.IncID;
     mode = TrackMode.Normal;
 }