コード例 #1
0
ファイル: AndroidDebugBridge.cs プロジェクト: harishraj/tools
        // throw on failure
        public static AndroidDebugBridge Create(string pathToAdbExe)
        {
            AndroidDebugBridge result = new AndroidDebugBridge(pathToAdbExe);

            result.StartTracking();
            return(result);
        }
コード例 #2
0
        //---------------------------------------------------------------------------------------------
        // Construction
        // ---------------------------------------------------------------------------------------------

        public DeviceTracker(AndroidDebugBridge bridge)
        {
            this.bridge  = bridge;
            this.Devices = new List <Device>();
            this.serverFailedConnects = 0;
            this.serverRestarts       = 0;
            this.threadStarter        = new HandshakeThreadStarter("Device List Monitor", DeviceTrackingThread);
        }
コード例 #3
0
ファイル: DeviceTracker.cs プロジェクト: SwerveRobotics/tools
 //---------------------------------------------------------------------------------------------
 // Construction
 // ---------------------------------------------------------------------------------------------
 public DeviceTracker(AndroidDebugBridge bridge)
 {
     this.bridge        = bridge;
     this.Devices       = new List<Device>();
     this.serverFailedConnects = 0;
     this.serverRestarts = 0;
     this.threadStarter = new HandshakeThreadStarter("Device List Monitor", DeviceTrackingThread);
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: SwerveRobotics/tools
        static void Main(string[] arguments)
        {
            AndroidDebugBridge bridge = new AndroidDebugBridge();
            try {
                bridge.DeviceConnected              += (sender, e) => System.Console.WriteLine($"Device connected: {e.Device.SerialNumber}\t{e.Device.State}");
                bridge.DeviceDisconnected           += (sender, e) => System.Console.WriteLine($"Device disconnected: {e.Device.SerialNumber}\t{e.Device.State}");
                bridge.ServerStartedOrReconnected   += (sender, b) => System.Console.WriteLine($"ADB server started or reconnected");
                bridge.ServerKilled                 += (sender, b) => System.Console.WriteLine($"ADB server killed");

                bridge.StartTracking();

                Device device = AdbHelper.Instance.GetDevices(AndroidDebugBridge.AdbServerSocketAddress)[0];
                var props = device.Properties;

                // AdbHelper.Instance.Connect(AndroidDebugBridge.AdbServerSocketAddress, "192.168.0.22", 5555);
                }
            finally
                {
                bridge.StopTracking();
                }
        }
コード例 #5
0
 public AndroidDebugBridgeEventArgs(AndroidDebugBridge bridge)
 {
     this.Bridge = bridge;
 }
コード例 #6
0
 // throw on failure
 public static AndroidDebugBridge Create(string pathToAdbExe)
     {
     AndroidDebugBridge result = new AndroidDebugBridge(pathToAdbExe);
     result.StartTracking();
     return result;
     }
コード例 #7
0
 public AndroidDebugBridgeEventArgs(AndroidDebugBridge bridge)
 {
     this.Bridge = bridge;
 }
コード例 #8
0
ファイル: USBMonitor.cs プロジェクト: SwerveRobotics/tools
        // Stop the monitor running. This is idempotent
        public void Stop()
            {
            this.started = false;

            this.StopCommandQueueListener();
            this.ReleaseDeviceNotificationHandles();

            this.eventRaiser.DeviceArrived        -= OnDeviceArrived;
            this.eventRaiser.DeviceRemoveComplete -= OnDeviceRemoveComplete;

            this.bridge?.StopTracking();
            this.bridge = null;
            }
コード例 #9
0
ファイル: USBMonitor.cs プロジェクト: SwerveRobotics/tools
        // Start the monitor running
        public void Start()
            {
            try
                {
                Log.ThresholdLevel = LogLevel.Debug;

                this.bridge = AndroidDebugBridge.Create();
                this.bridge.DeviceConnected += (sender, e) =>
                    {
                    this.IgnoreADBExceptionsDuring(() => EnsureUSBConnectedDevicesAreOnTCPIP("ADB device connected"));
                    };
                this.bridge.ServerStartedOrReconnected += (sender, e) =>
                    {
                    this.IgnoreADBExceptionsDuring(() => 
                        {
                        lock (this.deviceConnectionLock)
                            {
                            // Ensure any USB-connected devices are on TCPIP
                            bool? anyDevices = EnsureUSBConnectedDevicesAreOnTCPIP("ADB server started");

                            // If the server isn't in fact connected to ANYONE (maybe the server stopped
                            // while no USB device was connected; closing Android Studio stops the server)
                            // then try to connect it to the last TCPIP device we used
                            if (anyDevices.HasValue && !anyDevices.Value)
                                {
                                ReconnectToLastTCPIPDevice();
                                }
                            }
                        });
                    };

                this.eventRaiser.DeviceArrived        += OnDeviceArrived;
                this.eventRaiser.DeviceRemoveComplete += OnDeviceRemoveComplete;

                foreach (Guid guid in this.deviceInterfacesOfInterest)
                    {
                    GetUSBDeviceNotificationsFor(guid);
                    }

                this.IgnoreADBExceptionsDuring(() => EnsureUSBConnectedDevicesAreOnTCPIP("BotBug start"));

                this.StartCommandQueueListener();

                this.started = true;
                }
            catch (Exception)
                {
                Stop();
                throw;
                }

            }