示例#1
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));
                }
        }
示例#2
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));
                }
        }
示例#3
0
        static void Main(string[] args)
        {
            var ipAddress = IPAddress.Parse("192.168.184.105");

            using (ICommunication communication = new UdpNetworkCommunication(ipAddress, 4003, 4003))
                using (IPanTiltControl control = new EneoPanTiltControl(communication))
                {
                    control.Start();
                    Thread.Sleep(200);
                    var currentPosition = control.GetPosition();
                    control.Stop();
                }


            //var ipAddress = IPAddress.Parse("192.168.184.105");
            //ICommunication communication = new TcpNetworkCommunication(new IPEndPoint(ipAddress, 4003));
            //var communication = new SerialPortCommunication("COM1");
            //ICommunication communication = new UdpNetworkCommunication(ipAddress, 4003, 4003);

            ////var reader = new FirmwareReader(communication);
            ////reader.Dispose();

            //IPanTiltControl panTiltControl = new EneoPanTiltControl(communication);
            //Thread.Sleep(1000);

            ////panTiltControl.ReinitializePosition();
            ////panTiltControl.ReinitializePosition(); //2x ???? Warum
            ////Console.WriteLine("Press enter for next command");
            ////Console.ReadLine();


            ////DriveRandomPositions(communication, false);
            //CircleMovementWithAbsolutePosition(communication, false);

            //communication.Dispose();
        }