예제 #1
0
        public override IDictionary <string, object> GetDebugInfo()
        {
            var info         = base.GetDebugInfo();
            var homeDistance = HomePosition.TotalDistance2D(CurrentPosition);

            info.Add("homePositionX", HomePosition.intX);
            info.Add("homePositionY", HomePosition.intY);
            info.Add("homeRange", HomeRange);
            info.Add("homeDistance", homeDistance);
            info.Add("coreMax", CoreMax);
            info.Add("coreCurrent", Core);
            info.Add("bestCombatRange", BestCombatRange);

            var currentAI = AI.Current;

            if (currentAI != null)
            {
                info.Add("fsm", currentAI.GetType().Name);
            }

            info.Add("threat", _threatManager.ToDebugString());

            _group?.AddDebugInfoToDictionary(info);

            info.Add("ismission", GetMissionGuid() != Guid.Empty);

            return(info);
        }
예제 #2
0
 public static HomePosition CreateHomePosition2()
 {
     var Y = 10.4;
     HomePosition homePosition = new HomePosition(new LegPosition(11.4, Y, 0.0), new LegPosition(-11.4, Y, 0.0),
                                                  new LegPosition(11.4, Y, 0.0), new LegPosition(-11.4, Y, 0.0),
                                                  new LegPosition(11.4, Y, 0.0), new LegPosition(-11.4, Y, 0.0));
     return homePosition;
 }
예제 #3
0
        public static HomePosition CreateHomePosition4()
        {
            var Y = 10.4;
            HomePosition homePosition = new HomePosition(

                new LegPosition(5.7, Y, -9.8726896031426),
                new LegPosition(-5.7, Y, -9.8726896031426),
                new LegPosition(11.4, Y, 0.0),
                new LegPosition(-11.4, Y, 0.0),
                new LegPosition(5.7, Y, 9.8726896031426),
                new LegPosition(-5.7, Y, 9.8726896031426)
                );
            return homePosition;
        }
예제 #4
0
 public static Phoenix CreatePhoenix(HomePosition startPosition)
 {
     Phoenix phoenix = new Phoenix
                           {
                               LeftFrontLeg = createLeg(Side.Left, Position.Front, 60, 1, 3, 5, 4.3, -8.2, startPosition.LeftFrontLeg),
                               RightFrontLeg = createLeg(Side.Right, Position.Front, -60, 2, 4, 6, -4.3, -8.2, startPosition.RightFrontLeg),
                               LeftMiddleLeg = createLeg(Side.Left, Position.Middle, 0, 7, 9, 11, 6.3, 0, startPosition.LeftMiddleLeg),
                               RightMiddleLeg = createLeg(Side.Right, Position.Middle, 0, 8, 10, 12, -6.3, 0, startPosition.RightMiddleLeg),
                               LeftRearLeg = createLeg(Side.Left, Position.Rear, -60, 13, 15, 17, 4.3, 8.2, startPosition.LeftRearLeg),
                               RightRearLeg = createLeg(Side.Right, Position.Rear, 60, 14, 16, 18, -4.3, 8.2, startPosition.RightRearLeg)
                           };
     phoenix.MoveBody(0, 90);// calculates start posisions for angles
     return phoenix;
 }
예제 #5
0
 public void ParseHomedStatus(string data)
 {
     string[] values = data.TrimEnd(']').Split(':');
     if (values.Length == 3)
     {
         HomePosition.Parse(values[1]);
         AxisHomed.Value = (AxisFlags)int.Parse(values[2]);
         for (int i = 0; i < GrblInfo.NumAxes; i++)
         {
             if (!AxisHomed.Value.HasFlag(GrblInfo.AxisIndexToFlag(i)))
             {
                 HomePosition.Values[i] = double.NaN;
             }
         }
     }
 }
예제 #6
0
        public static HomePosition CreateHomePosition5()
        {
            var Y = 17;
            HomePosition homePosition = new HomePosition(

                new LegPosition(5.7/2, Y, -9.8726896031426/2),
                new LegPosition(-5.7 / 2, Y, -9.8726896031426 / 2),
                new LegPosition(11.4 / 2, Y, 0.0),
                new LegPosition(-11.4 / 2, Y, 0.0),
                new LegPosition(5.7 / 2, Y, 9.8726896031426 / 2),
                new LegPosition(-5.7 / 2, Y, 9.8726896031426 / 2)
                );
            return homePosition;
        }
 private void ReturnHome()
 {
     GotoPosition(HomePosition.GetValueOrDefault());
 }