Exemplo n.º 1
0
        static void WriteDeviceItemInputParserResult(DeviceItemInputParser parser)
        {
            while (parser.HasChanged)
            {
                int changedIndex      = parser.GetNextChangedIndex();
                var previousDataValue = parser.GetPreviousValue(changedIndex);
                var dataValue         = parser.GetValue(changedIndex);

                Console.WriteLine(string.Format("  {0}: {1} -> {2}", (Usage)dataValue.Usages.FirstOrDefault(), previousDataValue.GetPhysicalValue(), dataValue.GetPhysicalValue()));
            }
        }
Exemplo n.º 2
0
        void WriteDeviceItemInputParserResult(DeviceItemInputParser parser)
        {
            while (parser.HasChanged)
            {
                int   changedIndex      = parser.GetNextChangedIndex();
                var   previousDataValue = parser.GetPreviousValue(changedIndex);
                var   dataValue         = parser.GetValue(changedIndex);
                var   value             = dataValue.GetPhysicalValue();
                Usage usage             = (Usage)dataValue.Usages.FirstOrDefault();
                value = value < 0 ? value / 127 : (value - 54) / 200;
                switch (usage)
                {
                case Usage.GenericDesktopX:
                    controllerState.X = value;
                    break;

                case Usage.GenericDesktopY:
                    controllerState.Y = value;
                    break;

                case Usage.GenericDesktopZ:
                    controllerState.Z = value;
                    break;

                case Usage.GenericDesktopRx:
                    controllerState.RX = value;
                    break;

                case Usage.GenericDesktopRy:
                    controllerState.RY = value;
                    break;

                case Usage.GenericDesktopRz:
                    controllerState.RZ = value;
                    break;

                case Usage.GenericDesktopSlider:
                    if (changedIndex == 30)
                    {
                        controllerState.LeftSwitch = value >= 0;
                    }
                    else
                    {
                        controllerState.RightSwitch = value >= 0;
                    }
                    break;

                case Usage.Button1:
                    Console.WriteLine("button 1 :" + value);
                    break;

                case Usage.Button2:
                    Console.WriteLine("button 2 :" + value);
                    break;

                default:
                    Console.WriteLine("unknown usage:" + usage);
                    break;
                }
            }
        }
Exemplo n.º 3
0
        static void WriteDeviceItemInputParserResult(DeviceItemInputParser parser)
        {
            while (parser.HasChanged)
            {
                var changedIndex      = parser.GetNextChangedIndex();
                var previousDataValue = parser.GetPreviousValue(changedIndex);
                var dataValue         = parser.GetValue(changedIndex);

                var y     = (Usage)dataValue.Usages.FirstOrDefault();
                var value = (int)dataValue.GetPhysicalValue();

                //Console.WriteLine($"{(Usage) dataValue.Usages.FirstOrDefault()}: {previousDataValue.GetPhysicalValue()} -> {dataValue.GetPhysicalValue()}");

                switch (y)
                {
                case Usage.GenericDesktopY:
                    if (value == 255)
                    {
                        SerialPort.Write(BitConverter.GetBytes(4), 0, 1);
                    }
                    if (value == 0)
                    {
                        SerialPort.Write(BitConverter.GetBytes(3), 0, 1);
                    }
                    break;

                case Usage.GenericDesktopX:
                    if (value == 255)
                    {
                        SerialPort.Write(BitConverter.GetBytes(7), 0, 1);
                    }
                    if (value == 0)
                    {
                        SerialPort.Write(BitConverter.GetBytes(8), 0, 1);
                    }
                    break;

                case Usage.Button1:     //X
                    if (value == 1)
                    {
                        SerialPort.Write(BitConverter.GetBytes(5), 0, 1);
                    }
                    break;

                case Usage.Button4:     //Y
                    if (value == 1)
                    {
                        SerialPort.Write(BitConverter.GetBytes(6), 0, 1);
                    }
                    break;

                case Usage.Button2:     //A
                    if (value == 1)
                    {
                        SerialPort.Write(BitConverter.GetBytes(2), 0, 1);
                    }
                    break;

                case Usage.Button3:     //B
                    if (value == 1)
                    {
                        SerialPort.Write(BitConverter.GetBytes(1), 0, 1);
                    }
                    break;

                case Usage.Button5:     //L
                    if (value == 1)
                    {
                        SerialPort.Write(BitConverter.GetBytes(9), 0, 1);
                    }
                    break;

                case Usage.Button6:     //R
                    if (value == 1)
                    {
                        SerialPort.Write(BitConverter.GetBytes(10), 0, 1);
                    }
                    break;

                default:
                    break;
                }
            }
        }