public async Task InitializeVotumAsync()
        {
            WindowsHidDeviceFactory.Register(Logger, Tracer);

            var deviceDefinitions = new List <FilterDeviceDefinition>
            {
                new FilterDeviceDefinition {
                    DeviceType = DeviceType.Hid, VendorId = 0x1fc9, ProductId = 0x80a6, Label = "VOTUM RF-HID Receiver"
                },
            };

            var devices = await DeviceManager.Current.GetDevicesAsync(deviceDefinitions);

            Device = devices.FirstOrDefault();
            await Device.InitializeAsync();

            var writeBuffer = new byte[64];

            byte[] readBuffer;

            while (true)
            {
                readBuffer = await Device.WriteAndReadAsync(writeBuffer);

                if (readBuffer[8] > 0)
                {
                    var record = new PacketRecord(readBuffer);
                    var resp   = new Response(record);
                    await WriteAsync(resp);

                    continue;
                }
            }
        }
Beispiel #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="USBDeviceConnector"/> class.
 /// </summary>
 /// <param name="aggregator">Event Aggregator wired in from caliburn micro.</param>
 public USBDeviceConnector(IEventAggregator aggregator)
 {
     this.EventAggregator = aggregator;
     this.EventAggregator.SubscribeOnBackgroundThread(this);
     WindowsHidDeviceFactory.Register(this.DeviceLogger, this.DeviceTracer);
     this.SetupDeviceListener();
 }
Beispiel #3
0
        static async Task Run()
        {
            WindowsHidDeviceFactory.Register(null, null);
            Settings.load("settings.cfg", ref settings);

            TimeSpan sleepTime = TimeSpan.FromMilliseconds(3000);

            Task <bool> keyboardTask = null, mouseTask = null;

            int maxRetryCount = 20;

            while (maxRetryCount >= 0)
            {
                if (keyboardTask == null || keyboardTask.IsCompleted)
                {
                    keyboardTask = RunKeyboard();
                }
                if (mouseTask == null || mouseTask.IsCompleted)
                {
                    mouseTask = RunMouse();
                }

                await Task.WhenAny(keyboardTask, mouseTask);

                if ((keyboardTask.IsCompleted && !keyboardTask.Result) && (mouseTask.IsCompleted && !mouseTask.Result))
                {
                    --maxRetryCount;
                }

                if (!mouseTask.IsCompleted || !mouseTask.Result)
                {
                    await Task.Delay(sleepTime);
                }
            }
        }
        public static void Init()
        {
            WindowsHidDeviceFactory.Register(_logger, _tracer);
            WindowsUsbDeviceFactory.Register(_logger, _tracer);

            SearchDS5Controller();
        }
Beispiel #5
0
        public Keyboard()
        {
            DebugTracer tracer = new DebugTracer();
            DebugLogger logger = new DebugLogger();

            WindowsUsbDeviceFactory.Register(logger, tracer);
            WindowsHidDeviceFactory.Register(logger, tracer);
        }
Beispiel #6
0
 public Footpedal()
 {
     WindowsUsbDeviceFactory.Register(_debugLogger, _debugTracer);
     WindowsHidDeviceFactory.Register(_debugLogger, _debugTracer);
     _deviceListener = new DeviceListener(_DeviceDefinitions, PollMilliseconds)
     {
         Logger = _debugLogger
     };
 }
Beispiel #7
0
        protected override Task <TrezorManager> ConnectAsync()
        {
            //This only needs to be done once.
            //Register the factory for creating Usb devices. Trezor One Firmware 1.7.x / Trezor Model T
            WindowsUsbDeviceFactory.Register(new DebugLogger(), new DebugTracer());

            //Register the factory for creating Hid devices. Trezor One Firmware 1.6.x
            WindowsHidDeviceFactory.Register(new DebugLogger(), new DebugTracer());

            return(base.ConnectAsync());
        }
Beispiel #8
0
        public UsbTransport()
        {
#if (LIBUSB)
            LibUsbUsbDeviceFactory.Register(Logger, Tracer);
#else
            WindowsUsbDeviceFactory.Register(Logger, Tracer);
            WindowsHidDeviceFactory.Register(Logger, Tracer);
#endif
            Devices = new ObservableCollection <UsbDevice>();
            UpdateDeviceList();
        }
Beispiel #9
0
        public async void Init()
        {
            //Register the factory for creating Usb devices. This only needs to be done once.
            WindowsUsbDeviceFactory.Register();
            WindowsHidDeviceFactory.Register();

            //DeviceConnectionExample.StartListening();
            DeviceConnectionExample.TrezorInitialized  += _DeviceConnectionExample_TrezorInitialized;
            DeviceConnectionExample.TrezorDisconnected += _DeviceConnectionExample_TrezorDisconnected;

            await DeviceConnectionExample.InitializeTrezorAsync();
        }
Beispiel #10
0
        private static async Task <TrezorManager> ConnectAsync()
        {
            //This only needs to be done once.
            //Register the factory for creating Usb devices. Trezor One Firmware 1.7.x / Trezor Model T
            WindowsUsbDeviceFactory.Register(new DebugLogger(), new DebugTracer());

            //Register the factory for creating Hid devices. Trezor One Firmware 1.6.x
            WindowsHidDeviceFactory.Register(new DebugLogger(), new DebugTracer());

            _TrezorManagerBroker = new TrezorManagerBroker(GetPin, GetPassphrase, 2000, new DefaultCoinUtility());
            return(await _TrezorManagerBroker.WaitForFirstTrezorAsync());
        }
Beispiel #11
0
        private async static Task Go()
        {
            try
            {
                //Register the factory for creating Usb devices. This only needs to be done once.
                WindowsUsbDeviceFactory.Register();
                WindowsHidDeviceFactory.Register();

                //Note: other custom device types could be added here

                //Define the types of devices to search for. This particular device can be connected to via USB, or Hid
                var deviceDefinitions = new List <DeviceDefinition>
                {
                    new DeviceDefinition {
                        DeviceType = DeviceType.Hid, VendorId = 0x534C, ProductId = 0x0001, Label = "Trezor One Firmware 1.6.x"
                    },
                    new DeviceDefinition {
                        DeviceType = DeviceType.Usb, VendorId = 0x1209, ProductId = 0x53C1, ReadBufferSize = 64, WriteBufferSize = 64, Label = "Trezor One Firmware 1.7.x"
                    },
                    new DeviceDefinition {
                        DeviceType = DeviceType.Usb, VendorId = 0x1209, ProductId = 0x53C0, ReadBufferSize = 64, WriteBufferSize = 64, Label = "Model T"
                    }
                };

                //Get the first available device and connect to it
                var devices = await DeviceManager.Current.GetDevices(deviceDefinitions);

                using (var trezorDevice = devices.FirstOrDefault())
                {
                    await trezorDevice.InitializeAsync();

                    //Create a buffer with 3 bytes (initialize)
                    var buffer = new byte[64];
                    buffer[0] = 0x3f;
                    buffer[1] = 0x23;
                    buffer[2] = 0x23;

                    //Write the data to the device and get the response
                    var readBuffer = await trezorDevice.WriteAndReadAsync(buffer);

                    Console.WriteLine("All good");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
Beispiel #12
0
        private static async Task <KeepKeyManager> ConnectAsync()
        {
            //This only needs to be done once.
            //Register the factory for creating Usb devices. Trezor One Firmware 1.7.x / Trezor Model T
            WindowsUsbDeviceFactory.Register();

            //Register the factory for creating Hid devices. Trezor One Firmware 1.6.x
            WindowsHidDeviceFactory.Register();

            var keepKeyManagerBroker = new KeepKeyManagerBroker(GetPin, GetPassphrase, 2000);
            var keepKeyManager       = await keepKeyManagerBroker.WaitForFirstTrezorAsync();

            var coinTable = await keepKeyManager.GetCoinTable();

            keepKeyManager.CoinUtility = new KeepKeyCoinUtility(coinTable);
            return(keepKeyManager);
        }
Beispiel #13
0
        private static void Main(string[] args)
        {
            //Register the factory for creating Usb devices. This only needs to be done once.
#if (LIBUSB)
            LibUsbUsbDeviceFactory.Register(Logger);
#else
            WindowsUsbDeviceFactory.Register(Logger);
            WindowsHidDeviceFactory.Register(Logger);
#endif

            _DeviceConnectionExample.TrezorInitialized  += _DeviceConnectionExample_TrezorInitialized;
            _DeviceConnectionExample.TrezorDisconnected += _DeviceConnectionExample_TrezorDisconnected;

            Go();

            new ManualResetEvent(false).WaitOne();
        }
Beispiel #14
0
        static void Main(string[] args)
        {
            //Register the factory for creating Usb devices. This only needs to be done once.
            WindowsUsbDeviceFactory.Register(null, null);

            //Register the factory for creating Usb devices. This only needs to be done once.
            WindowsHidDeviceFactory.Register(null, null);

            //Search DualSense Controller
            var DeviceSearcherTask = DeviceManager.Current.GetConnectedDeviceDefinitionsAsync(new FilterDeviceDefinition {
                DeviceType = DeviceType.Hid, VendorId = 1356, ProductId = 3302
            });

            DeviceSearcherTask.Wait();
            var DualSenseList  = DeviceSearcherTask.Result.ToArray();
            int DualSenseCount = DualSenseList.Length;

            if (DualSenseCount <= 0)
            {
                throw new Exception("Cannot find DualSense. Check the cable again!");
            }
            var DualSenseDevice = DeviceManager.Current.GetDevice(DualSenseList[0]);

            DualSense_Base dualSense;

            if (DualSenseList[0].ReadBufferSize == 64)
            {
                dualSense = new DualSense_USB(DualSenseDevice);
            }
            else if (DualSenseList[0].ReadBufferSize == 78)
            {
                dualSense = new DualSense_Bluetooth(DualSenseDevice);
            }
            else
            {
                throw new NotImplementedException("Currently this application supports USB connection only.");
            }

            //Set Adaptive Trigger as "Normal"
            dualSense.SetLeftAdaptiveTrigger(DualSense_Base.NormalTrigger);
            dualSense.SetRightAdaptiveTrigger(DualSense_Base.NormalTrigger);

            Thread.Sleep(-1);
        }
        public async Task <IDevice> Initialize()
        {
            try
            {
                WindowsHidDeviceFactory.Register(_logger);

                var devices = await DeviceManager.Current.GetDevicesAsync(new List <FilterDeviceDefinition> {
                    ContourNextLink24DeviceDefinition
                });

                var selectedDevice = devices?.FirstOrDefault();
                await selectedDevice.InitializeAsync();

                return(selectedDevice);
            }
            catch (Exception ex)
            {
                _logger.Log(ex.Message, "CNL24Manager", ex, LogLevel.Error);
            }
            return(null);
        }
 public void Initialize()
 {
     WindowsHidDeviceFactory.Register(new DebugLogger(), new DebugTracer());
     WindowsUsbDeviceFactory.Register(new DebugLogger(), new DebugTracer());
     StartBroker(null, new LedgerManagerFactory());
 }
Beispiel #17
0
 private Task GetLedger()
 {
     WindowsHidDeviceFactory.Register();
     WindowsUsbDeviceFactory.Register();
     return(GetLedgerBase());
 }
Beispiel #18
0
 public static void Register(ILogger?logger, ITracer?tracer)
 => WindowsHidDeviceFactory.Register(logger, tracer);
 static SpaceMouse()
 {
     WindowsHidDeviceFactory.Register(Logger, Tracer);
 }