public CdcAcmSerialPort(UsbManager usbManager, UsbDevice usbDevice, int portNumber) : base(usbManager, usbDevice, portNumber) { // Disabled because it is not work well under SmartThreadPool. //EnableAsyncReads = (Build.VERSION.SdkInt >= BuildVersionCodes.JellyBeanMr1); EnableAsyncReads = false; }
public void Default_0_GetHidDevices() { if (!Platform.IsWindows) { return; } var deviceInfos = UsbManager.GetHidDevices(); Assert.NotNull(deviceInfos); foreach (var deviceInfo in deviceInfos) { _output.WriteLine("deviceInfo.Path: \"" + deviceInfo.Path + "\""); _output.WriteLine("deviceInfo.SerialNumber: \"" + deviceInfo.SerialNumber + "\""); Assert.False(string.IsNullOrWhiteSpace(deviceInfo.Path)); var productId = deviceInfo.ProductId; if (!string.IsNullOrEmpty(productId)) { Assert.True(productId.Length == 4); } var vendorId = deviceInfo.VendorId; if (!string.IsNullOrEmpty(vendorId)) { Assert.True(vendorId.Length == 4); } Assert.False(string.IsNullOrWhiteSpace(deviceInfo.Description)); Assert.False(string.IsNullOrWhiteSpace(deviceInfo.Manufacturer)); var optional = deviceInfo.Optional; if (optional.ContainsKey("type")) { Assert.False(string.IsNullOrWhiteSpace(optional["type"])); } } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); PowerManager pm = (PowerManager)GetSystemService(Context.PowerService); PowerManager.WakeLock wl = pm.NewWakeLock(WakeLockFlags.ScreenBright, "My Tag"); wl.Acquire(); this.Window.AddFlags(WindowManagerFlags.KeepScreenOn); Xamarin.Essentials.Platform.Init(this, savedInstanceState); SetContentView(Resource.Layout.activity_main); text = FindViewById <EditText>(Resource.Id.editText1); text.Text = getIP(); t1 = FindViewById <TextView>(Resource.Id.textView2); t2 = FindViewById <TextView>(Resource.Id.textView3); var client = new TcpClient(); Button button1 = FindViewById <Button>(Resource.Id.button1); button1.Click += StartBotClicked; Button button2 = FindViewById <Button>(Resource.Id.button2); button2.Click += NetworkTestClicked; usbManager = GetSystemService(Context.UsbService) as UsbManager; image = FindViewById <TextureView>(Resource.Id.imageView1); mc = new MyCamera(image); mc.FrameRefreshed = sendFrame; }
private void WireupUsb(IUsbSerialDriver device) { UsbManager manager = (UsbManager)GetSystemService(UsbService); var port1 = device.Ports[0]; UsbDeviceConnection connection = manager.OpenDevice(device.Device); port1.Open(connection); port1.SetParameters(115200, DataBits._8, StopBits._1, Parity.None); var buffer = new byte[500]; Log.Debug("main", "here"); var timeout = (int)TimeSpan.FromSeconds(1).TotalMilliseconds; port1.CtsChanged += Port1_CtsChanged; port1.Rts = true; while (true) { var bytesRead = port1.Read(buffer, timeout); if (bytesRead > 0) { var str = Encoding.ASCII.GetString(buffer, 0, bytesRead); Log.Debug("card read", str); } Thread.Sleep(50); } }
public SmartScopeUsbInterfaceXamarin(Context context, UsbManager usbManager, UsbDevice device) { Destroyed = false; if (!usbManager.HasPermission(device)) { Logger.Error("Permission denied"); throw new Exception("Device permission not obtained"); } UsbInterface interf = device.GetInterface(0); for (int i = 0; i < interf.EndpointCount; i++) { if (interf.GetEndpoint(i).EndpointNumber == 1) { dataEndpoint = interf.GetEndpoint(i); } else if (interf.GetEndpoint(i).EndpointNumber == 2) { commandWriteEndpoint = interf.GetEndpoint(i); } else if (interf.GetEndpoint(i).EndpointNumber == 3) { commandReadEndpoint = interf.GetEndpoint(i); } } usbConnection = usbManager.OpenDevice(device); usbConnection.ClaimInterface(interf, true); }
public static Task <bool> RequestPermissionAsync(this UsbManager manager, UsbDevice device, Context context) { if (manager == null) { throw new ArgumentNullException(nameof(manager)); } if (device == null) { throw new ArgumentNullException(nameof(device)); } if (context == null) { throw new ArgumentNullException(nameof(context)); } string permission = String.Format(ExtendedUsbConstants.ACTION_USB_PERMISSION_FORMAT, context.PackageName); var usbPermissionReceiver = new UsbBroadcastReceiver <bool>((c, i) => i.GetBooleanExtra(UsbManager.ExtraPermissionGranted, false)); usbPermissionReceiver.Register(context, permission, true); PendingIntent intent = PendingIntent.GetBroadcast(context, 0, new Intent(permission), 0); manager.RequestPermission(device, intent); return(usbPermissionReceiver.ReceiveTask); }
protected override void OnCreate(Bundle savedInstanceState) { Log.Info(TAG, "OnCreate"); base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.serial_console); usbManager = GetSystemService(Context.UsbService) as UsbManager; titleTextView = FindViewById <TextView>(Resource.Id.demoTitle); dumpTextView = FindViewById <TextView>(Resource.Id.consoleText); scrollView = FindViewById <ScrollView>(Resource.Id.demoScroller); sleepButton = FindViewById <Button>(Resource.Id.sleepButton); wakeButton = FindViewById <Button>(Resource.Id.wakeupButton); // The following arrays contain data that is used for a custom firmware for // the Elatec TWN4 RFID reader. This code is included here to show how to // send data back to a USB serial device byte[] sleepdata = new byte[] { 0xf0, 0x04, 0x10, 0xf1 }; byte[] wakedata = new byte[] { 0xf0, 0x04, 0x11, 0xf1 }; sleepButton.Click += delegate { WriteData(sleepdata); }; wakeButton.Click += delegate { WriteData(wakedata); }; }
public FtdiSerialPort(UsbManager manager, UsbDevice device, int portNumber) : base(manager, device, portNumber) { readEndpoint = UsbDevice.GetInterface(0).GetEndpoint(0); writeEndpoint = UsbDevice.GetInterface(0).GetEndpoint(1); maxPacketSize = readEndpoint.MaxPacketSize; }
/// <summary> /// All'avvio controlla se ci sono dispositivi connessi /// e inizializza il il gestore di eventi /// </summary> private void Form1_Load(object sender, EventArgs e) { UsbManager = new UsbManager(); UsbManager.StateChanged += new UsbStateChangedEventHandler(DeviceStateChanged); // Directory di lavoro per la gestione dei file in user mode if (Directory.Exists(Services.FileSSRestoreService.DataDirectory) == false) { Directory.CreateDirectory(Services.FileSSRestoreService.DataDirectory); } // display all devices UsbDiskCollection disks = UsbManager.GetAvailableDisks(); WriteLine("Available USB disks:", Color.DarkCyan); foreach (UsbDisk disk in disks) { WriteLine(disk.ToString()); OnDeviceAdded(disk.Name); } WriteLine(string.Empty); WriteLine("Waiting for events...", Color.DarkCyan); Tests(); }
public Connection(UsbAccessory accessory, UsbManager manager, Action <byte[]> onDataReceived, Action onConnectionClosed) { Logger.LogInfo(nameof(Connection), "Constructor", "called."); try { _Accessory = accessory; _Manager = manager; _OnDataReceived += onDataReceived; _OnConnectionClosed += onConnectionClosed; OpenConnection(); _TaskCancelTokenSource = new CancellationTokenSource(); _TaskCancelToken = _TaskCancelTokenSource.Token; // Start the receivedata task in a new thread, with the given canceltoken. Task.Factory.StartNew(() => ReceiveData(), _TaskCancelToken); Logger.LogInfo(nameof(Connection), "Constructor", nameof(ReceiveData) + " task : " + "created."); } catch (Exception ex) { Logger.LogError(ex); } }
private void GetCardReader() { UsbManager manager = (UsbManager)GetSystemService(UsbService); var cardReaders = CardReaderProbe.ProbeForCardReaders(manager); var device = cardReaders.First(); if (!manager.HasPermission(device)) { var usbPermission = "Cid.Example.USB_PERMISSION"; var permissionIntent = PendingIntent.GetBroadcast(this, 0, new Intent(usbPermission), 0); var filter = new IntentFilter(usbPermission); var receiver = new UsbPermissionReceiver { Callback = () => WireUpCardReader(device) }; RegisterReceiver(receiver, filter); manager.RequestPermission(device, permissionIntent); } else { WireUpCardReader(device); } }
public static void Register(UsbManager usbManager, Context context, ILogger logger) { DeviceManager.Current.DeviceFactories.Add(new AndroidUsbDeviceFactory(usbManager, context) { Logger = logger }); }
public void Dispose() { if (NativeDevice != null) { NativeDevice.Dispose(); NativeDevice = null; } if (Connection != null) { Connection.Dispose(); Connection = null; } if (Endpoint != null) { Endpoint.Dispose(); Endpoint = null; } if (EndpointWrite != null) { EndpointWrite.Dispose(); EndpointWrite = null; } if (Manager != null) { Manager.Dispose(); Manager = null; } }
public AndroidUsbInterfaceManager(UsbManager usbManager, Context androidContext, int deviceNumberId, ILogger logger, ITracer tracer, ushort?readBufferLength, ushort?writeBufferLength) : base(logger, tracer) { _ReadBufferSize = readBufferLength; _WriteBufferSize = writeBufferLength; UsbManager = usbManager ?? throw new ArgumentNullException(nameof(usbManager)); AndroidContext = androidContext ?? throw new ArgumentNullException(nameof(androidContext)); DeviceNumberId = deviceNumberId; }
internal static Task <IList <IUsbSerialDriver> > FindAllDriversAsync(UsbManager usbManager) { // using the default probe table var table = UsbSerialProber.DefaultProbeTable; var prober = new UsbSerialProber(table); return(prober.FindAllDriversAsync(usbManager)); }
public void Open(UsbManager usbManager, int bufferSize = DEFAULT_BUFFERSIZE) { if (disposed) { throw new ObjectDisposedException(GetType().Name); } if (IsOpen) { throw new InvalidOperationException(); } var connection = usbManager.OpenDevice(port.GetDriver().GetDevice()); if (connection == null) { throw new Java.IO.IOException("Failed to open device"); } isOpen = true; buffer = new byte[bufferSize]; port.Open(connection); port.SetParameters(BaudRate, DataBits, StopBits, Parity); cancelationTokenSource = new CancellationTokenSource(); var cancelationToken = cancelationTokenSource.Token; cancelationToken.Register(() => Log.Info(TAG, "Cancellation Requested")); Task.Run(() => { Log.Info(TAG, "Task Started!"); try { while (true) { cancelationToken.ThrowIfCancellationRequested(); Step(); // execute step } } catch (OperationCanceledException) { throw; } catch (Exception e) { Log.Warn(TAG, "Task ending due to exception: " + e.Message, e); ErrorReceived.Raise(this, new UnhandledExceptionEventArgs(e, false)); } finally { port.Close(); port.Driver.Device.Dispose();//richard: avoid GREF leak buffer = null; isOpen = false; Log.Info(TAG, "Task Ended!"); } }, cancelationToken); }
public UsbDataBinder(UsbManager manager, UsbDevice device) { // TODO Auto-generated constructor stub mUsbManager = manager; mDevice = device; mIntf = mDevice.GetInterface(0); mEndpoint = mIntf.GetEndpoint(0); mConnection = mUsbManager.OpenDevice(mDevice); }
public Task <IList <IUsbSerialDriver> > FindAllDriversAsync(UsbManager usbManager) { var tcs = new TaskCompletionSource <IList <IUsbSerialDriver> >(); Task.Run(() => { tcs.TrySetResult(FindAllDrivers(usbManager)); }); return(tcs.Task); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); manager = (UsbManager)this.GetSystemService(Context.UsbService); tgConnect = FindViewById <ToggleButton>(Resource.Id.toggleButton1); Result = FindViewById <TextView>(Resource.Id.textView1); tgConnect.CheckedChange += tgConnect_HandleCheckedChange; }
public override void OnCreate() { Instance = this; OnUsbDataReceiver += MainActivity.Instance.Instance_OnUsbDataReceiver; mPermissionIntent = PendingIntent.GetBroadcast(this, 0, new Intent(Consts.ACTION_USB_PERMISSION), 0); mUsbManager = (UsbManager)GetSystemService(Context.UsbService); }
protected void findUSBSerialDevice() { if (m_usbManager == null) { m_usbManager = (UsbManager)Application.Context.GetSystemService(Context.UsbService); } if (m_usbManager != null) { UsbAccessory[] ubTempList = m_usbManager.GetAccessoryList(); PendingIntent mPermissionIntent = PendingIntent.GetBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); UsbAccessory accesory = ubTempList[0]; //m_usbManager.RequestPermission(accesory, mPermissionIntent); readSb = new StringBuffer(); bool tienepermiso = m_usbManager.HasPermission(accesory); filedescriptor = m_usbManager.OpenAccessory(accesory); if (filedescriptor != null) { writeIndex = 0; FileDescriptor fd = filedescriptor.FileDescriptor; inputstream = new FileInputStream(fd); outputstream = new FileOutputStream(fd); if (inputstream == null || outputstream == null) { return; } SetConfig(1200, 8, 1, 0, 0); if (inputstream != null) { while (true) { readcount = inputstream.Read(usbdata, 0, 1024); if (readcount > 0) { for (int count = 0; count < readcount; count++) { readBuffer[writeIndex] = usbdata[count]; readBufferToChar[writeIndex] = (char)readBuffer[writeIndex]; writeIndex++; } writeIndex = 0; readSb.Append(readBufferToChar); string p = readSb.ToString().Replace("\0", ""); if (p.Contains("2+")) { string peso = p.Substring(p.IndexOf("2+"), 7); Toast.MakeText(this, peso, ToastLength.Long).Show(); break; } } } } } } }
public List <UsbDevice> GetPossibleSerialPorts(Context context) { usbManager = (UsbManager)context.GetSystemService(Context.UsbService); IDictionary <string, UsbDevice> allDevices = usbManager.DeviceList; List <UsbDevice> devices = allDevices.Values.Where(s => UsbSerialDevice.IsSupported(s)).ToList(); return(devices); }
public SerialInputOutputManager(UsbManager usbManager, IUsbSerialPort port) { _usbManager = usbManager; this.port = port; BaudRate = DEFAULT_BAUDRATE; Parity = DEFAULT_PARITY; DataBits = DEFAULT_DATABITS; StopBits = DEFAULT_STOPBITS; }
public static Task <IList <IUsbSerialDriver> > FindAllDriversAsync( this UsbSerialProber prober, UsbManager manager) { var tcs = new TaskCompletionSource <IList <IUsbSerialDriver> >(); Task.Run( () => { tcs.TrySetResult(prober.FindAllDrivers(manager)); }); return(tcs.Task); }
/// <summary> /// Освободить все используемые ресурсы. /// </summary> /// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } UsbManager.Close(); base.Dispose(disposing); }
public static async Task <UsbSerialPort> GetUsbSerialPortAsync( UsbManager usbManager) { var drivers = await FindAllDriversAsync(usbManager); var ports = drivers.SelectMany(driver => driver.Ports).ToList(); //TODO: List All Available Ports return(ports[0]); }
public static List <IUsbSerialDriver> GetDriverList(UsbManager usbManager) { if (Build.VERSION.SdkInt < BuildVersionCodes.HoneycombMr1) { return(new List <IUsbSerialDriver>()); } IList <IUsbSerialDriver> availableDrivers = UsbSerialProber.DefaultProber.FindAllDrivers(usbManager); return(availableDrivers.Where(driver => IsValidUsbDevice(driver.Device)).ToList()); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById <Button>(Resource.Id.MyButton); // 获取UsbManager myUsbManager = (UsbManager)GetSystemService(UsbService); enumerateDevice(); findInterface(); openDevice(); assignEndpoint(); //查找USB设备 button.Click += (o, e) => { int ret = -100; string mes = "1111111111"; byte[] Receiveytes; byte[] OutBuffer;//数据 int BufferSize; Encoding targetEncoding; //将[UNICODE编码]转换为[GB码],仅使用于简体中文版mobile targetEncoding = Encoding.GetEncoding(0); //得到简体中文字码页的编码方式,因为是简体中文操作系统,参数用0就可以,用936也行。 BufferSize = targetEncoding.GetByteCount(mes); //计算对指定字符数组中的所有字符进行编码所产生的字节数 OutBuffer = new byte[BufferSize]; OutBuffer = targetEncoding.GetBytes(mes); byte[] cmdData = new byte[BufferSize + 5]; //初始化打印机 cmdData[0] = 0x1B; cmdData[1] = 0x40; //设置字符顺时旋转180度 cmdData[2] = 0x1B; cmdData[3] = 0x56; cmdData[4] = 0; for (int i = 0; i < BufferSize; i++) { cmdData[5 + i] = OutBuffer[i]; } //发送数据 sendPackage(cmdData); }; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); usbManager = GetSystemService(Context.UsbService) as UsbManager; listView = FindViewById <ListView>(Resource.Id.deviceList); progressBar = FindViewById <ProgressBar>(Resource.Id.progressBar); progressBarTitle = FindViewById <TextView>(Resource.Id.progressBarTitle); }
public static string getDriveSerialNumber(char letter) { string volumeSN = UsbManager.GetVolumeSerialNumber(devName(letter)); if (volumeSN == null && IsMappedDrive(letter) && IsDriveMounted(letter)) { String realPath = GetDriveMapping(letter); volumeSN = UsbManager.GetVolumeSerialNumber(devName(realPath[0])); } return(volumeSN); }