Beispiel #1
0
        private void ShutdownRobotConnection()
        {
            if (_robot != null)
            {
                _robot.SensorControl.StopAll();
                _robot.Sleep();

                RobotProvider provider = RobotProvider.GetSharedProvider();
                provider.DiscoveredRobotEvent -= OnRobotDiscovered;
                provider.NoRobotsEvent        -= OnNoRobotsEvent;
                provider.ConnectedRobotEvent  -= OnRobotConnected;
            }
        }
Beispiel #2
0
        public void ShutdownRobotConnection()
        {
            if (m_robot != null)
            {
                if (SpheroConnected)
                {
                    try
                    {
                        if (!AccelerometerFiltered.close())
                        {
                            SpheroName = "ERROR: Consult debug.";
                            Debug.WriteLine("Unable to close stream,/n" +
                                            "please close application and manually delete file://" + AccelerometerFiltered.filePath);
                        }
                        if (!GyrometerFiltered.close())
                        {
                            SpheroName = "ERROR: Consult debug.";
                            Debug.WriteLine("Unable to close stream,/n" +
                                            "please close application and manually delete file://" + GyrometerFiltered.filePath);
                        }

                        m_robot.SensorControl.StopAll();
                        m_robot.SensorControl.AccelerometerUpdatedEvent -= OnAccelerometerUpdated;
                        m_robot.SensorControl.GyrometerUpdatedEvent     -= OnGyrometerUpdated;

                        m_robot.Sleep();
                        m_robot.Disconnect();
                        Debug.WriteLine("Sphero Disconnected");
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
                m_robot = null;
            }
            SpheroConnected = false;
            InitializeSensorReading.IsEnabled = false;
            SpheroName = kNoSpheroConnected;

            RobotProvider provider = RobotProvider.GetSharedProvider();

            provider.DiscoveredRobotEvent -= OnRobotDiscovered;
            provider.NoRobotsEvent        -= OnNoRobotsEvent;
            provider.ConnectedRobotEvent  -= OnRobotConnected;
        }
Beispiel #3
0
        //Завершаем работу с роботом
        private void ShutdownRobotConnection()
        {
            if (m_robot != null)
            {
                m_robot.SensorControl.StopAll();
                m_robot.Sleep();
                m_robot.Disconnect();

                ConnectionToggle.OffContent = "Disconnected";
                SpheroName.Text             = c_noSpheroConnected;

                m_robot.SensorControl.AccelerometerUpdatedEvent -= OnAccelerometerUpdated;

                RobotProvider provider = RobotProvider.GetSharedProvider();
                provider.DiscoveredRobotEvent -= OnRobotDiscovered;
                provider.NoRobotsEvent        -= OnNoRobotsEvent;
                provider.ConnectedRobotEvent  -= OnRobotConnected;
            }
        }
Beispiel #4
0
        //Завершаем работу с роботом
        private void ShutdownRobotConnection()
        {
            if (m_robot != null && m_robot.ConnectionState == ConnectionState.Connected)
            {
                m_robot.SensorControl.StopAll();
                m_robot.CollisionControl.StopDetection();
                m_robot.Sleep();
                m_robot.Disconnect();

                ConnectionToggle.OffContent = "Disconnected";
                SpheroName.Text             = c_noSpheroConnected;
                SetRedColor();

                RobotProvider provider = RobotProvider.GetSharedProvider();
                provider.DiscoveredRobotEvent -= OnRobotDiscovered;
                provider.NoRobotsEvent        -= OnNoRobotsEvent;
                provider.ConnectedRobotEvent  -= OnRobotConnected;
            }
        }
        //! @brief  disconnect from the robot and stop listening
        private void ShutdownRobotConnection()
        {
            if (m_robot != null)
            {
                m_robot.SensorControl.StopAll();
                m_robot.Sleep();
                // temporary while I work on Disconnect.
                //m_robot.Disconnect();
                ConnectionToggle.OffContent = "Disconnected";
                SpheroName.Text             = kNoSpheroConnected;

                m_robot.SensorControl.AccelerometerUpdatedEvent -= OnAccelerometerUpdated;
                m_robot.SensorControl.GyrometerUpdatedEvent     -= OnGyrometerUpdated;

                m_robot.CollisionControl.StopDetection();
                m_robot.CollisionControl.CollisionDetectedEvent -= OnCollisionDetected;

                RobotProvider provider = RobotProvider.GetSharedProvider();
                provider.DiscoveredRobotEvent -= OnRobotDiscovered;
                provider.NoRobotsEvent        -= OnNoRobotsEvent;
                provider.ConnectedRobotEvent  -= OnRobotConnected;
            }
        }
Beispiel #6
0
        public void ShutdownRobotConnection()
        {
            if (m_robot != null)
            {
                try
                {
                    m_robot.SensorControl.StopAll();
                    m_robot.Sleep();
                    m_robot.Disconnect();

                    m_robot.SensorControl.AccelerometerUpdatedEvent -= OnAccelerometerUpdated;
                    m_robot.SensorControl.GyrometerUpdatedEvent     -= OnGyrometerUpdated;

                    RobotProvider provider = RobotProvider.GetSharedProvider();
                    provider.DiscoveredRobotEvent -= OnRobotDiscovered;
                    provider.NoRobotsEvent        -= OnNoRobotsEvent;
                    provider.ConnectedRobotEvent  -= OnRobotConnected;
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            SpheroConnector spheroConnector = new SpheroConnector();
            Sphero          sphero          = null;

            string[] parameters = new string[] { "none" };
            string   command    = "none";

            while (!string.IsNullOrEmpty(command))
            {
                command = parameters[0];
                switch (command)
                {
                case "find":
                    spheroConnector.Scan();
                    var deviceNames = spheroConnector.DeviceNames;
                    for (int i = 0; i < deviceNames.Count; i++)
                    {
                        Console.WriteLine("{0}: {1}", i, deviceNames[i]);
                    }
                    break;

                case "connect":
                    if (parameters.Length < 2)
                    {
                        break;
                    }
                    int index = -1;
                    if (int.TryParse(parameters[1], out index))
                    {
                        try
                        {
                            sphero = spheroConnector.Connect(index);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                    }
                    else
                    {
                        Console.WriteLine("'{0}' is not a valid device index.", parameters[1]);
                    }
                    break;

                case "close":
                    spheroConnector.Close();
                    break;

                case "sleep":
                    sphero.Sleep();
                    break;

                case "setcolor":
                    if (parameters.Length < 2)
                    {
                        break;
                    }
                    ChangeColor(sphero, parameters[1]);
                    break;

                case "getresponses":
                {
                    if (parameters.Length < 2)
                    {
                        break;
                    }
                    int count;
                    if (int.TryParse(parameters[1], out count))
                    {
                        lock (sphero.Listener.SyncRoot)
                        {
                            IEnumerable <SpheroResponsePacket> packets = sphero.Listener.GetLastResponsePackets(count);
                            foreach (var packet in packets)
                            {
                                Console.WriteLine(packet);
                            }
                        }
                    }
                }
                break;

                case "getasync":
                {
                    if (parameters.Length < 2)
                    {
                        break;
                    }
                    int count;
                    if (int.TryParse(parameters[1], out count))
                    {
                        lock (sphero.Listener.SyncRoot)
                        {
                            IEnumerable <SpheroAsyncPacket> packets = sphero.Listener.GetLastAsyncPackets(count);
                            foreach (var packet in packets)
                            {
                                Console.WriteLine(packet);
                            }
                        }
                    }
                }
                break;

                case "exit":
                    spheroConnector.Close();
                    Console.WriteLine("See you soon ... ;) ");
                    Thread.Sleep(1500);
                    return;

                case "sendprogram":
                {
                    var area = StorageArea.Temporary;
                    IEnumerable <string> programLines = GetOrbBasicLinesFromFile("orbbasic.txt");
                    foreach (var programLine in programLines)
                    {
                        Console.WriteLine(programLine);
                    }
                    sphero.EraseOrbBasicStorage(area);
                    sphero.SendOrbBasicProgram(area, programLines);
                }
                break;

                case "runprogram":
                {
                    StorageArea area = StorageArea.Temporary;
                    sphero.ExecuteOrbBasicProgram(area, 10);
                }
                break;

                case "abortprogram":
                    sphero.AbortOrbBasicProgram();
                    break;

                case "diagnostics":
                {
                    sphero.PerformLevelOneDiagnostics();
                }
                break;

                case "none":
                    Console.WriteLine("Welcome to Sphero CMD controll application");
                    break;

                case "help":
                    Console.WriteLine("HELP will be realized soon.");
                    break;

                case "goForward":
                    if (parameters.Length < 3)
                    {
                        break;
                    }
                    ChangeColor(sphero, "Red");
                    GoForward(sphero, Byte.Parse(parameters[1]), int.Parse(parameters[2]));
                    break;

                default:
                    Console.WriteLine("Unknown command. Please type 'help' for getting list of available commands.");
                    break;
                }
                Console.Write("> ");
                parameters = Console.ReadLine().Split(new char[] { ' ' });
            }
        }