forked from ArduPilot/MissionPlanner
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAndroidSerialBase.cs
40 lines (34 loc) · 1.19 KB
/
AndroidSerialBase.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Android.App;
using Android.Content;
using Android.Hardware.Usb;
using Hoho.Android.UsbSerial.Driver;
using Hoho.Android.UsbSerial.Util;
namespace Hoho.Android.UsbSerial
{
public class AndroidSerialBase
{
public static List<(int Vid, int Pid)> cdcacmTuples = new List<(int Vid, int Pid)>()
{
(0x0483, 0x5740), // ST
(0x1209, 0x5740), // Ardu comp
(0x1209, 0x5741), // Ardu non-comp
(0x26AC, 0x11), // 3dr
};
public static Task<IList<IUsbSerialDriver>> GetPorts(UsbManager usbManager)
{
var table = UsbSerialProber.DefaultProbeTable;
foreach (var cdcacmTuple in cdcacmTuples)
{
if (table.FindDriver(cdcacmTuple.Item1, cdcacmTuple.Item2) == null)
table.AddProduct(cdcacmTuple.Item1, cdcacmTuple.Item2,
Java.Lang.Class.FromType(typeof(CdcAcmSerialDriver)));
}
var prober = new UsbSerialProber(table);
var drivers = prober.FindAllDriversAsync(usbManager);
return drivers;
}
}
}