Ejemplo n.º 1
0
        public bool ManualDrive(DriveArguments arguments)
        {
            if (isrunning)
            {
                return(false);
            }

            isrunning = true;
            try
            {
                //s_value = 1 (fastest) – 10 (slowest)
                int speedTick = RovioAPI.SetDouble(arguments.Speed, 10, 1);
                int?angleTick = null;
                if (arguments.Angle == null)
                {
                    angleTick = null;
                }
                else
                {
                    angleTick = (int)Math.Floor(arguments.Angle.Value / 12.0);
                }
                //angleTick 务必小于32,否则会溢出导致不断转圈。
                rovio.ManualDrive((int)arguments.Action, speedTick, angleTick);
            }
            catch (Exception ex)
            {
            }
            finally
            {
                isrunning = false;
            }

            return(true);
        }
Ejemplo n.º 2
0
        public bool ManualDrive(DriveArguments arguments)
        {
            if (isrunning)
                return false;

            isrunning = true;
            try
            {
                //s_value = 1 (fastest) – 10 (slowest)
                int speedTick = RovioAPI.SetDouble(arguments.Speed, 10, 1);
                int? angleTick = null;
                if(arguments.Angle == null)
                    angleTick = null;
                else
                    angleTick = (int)Math.Floor(arguments.Angle.Value / 12.0);
                //angleTick 务必小于32,否则会溢出导致不断转圈。
                rovio.ManualDrive((int)arguments.Action, speedTick, angleTick);
            }
            catch (Exception ex)
            {
            }
            finally
            {
                isrunning = false;
            }

            return true;
        }