hawkeye camera support(not tested)
This commit is contained in:
58
framework/Inspectron.HawkEye/UDTServer.cs
Normal file
58
framework/Inspectron.HawkEye/UDTServer.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using Inspectron.HawkEye.Protocol;
|
||||
using Inspectron.HawkEye.Protocol.Interfaces;
|
||||
using UdtSharp;
|
||||
|
||||
namespace Inspectron.HawkEye
|
||||
{
|
||||
public class UDTServer
|
||||
{
|
||||
private readonly IImageSource _imageSource;
|
||||
UdtSharp.UdtSocket _server;
|
||||
public UDTServer(IImageSource imageSource)
|
||||
{
|
||||
_imageSource = imageSource;
|
||||
|
||||
_server = new UdtSharp.UdtSocket(AddressFamily.InterNetwork, SocketType.Stream);
|
||||
|
||||
_server.Bind(new IPEndPoint(IPAddress.Any, 27001));
|
||||
|
||||
_server.Listen(1);
|
||||
}
|
||||
|
||||
|
||||
public void Receive()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
var socket=_server.Accept();
|
||||
byte[] buffer = new byte[10];
|
||||
while (socket.IsConnected())
|
||||
{
|
||||
|
||||
socket.Receive(buffer, 0, 10);
|
||||
|
||||
switch ((ERequestType) buffer[0])
|
||||
{
|
||||
case ERequestType.Trigger:
|
||||
{
|
||||
var image = _imageSource.GetImage();
|
||||
int sent = 0;
|
||||
while (sent < image.Length)
|
||||
{
|
||||
sent += socket.Send(image, sent, image.Length - sent);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user