private UsbSerialDeviceInfo FindDeviceInfo(UsbSerialDeviceID id) { if (AvailableDeviceInfo.ContainsKey(id)) { return(AvailableDeviceInfo[id]); } else { return(null); } }
public void AddAvailableDeviceInfo(int vendorId, int productId, Type deviceClass, int numOfPorts) { if (!deviceClass.IsSubclassOf(typeof(UsbSerialPort))) { throw new ArgumentException(); } UsbSerialDeviceID id = new UsbSerialDeviceID(vendorId, productId); if (!AvailableDeviceInfo.ContainsKey(id)) { AvailableDeviceInfo.Add(id, new UsbSerialDeviceInfo(deviceClass, numOfPorts)); } }
private UsbSerialDeviceInfo FindDeviceInfo(UsbSerialDeviceID id, UsbClass usbClass, bool allowAnonymousCdcAcmDevices) { if (AvailableDeviceInfo.ContainsKey(id)) { return(AvailableDeviceInfo[id]); } if (allowAnonymousCdcAcmDevices && usbClass == UsbClass.Comm) { return(UsbSerialDeviceInfo.CdcAcm); } return(null); }
private UsbSerialDevice GetDevice(UsbManager usbManager, UsbDevice usbDevice, bool allowAnonymousCdcAcmDevices) { var id = new UsbSerialDeviceID(usbDevice.VendorId, usbDevice.ProductId); var info = FindDeviceInfo(id, usbDevice.DeviceClass, allowAnonymousCdcAcmDevices); if (info != null) { #if UseSmartThreadPool var device = new UsbSerialDevice(usbManager, usbDevice, id, info, ThreadPool); #else var device = new UsbSerialDevice(usbManager, usbDevice, id, info); #endif return(device); } return(null); }
private UsbSerialDevice GetDevice(UsbManager usbManager, UsbDevice usbDevice, bool allowAnonymousCdcAcmDevices) { UsbSerialDeviceID id = new UsbSerialDeviceID(usbDevice.VendorId, usbDevice.ProductId); UsbSerialDeviceInfo info = FindDeviceInfo(id); if (info != null) { UsbSerialDevice device = new UsbSerialDevice(usbManager, usbDevice, id, info); return(device); } else if (allowAnonymousCdcAcmDevices && usbDevice.DeviceClass == UsbClass.Comm) { UsbSerialDevice device = new UsbSerialDevice(usbManager, usbDevice, id, UsbSerialDeviceInfo.CdcAcm); return(device); } return(null); }
public UsbSerialDevice(UsbManager usbManager, UsbDevice usbDevice, UsbSerialDeviceID id, UsbSerialDeviceInfo info) { UsbManager = usbManager; UsbDevice = usbDevice; ID = id; Info = info; ConstructorInfo cInfo = Info.DriverType.GetConstructor(new Type[] { typeof(UsbManager), typeof(UsbDevice), typeof(int) }); if (cInfo == null) { throw new InvalidProgramException (); } Ports = new UsbSerialPort[info.NumberOfPorts]; for (int i = 0; i < Info.NumberOfPorts; i++) { Ports[i] = (UsbSerialPort)cInfo.Invoke(new object[] { UsbManager, UsbDevice, i }); } }
public override void OnReceive(Context context, Intent intent) { var device = intent.GetParcelableExtra(UsbManager.ExtraDevice) as UsbDevice; if (device == null) { return; } var id = new UsbSerialDeviceID(device.VendorId, device.ProductId); var info = DeviceManager.FindDeviceInfo(id, device.DeviceClass, DeviceManager.AllowAnonymousCdcAcmDevices); if (info == null) { return; } var action = intent.Action; if (action == UsbManager.ActionUsbDeviceAttached) { if (!UsbManager.HasPermission(device)) { var permissionIntent = PendingIntent.GetBroadcast(context, 0, new Intent(ActionUsbPermission), 0); UsbManager.RequestPermission(device, permissionIntent); } else { DeviceManager.AddDevice(UsbManager, device); } } else if (action == UsbManager.ActionUsbDeviceDetached) { DeviceManager.RemoveDevice(device); } else if (action == ActionUsbPermission) { if (UsbManager.HasPermission(device)) { DeviceManager.AddDevice(UsbManager, device); } } }
public UsbSerialDevice(UsbManager usbManager, UsbDevice usbDevice, UsbSerialDeviceID id, UsbSerialDeviceInfo info) { UsbManager = usbManager; UsbDevice = usbDevice; ID = id; Info = info; ConstructorInfo cInfo = Info.DriverType.GetConstructor(new Type[] { typeof(UsbManager), typeof(UsbDevice), typeof(int) }); if (cInfo == null) { throw new InvalidProgramException(); } Ports = new UsbSerialPort[info.NumberOfPorts]; for (int i = 0; i < Info.NumberOfPorts; i++) { Ports[i] = (UsbSerialPort)cInfo.Invoke(new object[] { UsbManager, UsbDevice, i }); } }
private UsbSerialDevice GetDevice(UsbManager usbManager, UsbDevice usbDevice, bool allowAnonymousCdcAcmDevices) { UsbSerialDeviceID id = new UsbSerialDeviceID(usbDevice.VendorId, usbDevice.ProductId); UsbSerialDeviceInfo info = FindDeviceInfo (id); if (info != null) { UsbSerialDevice device = new UsbSerialDevice(usbManager, usbDevice, id, info); return device; } else if (allowAnonymousCdcAcmDevices && usbDevice.DeviceClass == UsbClass.Comm) { UsbSerialDevice device = new UsbSerialDevice(usbManager, usbDevice, id, UsbSerialDeviceInfo.CdcAcm); return device; } return null; }
private UsbSerialDeviceInfo FindDeviceInfo(UsbSerialDeviceID id) { if (AvailableDeviceInfo.ContainsKey(id)) { return AvailableDeviceInfo[id]; } else { return null; } }
public UsbSerialDevice(UsbManager usbManager, UsbDevice usbDevice, UsbSerialDeviceID id, UsbSerialDeviceInfo info, SmartThreadPool threadPool)