Beispiel #1
0
        /// <summary>
        /// Create streamer collection by given device params.
        /// </summary>
        public static StreamerCollection CreateStreamerCollection(IEnumerable <DeviceType> deviceTypes, IDictionary <DeviceType, IDevice> devices, IClock clock,
                                                                  out IDictionary <DeviceType, IStreamer> deviceStreamers)
        {
            deviceStreamers = new Dictionary <DeviceType, IStreamer>();
            var streamers = new StreamerCollection();

            foreach (var deviceType in deviceTypes)
            {
                // ReSharper disable once RedundantAssignment
                if (!devices.TryGetValue(deviceType, out var instance))
                {
                    instance = null;
                }
                if (deviceType.StreamerFactory == null)
                {
                    continue;
                }
                if (deviceType.StreamerFactory.IsDeviceDependent && instance == null)
                {
                    continue;
                }
                var streamer = deviceType.StreamerFactory.Create(instance, clock);
                System.Diagnostics.Debug.Assert(streamer != null);
                streamers.Add(deviceStreamers[deviceType] = streamer);
            }
            if (!deviceStreamers.TryGetValue(MarkerSourceDeviceType, out _))
            {
                streamers.Add(deviceStreamers[MarkerSourceDeviceType] = new MarkerStreamer(null, clock));
            }
            return(streamers);
        }
Beispiel #2
0
 private void CreateMarkers( )
 {
     // Create some markers
     MarkerStreamer.CreateDynamicMarker(MarkerTypes.MarkerTypeVerticalCylinder, new Vector3(-879.655f, -853.499f, 19.566f), new Vector3(1), color: new Rgba(125, 52, 21, 255));
     MarkerStreamer.CreateDynamicMarker(MarkerTypes.MarkerTypePlaneModel, new Vector3(-869.655f, -853.499f, 19.566f), new Vector3(1), color: new Rgba(25, 231, 125, 255));
     MarkerStreamer.CreateDynamicMarker(MarkerTypes.MarkerTypeChevronUpx2, new Vector3(-859.655f, -853.499f, 19.566f), new Vector3(1), color: new Rgba(125, 10, 250, 255));
 }
Beispiel #3
0
        public MarkerDisplayWindow(MarkerStreamer streamer, int maxRecordCount)
        {
            InitializeComponent();
            MarkListView.ItemsSource = _marks;

            Loaded += Window_OnLoaded;
            Closed += Window_OnClosed;
            KeyUp  += Window_OnKeyUp;

            _streamer = streamer;
            _streamer.Attach(this);

            _maxRecordCount = maxRecordCount;
        }
Beispiel #4
0
        private async Task OnConsoleCommand(string name, string[] args)
        {
            // destroy all markers
            if (name == "dao")
            {
                MarkerStreamer.DestroyAllDynamicMarkers( );
                Console.WriteLine($"all markers destroyed.");
            }

            // create all markers
            if (name == "cao")
            {
                MarkerStreamer.DestroyAllDynamicMarkers( );
                CreateMarkers( );
            }

            // destroy marker
            if (name == "do")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong markerId = Convert.ToUInt64(args[0]);
                if (MarkerStreamer.DestroyDynamicMarker(markerId))
                {
                    Console.WriteLine($"Marker with ID { markerId } deleted!");
                }
            }

            // change rotation
            if (name == "cr")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong markerId = Convert.ToUInt64(args[0]);
                var   marker   = MarkerStreamer.GetDynamicMarker(markerId);
                if (marker != null)
                {
                    Vector3 rot = marker.Rotation;
                    marker.Rotation = new Vector3(rot.X, rot.Y, rot.Z + 5f);
                    Console.WriteLine($"Marker rotation increased on Z with +5f");
                }
                else
                {
                    Console.WriteLine($"Couldnt find marker with ID { markerId }");
                }
            }

            // change direction
            if (name == "cd")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong markerId = Convert.ToUInt64(args[0]);
                var   marker   = MarkerStreamer.GetDynamicMarker(markerId);
                if (marker != null)
                {
                    Vector3 dir = marker.Direction;
                    marker.Direction = new Vector3(dir.X, dir.Y, dir.Z + 5f);
                    Console.WriteLine($"Marker direction increased on Z with +5f");
                }
                else
                {
                    Console.WriteLine($"Couldnt find marker with ID { markerId }");
                }
            }

            // change type
            if (name == "ct")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong markerId = Convert.ToUInt64(args[0]);
                var   marker   = MarkerStreamer.GetDynamicMarker(markerId);
                if (marker != null)
                {
                    var variations = Enum.GetValues(typeof(MarkerTypes));

                    marker.MarkerType = ( MarkerTypes )variations.GetValue(new Random( ).Next(variations.Length));
                    Console.WriteLine($"Marker type changed to a random type");
                }
                else
                {
                    Console.WriteLine($"Couldnt find marker with ID { markerId }");
                }
            }

            // change pos
            if (name == "cp")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong markerId = Convert.ToUInt64(args[0]);
                var   marker   = MarkerStreamer.GetDynamicMarker(markerId);
                if (marker != null)
                {
                    Console.WriteLine($"marker pos: { marker.Position.Z }");

                    marker.Position += new Vector3(0, 0, 5);
                    Console.WriteLine($"Marker position increased on Z with +5f { marker.Position.Z }");
                }
                else
                {
                    Console.WriteLine($"Couldnt find marker with ID { markerId }");
                }
            }

            // get marker by ID
            if (name == "go")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong markerId = Convert.ToUInt64(args[0]);
                var   marker   = MarkerStreamer.GetDynamicMarker(markerId);
                if (marker != null)
                {
                    Console.WriteLine($"Marker found, data: { marker.MarkerType }, { marker.Rotation.X }, { marker.Rotation.Y }, { marker.Rotation.Z }, ...!");
                }
                else
                {
                    Console.WriteLine($"Couldnt find marker with ID { markerId }");
                }
            }

            // count markers
            if (name == "countmarker")
            {
                Console.WriteLine($"total markers created: { MarkerStreamer.GetAllDynamicMarkers( ).Count }");
            }
        }
Beispiel #5
0
 public override void OnStop( )
 {
     MarkerStreamer.DestroyAllDynamicMarkers( );
     Console.WriteLine($"Server stopped.");
 }