예제 #1
0
 public void OnInitialize(CommunicationService com, int interval)
 {
     OnRelease();
     m_communication = com;
     m_interval = interval;
     m_timer = new Stopwatch();
     m_timer.Start();
     m_listener = new LeapListener(this);
     m_controller = new Controller();
     m_controller.SetPolicy(m_controller.PolicyFlags | Controller.PolicyFlag.POLICY_IMAGES | Controller.PolicyFlag.POLICY_BACKGROUND_FRAMES);
     m_controller.AddListener(m_listener);
 }
예제 #2
0
 public void OnRelease()
 {
     if (m_controller != null)
     {
         m_controller.RemoveListener(m_listener);
         m_controller.Dispose();
         m_controller = null;
     }
     m_listener = null;
     m_communication = null;
     if (m_timer != null)
     {
         m_timer.Stop();
         m_timer = null;
     }
 }
예제 #3
0
파일: Program.cs 프로젝트: PsichiX/Aegis
        static void Main(string[] args)
        {
            var argMode = ArgMode.None;
            var imageSource = ImageSource.LeapMotion;
            var receiverAddress = "localhost";
            var receiverPort = 8081;
            var token = "";
            var interval = 100;

            foreach (var arg in args)
            {
                if (argMode == ArgMode.None)
                {
                    if (arg == "-is" || arg == "--image-source")
                        argMode = ArgMode.ImageSource;
                    else if (arg == "-ra" || arg == "--receiver-address")
                        argMode = ArgMode.ReceiverAddress;
                    else if (arg == "-rp" || arg == "--receiver-port")
                        argMode = ArgMode.ReceiverPort;
                    else if (arg == "-t" || arg == "--token")
                        argMode = ArgMode.Token;
                    else if (arg == "-i" || arg == "--interval")
                        argMode = ArgMode.Interval;
                }
                else if (argMode == ArgMode.ImageSource)
                {
                    if (arg == "webcam")
                        imageSource = ImageSource.WebCam;
                    else if (arg == "leap")
                        imageSource = ImageSource.LeapMotion;
                    argMode = ArgMode.None;
                }
                else if (argMode == ArgMode.ReceiverAddress)
                {
                    receiverAddress = arg;
                    argMode = ArgMode.None;
                }
                else if (argMode == ArgMode.ReceiverPort)
                {
                    int v = receiverPort;
                    if (int.TryParse(arg, out v))
                        receiverPort = v;
                    argMode = ArgMode.None;
                }
                else if (argMode == ArgMode.Token)
                {
                    token = arg;
                    argMode = ArgMode.None;
                }
                else if (argMode == ArgMode.Interval)
                {
                    int v = interval;
                    if (int.TryParse(arg, out v))
                        interval = v;
                    argMode = ArgMode.None;
                }
            }

            ImagesService imagesService = null;
            if (imageSource == ImageSource.LeapMotion)
                imagesService = new LeapImagesService();
            if (imagesService != null)
            {
                var communication = new CommunicationService();
                Console.WriteLine("* Connectiong to server..");
                if (communication.Connect(receiverAddress, receiverPort, token))
                {
                    Console.WriteLine("* Connected to server!");
                    imagesService.OnInitialize(communication, interval);
                    while (true)
                    {
                        var line = Console.ReadLine();
                        if (line == "exit")
                            break;
                    }
                    imagesService.OnRelease();
                }
                else
                    Console.WriteLine("* Cannot connect to server!");
                communication.Disconnect();
                Thread.Sleep(1000);
            }
        }