public bool reset() { var message = new byte[2]; bool r; message[0] = 128; message[1] = 0; r = _writeMessage(message); this._HidDev = null; //Force a reconnect return(r); }
private bool _findDevice() { var list = HidSharp.DeviceList.Local; _HidDev = list.GetHidDeviceOrNull(myVendorID, myProductID, null, null); if (_HidDev != null) { this._StatusChanged(W_STATUS_CONNECTED); return(true); } this._StatusChanged(W_STATUS_DISCONNECTED); return(false); }
public HidDevice(HidSharp.HidDevice internalDevice) { Properties = new Dictionary <string, dynamic>(); Properties["MaxFeatureReportLength"] = internalDevice.GetMaxFeatureReportLength(); Properties["MaxInputReportLength"] = internalDevice.GetMaxInputReportLength(); Properties["MaxOutputReportLength"] = internalDevice.GetMaxOutputReportLength(); try { Properties["Manufacturer"] = internalDevice.GetManufacturer(); } catch { } try { Properties["ProductName"] = internalDevice.GetProductName(); } catch { } try { bool FoundAny = false; HashSet <uint> Usages = new HashSet <uint>(); foreach (var descriptor in internalDevice.GetReportDescriptor().DeviceItems) { try { foreach (uint usage in descriptor.Usages.GetAllValues()) { Usages.Add(usage); FoundAny = true; } } catch { } } if (FoundAny) { this.Usages = Usages.ToArray(); Properties["Usages"] = this.Usages; } } catch { } this.internalDevice = internalDevice; }
static void Main(string[] args) { logger.Info("Starting!"); TheSockets sockets = new TheSockets(); SimpleWebServer nws = new SimpleWebServer(4567); nws.Start(); InfluxConnection c = new InfluxConnection(); c.URL = "http://localhost:8086/"; // HttpInfluxDB db = new HttpInfluxDB(c); // db.CreateDatabase("influxdays"); // sockets.influx = new HttpInfluxWriter(db, "influxdays", 50000); foreach (var d in HidSharp.DeviceList.Local.GetHidDevices()) { logger.Info("DEVICE: " + d.DevicePath); try { logger.Info(" > " + d.GetFriendlyName()); } catch { } } DeviceWatcher watcherSide = null; DeviceWatcher watcherWheel = null; HidSharp.HidDevice dev = DeviceWatcher.find("Saitek Side Panel Control Deck"); if (dev != null) { watcherSide = new DeviceWatcher("panel_", dev, sockets); } dev = DeviceWatcher.find("Saitek Heavy Eqpt. Wheel & Pedal"); if (dev != null) { watcherWheel = new DeviceWatcher("wheel_", dev, sockets); } WebSocketServer server = new WebSocketServer("ws://0.0.0.0:8181"); server.RestartAfterListenError = true; server.Start(socket => { socket.OnOpen = () => { sockets.open.Add(socket); logger.Info("WebSocket Open! " + sockets.open.Count); if (watcherSide != null) { watcherSide.broadcast(); } if (watcherWheel != null) { watcherWheel.broadcast(); } }; socket.OnClose = () => { sockets.open.Remove(socket); logger.Info("WebSocket Remove! " + sockets.open.Count); }; socket.OnMessage = message => logger.Info("WebSocket: " + message); }); while (true) { var x = Console.ReadLine(); Console.WriteLine("ECHO: " + x); } }
public SimPadV2Lite(HidSharp.HidDevice device) : base(device) { }
internal HidSharpEndpoint(HidSharp.HidDevice device) { this.device = device; }
public SimPadNano(HidSharp.HidDevice device) : base(device) { }