Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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);
         }
     }
 }
Ejemplo n.º 3
0
        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));
                }
        }
Ejemplo n.º 4
0
        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));
                }
        }
Ejemplo n.º 5
0
 public void SetPanTiltControl(IPanTiltControl panTiltControl)
 {
     this._panTiltControl = panTiltControl as AlturosPanTiltControl;
 }