Пример #1
0
        public ActionResult display(string param1, int param2)
        {
            var model = InfoModel.Instance;

            // display flight info from file
            if (!ValidateIPv4(param1))
            {
                string file = param1;
                int    time = param2;
                model.ReadData(file);
                index = 0;
                double infoLength = model.FileContent.Length;
                //defining timeout
                double timeout = (infoLength / 4) * (double)time;

                Session["timeLoad"] = time;
                Session["timeout"]  = timeout;

                return(View("loadFlightInfo"));
            }

            // desplay only current location.
            string ip   = param1;
            int    port = param2;

            Session["ip"]   = ip;
            Session["port"] = port;

            // connect to simulator.
            SimulatorConnection.Instance(ip, port).Connect();
            return(View("display"));
        }
Пример #2
0
        // Returns an xml with the current location info.
        public string GetLocation()
        {
            var info = LocationInfo.Instance;

            info.Read(SimulatorConnection.Instance(Session["ip"].ToString(), int.Parse(Session["port"].ToString())).Read());
            return(ToXml(info));
        }
Пример #3
0
        // Sampling the flight info from the simulator.
        public string GetSaveSample()
        {
            var info = LocationInfo.Instance;

            info.Read(SimulatorConnection.Instance(Session["ip"].ToString(), int.Parse(Session["port"].ToString())).Read());
            InfoModel.Instance.SaveData(Session["file_save"].ToString(), new double[] { info.Lon, info.Lat, info.Rudder, info.Throttle });
            return(ToXml(info));
        }
Пример #4
0
        // Sampling the flight info with no time limit.
        public ActionResult displayAndUpdate(string ip, int port, int time)
        {
            // connect to the simulator.
            SimulatorConnection.Instance(ip, port).Connect();

            Session["ip"]   = ip;
            Session["port"] = port;
            Session["time"] = time;

            return(View("displayAndUpdate"));
        }
Пример #5
0
        private IContext BuildClient(IContext context, ConnectionData config)
        {
            var root          = context.Resolve <IRootContext>();
            var moduleContext = new ClientCompositionRoot(root);
            var connection    = new SimulatorConnection(context)
            {
                ConnectionData = config
            };

            _connections = (_connections ?? new SimulatorConnection[] { }).Concat(new[] { connection }).ToArray();
            moduleContext.RegisterInstance <INetworkClientConnection>(connection);
            return(moduleContext);
        }
Пример #6
0
        private void SendSync(SimulatorConnection connection)
        {
            var builder = _context.Resolve <ICommandBuilder>();

            if (builder.IsInProgress <CommandStateSyncRequest>(connection.PlayerId))
            {
                return;
            }

            var command = builder.BuildRequest <CommandStateSyncRequest>(connection.PlayerId);

            command.Deference = _context.Resolve <IRepository>().GetPlayerStates(null).ToArray();
            connection.SendToClient(command);
        }
Пример #7
0
        // Saving the flight info samples to the requested file and showing the path.
        public ActionResult saveFlightInfo(string ip, int port, int time, int duration, string file)
        {
            InfoModel model = InfoModel.Instance;

            // connect to the simulator.
            SimulatorConnection.Instance(ip, port).Connect();
            model.PrepareFile(file);

            Session["ip"]        = ip;
            Session["port"]      = port;
            Session["timeSave"]  = time;
            Session["duration"]  = duration;
            Session["file_save"] = file;

            return(View("saveFlightInfo"));
        }