コード例 #1
0
ファイル: Program.cs プロジェクト: devangkantharia/Efficio
        private static void HandleEvents(Frame frame)
        {
            foreach (var ev in frame.GetEvents())
            {
                switch (ev.GetEventType())
                {
                case EventType.EfficioStarted:
                    Console.WriteLine("Efficio Started");
                    break;

                case EventType.SensorConnecting:
                    var connecting = SWIGHelper.CastTo <Connecting>(ev);
                    Console.WriteLine(connecting.SensorInformation.Name + " Connecting");
                    break;

                case EventType.SensorConnected:
                    var connected = SWIGHelper.CastTo <Connected>(ev);
                    Console.WriteLine(connected.SensorInformation.Name + " Connected");
                    break;

                case EventType.SensorDisconnecting:
                    var disconnecting = SWIGHelper.CastTo <Disconnecting>(ev);
                    Console.WriteLine(disconnecting.SensorInformation.Name + " Disconnecting");
                    break;

                case EventType.SensorDisconnected:
                    var disconnected = SWIGHelper.CastTo <Disconnected>(ev);
                    Console.WriteLine(disconnected.SensorInformation.Name + " Disconnected");
                    break;

                case EventType.SensorFaulted:
                    var faulted = SWIGHelper.CastTo <Faulted>(ev);
                    Console.WriteLine(faulted.SensorInformation.Name + " Faulted");
                    break;

                case EventType.Pinch:
                    var pinch  = SWIGHelper.CastTo <Pinch>(ev);
                    var finger = pinch.Finger1;

                    var handData = frame.GetDataOfType <HandData>();

                    if (handData.Count() > 0)
                    {
                        var hand = handData.SelectMany(x => x.Hands).First(x => x.ID == (pinch.HandID));
                        Console.WriteLine("Pinch detected by " + hand.Source + " at frame " + frame.ID);
                    }
                    break;

                default:
                    break;
                }
            }
        }
コード例 #2
0
ファイル: Frame.cs プロジェクト: devangkantharia/Efficio
        public System.Collections.Generic.IEnumerable <T> GetDataOfType <T>()
        {
            System.Collections.Generic.List <T> collection = new System.Collections.Generic.List <T>();
            DataType dataType = GetDataTypeForType <T>();

            foreach (var datum in this.Data)
            {
                if (datum.GetDataType() == dataType)
                {
                    collection.Add(SWIGHelper.CastTo <T>(datum));
                }
            }

            return(collection);
        }
コード例 #3
0
ファイル: Efficio.cs プロジェクト: devangkantharia/Efficio
        void ProcessFrame(Frame frame)
        {
            if (frame.GetEvents().Count > 0)
            {
                foreach (var ev in frame.GetEvents())
                {
                    switch (ev.GetEventType())
                    {
                    case Net.EventType.Pinch:
                        var pinch = SWIGHelper.CastTo <Pinch>(ev, false);
                        if (pinch != null)
                        {
                            PinchMessage pinchMessage = new PinchMessage(pinch);

                            MessageBus.MessageBus.Instance.SendMessage(pinchMessage);
                        }
                        break;

                    case Net.EventType.HandSupine:
                        var supine = SWIGHelper.CastTo <HandSupine>(ev, false);
                        if (supine != null)
                        {
                            HandSupineMessage pinchMessage = new HandSupineMessage(supine);

                            MessageBus.MessageBus.Instance.SendMessage(pinchMessage);
                        }
                        break;

                    case Net.EventType.EfficioStarted:
                        var started = SWIGHelper.CastTo <EfficioStarted>(ev, false);
                        if (started != null)
                        {
                            EfficioStartedMessage startedMessage = new EfficioStartedMessage(started);
                            MessageBus.MessageBus.Instance.SendMessage(startedMessage);
                        }
                        break;

                    case Net.EventType.ButtonPressed:
                    {
                        var buttonPressed = SWIGHelper.CastTo <ButtonPressed>(ev, false);
                        if (buttonPressed != null)
                        {
                            ButtonPressedMessage buttonPressedMessage = new ButtonPressedMessage(buttonPressed);
                            MessageBus.MessageBus.Instance.SendMessage(buttonPressedMessage);
                        }

                        break;
                    }

                    case Net.EventType.SensorConnected:
                    {
                        var sensorConnected = SWIGHelper.CastTo <Connected>(ev, false);
                        if (sensorConnected != null)
                        {
                            SensorConnectedMesssage sensorConnectedMesssage = new SensorConnectedMesssage(sensorConnected);
                            MessageBus.MessageBus.Instance.SendMessage(sensorConnectedMesssage);
                        }
                        break;
                    }

                    case Net.EventType.SensorFaulted:
                    {
                        var sensorFaulted = SWIGHelper.CastTo <Faulted>(ev, false);
                        if (sensorFaulted != null)
                        {
                            SensorFaultedMesssage sensorFaultedMesssage = new SensorFaultedMesssage(sensorFaulted);
                            MessageBus.MessageBus.Instance.SendMessage(sensorFaultedMesssage);
                        }
                        break;
                    }

                    case Net.EventType.SensorDisconnected:
                    {
                        var sensorDisconnected = SWIGHelper.CastTo <Disconnected>(ev, false);
                        if (sensorDisconnected != null)
                        {
                            SensorDisconnectedMesssage sensorDisconnectedMesssage = new SensorDisconnectedMesssage(sensorDisconnected);
                            MessageBus.MessageBus.Instance.SendMessage(sensorDisconnectedMesssage);
                        }
                        break;
                    }

                    default:
                        break;
                    }
                }
            }
        }