public void SendCommand() { this._counter = 0; using (var communication = new MockCommunication()) { communication.SendData += this.SendData; using (var control = new AlturosPanTiltControl(communication, true)) { // Absolute movement sends one command control.PanAbsolute(-47.17); control.PanAbsolute(47.17); // Relative movement sends two commands control.PanRelative(90.50); control.PanRelative(-90.55); control.TiltRelative(45.05); control.TiltRelative(45.10); } communication.SendData -= this.SendData; } Assert.AreEqual(10, this._counter); }
public void ReceiveDataTest() { using (var communication = new MockCommunication()) { using (var control = new AlturosPanTiltControl(communication, true)) { communication.Receive("GP+12445-03589"); var position = control.GetPosition(); Assert.AreEqual(124.45, position.Pan); Assert.AreEqual(-35.89, position.Tilt); } } }
public ActionResult MoveToPosition([FromQuery] string ipAddress, [FromBody] PanTiltPosition position) { this._logger.LogDebug($"MoveToPosition {ipAddress} {position}"); using (ICommunication communication = new UdpNetworkCommunication(IPAddress.Parse(ipAddress), 5555)) using (IPanTiltControl panTiltControl = new AlturosPanTiltControl(communication)) { if (panTiltControl.PanTiltAbsolute(position)) { return(StatusCode(StatusCodes.Status200OK)); } return(StatusCode(StatusCodes.Status400BadRequest)); } }
public async Task <ActionResult <PanTiltPosition> > GetCurrentPositionAsync([FromQuery] string ipAddress) { this._logger.LogDebug($"GetCurrentPosition {ipAddress}"); using (ICommunication communication = new UdpNetworkCommunication(IPAddress.Parse(ipAddress), 5555)) using (IPanTiltControl panTiltControl = new AlturosPanTiltControl(communication)) { if (!panTiltControl.Start()) { return(StatusCode(StatusCodes.Status500InternalServerError)); } await Task.Delay(200); var position = panTiltControl.GetPosition(); if (!panTiltControl.Stop()) { return(StatusCode(StatusCodes.Status500InternalServerError)); } return(StatusCode(StatusCodes.Status200OK, position)); } }
public void SetPanTiltControl(IPanTiltControl panTiltControl) { this._panTiltControl = panTiltControl as AlturosPanTiltControl; }