public void UpdateTravelStateInfo(TravelState info, string id, TravelStateUpdateDataMode mode)
        {
            if (TravelStateUpdateDataMode.MODE_DELETE == mode)
            {
                if (null == id)
                {
                    return;
                }
                DeleteTravelStateByID(id);
            }

            if (TravelStateUpdateDataMode.MODE_UPDATE == mode)
            {
                if (null == info)
                {
                    return;
                }

                UpdateExistsTravelStateInfo(info);
            }

            if (TravelStateUpdateDataMode.MODE_INSERT == mode)
            {
                if (null == info)
                {
                    return;
                }

                InsertTravelStateInfo(info);
            }
        }
        private void InsertTravelStateInfo(TravelState info)
        {
            string sql = "insert into TravelState(TravelStateName, TravelStateSeqNumber, TravelStateDescribe)";

            sql += " VALUES('{0}', {1}, '{2}')";

            sql = string.Format
                  (
                sql,
                info.TravelStateName,
                info.TravelStateSeqNumber,
                info.TravelStateDescribe
                  );

            SqlOperation.UpdateData(sql);
        }
Beispiel #3
0
        public static void JumpToNextSolarSystem()
        {
            Log.WriteLine("Travel.JumpToNextSolarSystem State = {0}", State);
            switch (State)
            {
            case TravelState.BookMarkSetDestination:
                BookMarkSetDestination();
                break;

            case TravelState.GetFirstWaypoint:
                var waypoint = Global.Eve.GetToDestinationPath().ToList().FirstOrDefault();
                if (waypoint == 0)
                {
                    return;
                }
                _nextSolarSystemId = waypoint;
                State = TravelState.ClearWaypoints;
                break;

            case TravelState.ClearWaypoints:
                Global.Eve.ClearAllWaypoints();
                State = TravelState.SetFirstWaypoint;
                break;

            case TravelState.SetFirstWaypoint:
                Global.Eve.AddWaypoint(_nextSolarSystemId);
                State = TravelState.AutoPilotOn;
                break;

            case TravelState.AutoPilotOn:
                AutoPilotOn();
                var solarSystemId = Global.Ext.Me.SolarSystemID;
                if (solarSystemId == _nextSolarSystemId)
                {
                    State = TravelState.Complete;
                }
                break;

            case TravelState.Complete:
                _nextSolarSystemId = 0;
                State = TravelState.BookMarkSetDestination;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        private void UpdateExistsTravelStateInfo(TravelState info)
        {
            StringBuilder sqlBuilder = new StringBuilder();

            sqlBuilder.Append("update TravelState set TravelStateName = '{0}', TravelStateSeqNumber = {1}, ");
            sqlBuilder.Append("TravelStateDescribe = '{2}' where TravelStateID = {3}");

            string sql = string.Format
                         (
                sqlBuilder.ToString(),
                info.TravelStateName,
                info.TravelStateSeqNumber,
                info.TravelStateDescribe,
                info.TravelStateID
                         );

            SqlOperation.UpdateData(sql);
        }
        public WaypointTraveller(MotorControl motorControl, IMyRemoteControl mainControl, IMyTextSurface outputSurface)
        {
            this.motorControl  = motorControl;
            this.mainControl   = mainControl;
            this.outputSurface = outputSurface;

            this.currentPointIndex = 0;
            this.travelState       = TravelState.Stopped;
            this.path = new Waypath("Default Path", new List <Waypoint>());

            commandTree = new PanelCommander.CommandTree()
            {
                label    = "Waypath Traveller",
                commands = new List <PanelCommander.Command>()
                {
                    new PanelCommander.Command()
                    {
                        label = "Travel", action = Travel
                    },
                    new PanelCommander.Command()
                    {
                        label = "Pause", action = Pause
                    },
                    new PanelCommander.Command()
                    {
                        label = "Skip", action = Skip
                    },
                    new PanelCommander.Command()
                    {
                        label = "Back", action = Back
                    },
                    new PanelCommander.Command()
                    {
                        label = "Reset", action = Reset
                    },
                    new PanelCommander.Command()
                    {
                        label = "Stop", action = Stop
                    },
                },
                subtrees = new List <PanelCommander.CommandTree>(),
            };
        }
        private void UpdateTravelStateInfo(TravelStateUpdateDataMode mode)
        {
            TravelState info = new TravelState()
            {
                TravelStateName      = this.txtTravelStateName.Text.ToString().Trim(),
                TravelStateSeqNumber = Convert.ToInt32(this.txtSequenceNumber.Text.ToString().Trim()),
                TravelStateDescribe  = this.rtbTravelStateDescribe.Text.ToString().Trim(),
            };

            if (TravelStateUpdateDataMode.MODE_INSERT == mode)
            {
                objTravelStateService.UpdateTravelStateInfo(info, null, mode);
            }
            else if (TravelStateUpdateDataMode.MODE_UPDATE == mode)
            {
                info.TravelStateID = Convert.ToInt32(this.Tag);
                objTravelStateService.UpdateTravelStateInfo(info, null, mode);
            }
        }
        public void Tick()
        {
            DrawOutput();
            if (path.points.Count == 0)
            {
                return;
            }
            if (travelState != TravelState.Travelling)
            {
                return;
            }
            var spline = GetTargetSpline();

            var targetDistance = 20;

            target = SplineUtils.GetAbsolutePointOnSpline(spline, SplineUtils.GetSplineLength(spline, 5), targetDistance);

            if (AtCurrentPoint())
            {
                // If this is the last point
                if (path.points.Count - 1 == currentPointIndex)
                {
                    // Stop moving
                    travelState = TravelState.AtDestination;
                    motorControl.SetMotorCommand(MotorControl.MotorCommand.Stopped);
                    return;
                }
                else
                {
                    // Or update the point to the next one
                    currentPointIndex++;
                }
            }

            MotorControl.MotorCommand command = CalculateMotorCommand();
            if (!command.Equals(motorControl.LastCommand))
            {
                motorControl.SetMotorCommand(command);
            }
        }
Beispiel #8
0
        private static void BookMarkSetDestination()
        {
            var currentSolarSystemId = Global.Ext.Me.SolarSystemID;
            var bookMark             = Global.Eve.Bookmark(Global.BookMarkLabelList[_bookMarkLabelIndex]);

            if (bookMark != null)
            {
                if (bookMark.SolarSystemID == currentSolarSystemId)
                {
                    SetNextBookMark();
                }
                else
                {
                    bookMark.SetDestination();
                    State = TravelState.GetFirstWaypoint;
                }
            }
            else
            {
                SetNextBookMark();
            }
        }
 public void LoadState(JSON.Element element)
 {
     travelState       = (TravelState)Enum.Parse(typeof(TravelState), element.jsonObject["travelState"].jsonString);
     currentPointIndex = (int)element.jsonObject["currentPointIndex"].jsonNumber;
 }
 public void Stop()
 {
     travelState = TravelState.Stopped;
     motorControl.Disengage();
 }
 public void Travel()
 {
     travelState = TravelState.Travelling;
 }
 public void Pause()
 {
     travelState = TravelState.Stopped;
     motorControl.SetMotorCommand(MotorControl.MotorCommand.Stopped);
 }
Beispiel #13
0
 public TravelAction(TravelState destination)
 {
     Destination = destination;
 }
Beispiel #14
0
 public TravelAction(TravelState destination)
 {
     Destination = destination;
 }