public static Position SurroundSearch(Position start, short maxRange, IPositionChecker checker) { for (short actualR = 1; actualR < maxRange; ++actualR) { for (short x = ((short)(start.X - actualR)); x <= start.X + actualR; ++x) { short topY = ((short)(start.Y + actualR)); if (checker.CheckPosition(x, topY)) { return(new Position(x, topY)); } if (checker.CheckPosition(x, (short)-topY)) { return(new Position(x, -topY)); } } for (short y = ((short)(start.Y - actualR + 1)); y < start.Y + actualR; ++y) { short topX = ((short)(actualR + start.X)); if (checker.CheckPosition(topX, y)) { return(new Position(topX, y)); } if (checker.CheckPosition((short)-topX, y)) { return(new Position(-topX, y)); } } } return(start); }
public SpeedDetectionLogicPan(ICommunication communication) { this._communication = communication; this._panTiltControl = new EneoPanTiltControl(this._communication); this._panTiltControl.PositionChanged += OnPositionChanged; this._positionChecker = new PositionChecker(this._panTiltControl); this._panTiltControl.Start(); }
public SpeedTestLogic(ICommunication communication, AxisType axisType) { this._axisType = axisType; this._panTiltControl = new EneoPanTiltControl(communication); this._panTiltControl.PositionChanged += OnPositionChanged; this._positionChecker = new PositionChecker(this._panTiltControl); this._panTiltControl.Start(); }
public void SetPanTiltControl(IPanTiltControl panTiltControl) { this._panTiltControl = panTiltControl; this._positionChecker = new PositionChecker(this._panTiltControl); this._panTiltControl.PositionChanged += PanTiltPositionChanged; this._panTiltControl.LimitChanged += PanTiltLimitChanged; this.CheckPtLimitAsync().GetAwaiter().GetResult(); }
public void SetPanTiltControl(IPanTiltControl panTiltControl) { this._panTiltControl = panTiltControl; this._positionChecker = new PositionChecker(this._panTiltControl); this._panTiltControl.PositionChanged += PanTiltPositionChanged; this._panTiltControl.LimitChanged += PanTiltLimitChanged; this.CheckPtLimit(); }
public const int TIMEOUT_TIME = 1000; // msec public MainWindow() { InitializeComponent(); kinectService = new KinectService(); positionChecker = new PositionChecker(kinectService); robot = new Robot(positionChecker); skeletonDrawer = new SkeletonDrawer(); this.Closing += MainWindow_Closing; this.DataContext = new MainWindowViewModel(kinectService, skeletonDrawer); }
public SpeedTestLogic(ICommunication communication, PanTiltControlType panTiltControlType, AxisType axisType) { this._axisType = axisType; if (panTiltControlType == PanTiltControlType.Eneo) { this._panTiltControl = new EneoPanTiltControl(communication); } else { this._panTiltControl = new AlturosPanTiltControl(communication); } this._panTiltControl.PositionChanged += OnPositionChanged; this._positionChecker = new PositionChecker(this._panTiltControl); this._panTiltControl.Start(); }
public SpeedDetectionLogicPan(ICommunication communication, PanTiltControlType panTiltControlType) { this._communication = communication; if (panTiltControlType == PanTiltControlType.Eneo) { this._panTiltControl = new EneoPanTiltControl(this._communication); } else { this._panTiltControl = new AlturosPanTiltControl(this._communication); } this._panTiltControl.PositionChanged += OnPositionChanged; this._positionChecker = new PositionChecker(this._panTiltControl); this._panTiltControl.Start(); }
public const int TIMEOUT_TIME = 1000; // msec public Robot(IPositionChecker positionChecker) { if (zigbee.zgb_initialize(DEFAULT_PORTNUM) == 0) { Console.WriteLine("Failed to open Zig2Serial!"); Console.WriteLine("Press any key to terminate..."); Console.ReadKey(true); return; } else { Console.WriteLine("Succeed to open Zig2Serial!"); } _positionChecker = positionChecker; _positionChecker.MatchFound += _positionChecker_MatchFound; }
private async Task StartPanTiltCommunication() { if (string.IsNullOrEmpty(this._deviceConfiguration.PanTiltIpAddress)) { return; } try { switch (this._deviceConfiguration.CommunicationType) { case CommunicationType.NetworkTcp: this._communication = new TcpNetworkCommunication(new IPEndPoint(IPAddress.Parse(this._deviceConfiguration.PanTiltIpAddress), 4003)); break; case CommunicationType.NetworkUdp: var port = 4003; if (this._deviceConfiguration.PanTiltControlType == PanTiltControlType.Alturos) { port = 5555; } this._communication = new UdpNetworkCommunication(IPAddress.Parse(this._deviceConfiguration.PanTiltIpAddress), port, port); break; case CommunicationType.SerialPort: this._communication = new SerialPortCommunication(this._deviceConfiguration.ComPort); break; } } catch (Exception exception) { MessageBox.Show($"Cannot initialize communication, error:{exception.ToString()}", "Communication error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this._communication.SendData += this.CommunicationSendData; this._communication.ReceiveData += this.CommunicationReceiveData; using (var firmwareReader = new FirmwareReader(this._communication)) { this.labelFirmware.Invoke(o => o.Text = $"Firmware: {firmwareReader.Firmware}"); await Task.Delay(100).ConfigureAwait(false); } switch (this._deviceConfiguration.PanTiltControlType) { case PanTiltControlType.Alturos: this._panTiltControl = new AlturosPanTiltControl(this._communication); break; case PanTiltControlType.Eneo: this._panTiltControl = new EneoPanTiltControl(this._communication); break; } this._panTiltControl.PositionChanged += OnPositionChanged; this._positionChecker = new PositionChecker(this._panTiltControl); this._panTiltControl.Start(); this.SetSmoothing(100, 50); Thread.Sleep(500); this.GetLimitInfos(); }
public AnimalFinder(IField field, IPositionChecker positionChecker, IDistanceHandler distanceHandler) { _positionChecker = positionChecker; _field = field; _distanceHandler = distanceHandler; }
private async Task StartPanTiltCommunication() { if (string.IsNullOrEmpty(this._deviceConfiguration.PanTiltIpAddress)) { return; } try { switch (this._deviceConfiguration.CommunicationType) { case CommunicationType.NetworkTcp: this._communication = new TcpNetworkCommunication(new IPEndPoint(IPAddress.Parse(this._deviceConfiguration.PanTiltIpAddress), 4003)); break; case CommunicationType.NetworkUdp: if (this._deviceConfiguration.PanTiltControlType == PanTiltControlType.Alturos) { this._communication = new UdpNetworkCommunication(IPAddress.Parse(this._deviceConfiguration.PanTiltIpAddress), 5555); } else { this._communication = new UdpNetworkCommunication(IPAddress.Parse(this._deviceConfiguration.PanTiltIpAddress), 4003, 4003); } break; case CommunicationType.SerialPort: this._communication = new SerialPortCommunication(this._deviceConfiguration.ComPort); break; } } catch (Exception exception) { MessageBox.Show($"Cannot initialize communication, error:{exception.ToString()}", "Communication error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this._communication.SendData += this.CommunicationSendData; this._communication.ReceiveData += this.CommunicationReceiveData; switch (this._deviceConfiguration.PanTiltControlType) { case PanTiltControlType.Alturos: this.mainTabControl.TabPages.Remove(this.tabPageEneo); this._panTiltControl = new AlturosPanTiltControl(this._communication); this.communicationHistoryControl1.SetTranslator(new AlturosFeedbackTranslator()); break; case PanTiltControlType.Eneo: this.mainTabControl.TabPages.Remove(this.tabPageAlturos); this._panTiltControl = new EneoPanTiltControl(this._communication); this.communicationHistoryControl1.SetTranslator(new EneoFeedbackTranslator()); break; } if (this._panTiltControl is IFirmwareReader firmwareReader) { var firmware = await firmwareReader.GetFirmwareAsync(); this.labelFirmware.Invoke(o => o.Text = $"Firmware: {firmware}"); } else { this.labelFirmware.Invoke(o => o.Text = $"Cannot get firmware info"); } this._panTiltControl.PositionChanged += OnPositionChanged; this._panTiltControl.LimitChanged += OnLimitChanged; this._panTiltControl.NoPositionFeedbackReceived += NoPositionFeedbackReceived; this._positionChecker = new PositionChecker(this._panTiltControl); this._panTiltControl.Start(); Thread.Sleep(500); this.GetLimitInfos(); }
public PositionHandler(IPositionChecker positionChecker, IField field, IPathHandler pathHandler) { _positionChecker = positionChecker; _field = field; _pathHandler = pathHandler; }
public PointReplacer(IPositionChecker positionChecker, IField field) { _positionChecker = positionChecker; _field = field; }
public void SetPanTiltControl(IPanTiltControl panTiltControl) { this._panTiltControl = panTiltControl; this._panTiltControl.PositionChanged += PositionChanged; this._positionChecker = new PositionChecker(this._panTiltControl); }