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)); } }
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(); }