Exemple #1
0
    IEnumerator Reconnect(uint serial)
    {
        Debug.Log("looking for usb device " + serial.ToString());
        // polling to try and find the USB device
        while (true)
        {
            if (ANT_Common.getNumDetectedUSBDevices() > nDeviceConnected)
            {
                ANT_Device device = new ANT_Device();
                if (device.getSerialNumber() == serial)
                {
                    Debug.Log("usb found!");
                    AntManager.Instance.Reconnect(device);
                    foreach (AntChannel channel in AntManager.Instance.channelList)
                    {
                        channel.ReOpen(device);
                    }

                    yield break;
                }
                else
                {
                    device.Dispose();
                }
            }

            yield return(new WaitForSeconds(0.1f));
        }
    }
Exemple #2
0
 void OnApplicationQuit()
 {
     //dispose the device on app quit or the application will freeze
     if (device != null)
     {
         device.Dispose();
     }
 }
Exemple #3
0
 private void CloseAllChannles()
 {
     if (channel0 != null)
     {
         Console.WriteLine("Closing Channel");
         channel0.closeChannel();
         channel0.Dispose();
         channel0 = null;
     }
     if (device0 != null)
     {
         device0.Dispose();
         device0 = null;
     }
     //dispose time and wait object and semaphore
 }
        int cursorIndex = 0;                                                            // index to handle cursor display while transmitting in broadcast mode

        /// <summary>
        /// Setup ANT-FS client to process messages from connected device
        /// </summary>
        public void Start(ANT_Device antDevice)
        {
            PrintMenu();
            try
            {
                // Create the ANT-FS client and attach it to a channel (in this case, 0)
                channel0    = antDevice.getChannel(0);
                antfsClient = new ANTFS_ClientChannel(channel0);

                // Setup callback to handle ANT-FS response events
                antfsClient.OnResponse += new Action <ANTFS_ClientChannel.Response>(HandleClientResponses);

                // Configure the client, and begin beaconing
                ConfigureClient(antDevice);

                while (!demoDone)
                {
                    string command = Console.ReadLine();
                    HandleUserInput(command);
                    Thread.Sleep(0);
                }
            }
            catch (ANTFS_Exception antEx)  // Handle exceptions thrown by ANT Managed library
            {
                Console.WriteLine("ANT-FS Exception: " + antEx.Message);
            }
            catch (Exception ex)  // Handle other exceptions
            {
                Console.WriteLine("Demo failed: " + ex.Message);
                Console.ReadLine();
            }
            finally
            {
                Console.WriteLine("Disconnecting module...");
                antDevice.Dispose();    // Close down the device completely and completely shut down all communication
                antfsClient.Dispose();  // Release all native resources used by the client
                Console.WriteLine("Demo has completed successfully!");
            }
        }
        public void Stop()
        {
            // Nothing to stop if not started or already finished.
            if (state == AntState.NotStarted || state == AntState.Finished)
            {
                return;
            }

            //if (state == AntState.StartFail || state == AntState.ConnectFail)
            //    return;

            if (this.channel != null)
            {
                try
                {
                    ANT_Channel tempChannel = this.channel;
                    this.channel = null;
                    tempChannel.closeChannel(RESPONSE_WAIT_TIME);
                    tempChannel.Dispose();
                }
                catch { }
            }

            if (this.device != null)
            {
                try
                {
                    ANT_Device tempDevice = this.device;
                    this.device = null;

                    // We use a temp var here because this Dispose method is a little strange...
                    tempDevice.Dispose();
                }
                catch { }
            }

            UpdateState(AntState.Finished);
        }
Exemple #6
0
 private void OnDestroy()
 {
     _device?.Dispose();
 }