Beispiel #1
0
        public void UDPServer()
        {
            byte receivedValue;

            byte[]     data;
            UdpClient  client = new UdpClient(dllPort);
            IPEndPoint source = new IPEndPoint(IPAddress.Broadcast, unityPort);

            while (true)
            {
                try
                {
                    if (client.Available >= 1)
                    {
                        data = client.Receive(ref source);

                        if (Byte.TryParse(Encoding.UTF8.GetString(data), out receivedValue))
                        {
                            HCIHapticsBLEConnector.sendRTValueToHaptic(receivedValue); // TODO: Add support for effects
                            ///Console.WriteLine("Rx >>>>>>>>>>> " + receivedValue);
                        }
                        else if (float.TryParse(Encoding.UTF8.GetString(data), out receivedCommand))
                        {
                            if (receivedCommand == HCIHapticsBLEConnector.ORIENTATION_STATUS_ENABLED)
                            {
                                HCIHapticsBLEConnector.sendIMUOrientationStatus(true);
                            }
                            else if (receivedCommand == HCIHapticsBLEConnector.ORIENTATION_STATUS_DISABLED)
                            {
                                HCIHapticsBLEConnector.sendIMUOrientationStatus(false);
                            }
                            else if (receivedCommand == HCIHapticsBLEConnector.LED_STATUS_ENABLED)
                            {
                                HCIHapticsBLEConnector.sendLEDStatus(true);
                            }
                            else if (receivedCommand == HCIHapticsBLEConnector.LED_STATUS_DISABLED)
                            {
                                HCIHapticsBLEConnector.sendLEDStatus(false);
                            }

                            Console.WriteLine("Status request >>>>>>>>>>> " + receivedCommand);
                        }
                    }
                    Thread.Sleep(1);
                }
                catch (Exception err)
                {
                    Console.WriteLine("EXCEPTION    >>>>>>>>>>>    " + err.ToString());
                }
            }
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            try
            {
                HCIHapticsBLEConnector.setup("HCI_FingerCap");

                Console.WriteLine("Device Connected and Service Initialized!");

                ServicesContainer container = new ServicesContainer(args[0]);
                (new Thread(() => container.KeyboardSender())).Start();
                (new Thread(() => container.ButtonListener())).Start();
                (new Thread(() => container.JoystickAxesListener())).Start();
                (new Thread(() => container.IMUOrientationListener())).Start();
                (new Thread(() => container.IMUAccelerationListener())).Start();
                (new Thread(() => container.FlexiForceListener())).Start();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Beispiel #3
0
        public void KeyboardSender()
        {
            while (true)
            {
                if (Console.ReadKey(true).Key == ConsoleKey.L)
                {
                    irLED = !irLED;
                    HCIHapticsBLEConnector.sendLEDStatus(irLED);
                    Console.WriteLine("LED >>> " + irLED);
                }
                if (Console.ReadKey(true).Key == ConsoleKey.O)
                {
                    imuOrientationStatus = !imuOrientationStatus;
                    HCIHapticsBLEConnector.sendIMUOrientationStatus(imuOrientationStatus);
                    Console.WriteLine("IMU Orientation >>> " + imuOrientationStatus);
                }
                if (Console.ReadKey(true).Key == ConsoleKey.A)
                {
                    imuAccelerationStatus = !imuAccelerationStatus;
                    HCIHapticsBLEConnector.sendIMUAccelerationStatus(imuAccelerationStatus);
                    Console.WriteLine("IMU Acceleration >>> " + imuAccelerationStatus);
                }
                else if (Console.ReadKey(true).Key == ConsoleKey.N)
                {
                    HapticRTValue--;
                    if (HapticRTValue < StartingIntensity)
                    {
                        HapticRTValue = 127;
                    }
                    HCIHapticsBLEConnector.sendRTValueToHaptic(HapticRTValue);
                    Console.WriteLine("Haptic RTV >>> " + HapticRTValue);
                }
                else if (Console.ReadKey(true).Key == ConsoleKey.M)
                {
                    HapticRTValue++;
                    if (HapticRTValue > 127)
                    {
                        HapticRTValue = StartingIntensity;
                    }
                    HCIHapticsBLEConnector.sendRTValueToHaptic(HapticRTValue);
                    Console.WriteLine("Haptic RTV>>> " + HapticRTValue);
                }
                else if (Console.ReadKey(true).Key == ConsoleKey.V)
                {
                    HapticEffectValue--;
                    if (HapticEffectValue > 123)
                    {
                        HapticEffectValue = 123;
                    }
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(HapticEffectValue);
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(255); // mandatory command
                    Console.WriteLine("Haptic Effect >>> " + HapticEffectValue);
                }
                else if (Console.ReadKey(true).Key == ConsoleKey.B)
                {
                    HapticEffectValue++;
                    if (HapticEffectValue == 124)
                    {
                        HapticEffectValue = 0;
                    }
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(HapticEffectValue);
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(255); // mandatory command
                    Console.WriteLine("Haptic Effect >>> " + HapticEffectValue);
                }
                else if (Console.ReadKey(true).Key == ConsoleKey.C)
                {
                    HCIHapticsBLEConnector.sendRTValueToHaptic(0);
                    Console.WriteLine("Haptic >>> 0");
                }
                else if (Console.ReadKey(true).Key == ConsoleKey.X)
                {
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(10);
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(71);
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(105);
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(52);
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(118);
                    HCIHapticsBLEConnector.sendEffectValueToHaptic(255); // mandatory command
                    Console.WriteLine("Haptic Effect array");

                    Thread.Sleep(300 * 6);
                    HCIHapticsBLEConnector.sendRTValueToHaptic(0);
                }
            }
        }