示例#1
0
        public IAsyncOperation <bool> connect(string device_id, IoTizeDisconnectionCallback callback)
        {
            Context.StopEnumeration();
            _disconnectionCallback = callback;


            if (connectionState == ConnectionState._inConnection)
            {
                Log.WriteLine("~~~~Wait for Connecting");
                return(Task.Run(() => doWaitConnection())
                       .AsAsyncOperation());
            }
            else
            {
                connectionState = ConnectionState._inConnection;
                Log.WriteLine("\n--->Start Connecting");
                return(Task.Run(() => doStartConnection(device_id))
                       .AsAsyncOperation());
            }
        }
示例#2
0
        private async Task <bool> doStartDisConnection(string device_id)
        {
            bool successfull = false;

            lastError = "";

            //step 1: connect to device
            try
            {
                if (SelectedDevice != null)
                {
                    SelectedDevice.PropertyChanged -= SelectedDevice_PropertyChanged;
                    _disconnectionCallback          = null;
                    successfull = await SelectedDevice.Disconnect();

                    IsDeviceConnected = !successfull;
                }
            }
            catch (Exception e)
            {
                lastError = "Exception in disconnection " + e.Message;
                Log.WriteLine("!!!" + lastError);
                connectionState = ConnectionState._error;
                return(false);
            }

            if (successfull == false)
            {
                lastError = "Failed in disconnection " + device_id;
                Log.WriteLine("!!!" + lastError);
                connectionState = ConnectionState._error;
                return(false);
            }

            lastError      = "Successfull disconnection";
            SelectedDevice = null;

            connectionState = ConnectionState._connected;
            Log.WriteLine("<---" + lastError);
            return(true);
        }