Пример #1
0
        public static string CombineStats(ExperimentalConfig config, ServerStats server, ClientStats client, int count)
        {
            DateTime ts   = server.TimeStamp;
            string   line = client.TimeStamp.ToString(config.TimestampFormat) + ",";

            line += (config.Timestamp - ts).TotalMilliseconds + ",";
            line += count + ",";

            foreach (var key in config.OutputKeys)
            {
                switch (key.ToUpper())
                {
                case "CFPS": line += client.CFPS.Aggregate("", (s, v) => s + v + ",", f => f); break;

                case "POLYGONS": line += client.Polys.Aggregate("", (s, v) => s + v + ",", f => f); break;

                case "PING": line += client.Ping.Aggregate("", (s, v) => s + v + ",", f => f); break;

                case "FT": line += server.FrameTime.ToString() + ","; break;

                case "SFPS": line += server.SFPS.ToString() + ","; break;
                }
            }

            return(line + "," + ((server.TimeStamp - client.TimeStamp).TotalMilliseconds));
        }
Пример #2
0
        public void Init(Core core)
        {
            mCore   = core;
            mConfig = ExperimentalConfig.Instance;

            mFiles = File.ReadAllLines(mConfig.SettingsCollectionFile);

            mWasEnabled = mConfig.SettingsLoaderEnabled;

            if (mConfig.SettingsLoaderEnabled)
            {
                if (mConfig.Index < mFiles.Length)
                {
                    mFile = "settings-" + mFiles[mConfig.Index] + ".xml";
                    string file = Path.Combine(Path.GetDirectoryName(mConfig.SettingsCollectionFile), mFile);
                    foreach (var output in core.Frames.Select(f => f.Output))
                    {
                        ReplaceSettingsFile((output as OpenSimController).Config as ViewerConfig, file, mConfig, Logger);
                    }

                    Logger.Info("Settings loader loading settings file " + mConfig.Index + " of " + mFiles.Length + ": " + mFile + ".");

                    new Thread(() => {
                        Thread.Sleep(200);
                        mConfig.RunInfo = mFiles[mConfig.Index];
                    }).Start();
                }
                else
                {
                    Logger.Info("All settings files loaded, index " + mConfig.Index + " out of " + mFiles.Length + ". Not specifying file.");
                }
            }
        }
Пример #3
0
            public Stats(string line, ExperimentalConfig config)
            {
                string[] s      = line.Split(',');
                int      frames = new CoreConfig().Frames.Length;

                mConfig   = config;
                TimeStamp = DateTime.ParseExact(line.Split(',')[0], mConfig.TimestampFormat, new DateTimeFormatInfo());
            }
Пример #4
0
        public SettingLoaderControl(SettingLoaderPlugin plugin) : this()
        {
            mPlugin = plugin;
            mConfig = plugin.Config as ExperimentalConfig;
            mValue  = mConfig.Value;

            statusLabel.Text = mConfig.SettingsLoaderEnabled ? "Loaded settings from: " + mConfig.RunInfo : "Settings loading disabled.";
        }
        public SettingLoaderControl(SettingLoaderPlugin plugin)
            : this()
        {
            mPlugin = plugin;
            mConfig = plugin.Config as ExperimentalConfig;
            mValue = mConfig.Value;

            statusLabel.Text = mConfig.SettingsLoaderEnabled ? "Loaded settings from: " + mConfig.RunInfo : "Settings loading disabled.";
        }
Пример #6
0
            public string ToString(ExperimentalConfig config, int count)
            {
                string line = base.ToString(count);

                foreach (var key in config.OutputKeys)
                {
                    line += Get(key) + ",";
                }

                return(line.TrimEnd(','));
            }
Пример #7
0
        public AvatarMovementControl(AvatarMovementPlugin plugin) : this()
        {
            mPlugin = plugin;
            mConfig = mPlugin.Config as ExperimentalConfig;
            mPlugin.TargetChanged += new Action <string, Vector3>(mPlugin_TargetChanged);

            turnRatePanel.Value          = (float)(mPlugin.Config as ExperimentalConfig).TurnRate;
            moveRatePanel.Value          = (mPlugin.Config as ExperimentalConfig).MoveRate;
            distanceThresholdPanel.Value = (mPlugin.Config as ExperimentalConfig).DistanceThreshold;
            heightOffsetPanel.Value      = (mPlugin.Config as ExperimentalConfig).HeightOffset;
        }
Пример #8
0
            public ClientStats(string line, ExperimentalConfig config, DateTime timestamp)
                : base(timestamp, config)
            {
                string[] s      = line.Split(',');
                int      frames = new CoreConfig().Frames.Length;

                CFPS  = new float[frames];
                Polys = new float[frames];
                Ping  = new float[frames];

                AddLine(line, 0);
            }
        public AvatarMovementControl(AvatarMovementPlugin plugin)
            : this()
        {
            mPlugin = plugin;
            mConfig = mPlugin.Config as ExperimentalConfig;
            mPlugin.TargetChanged += new Action<string, Vector3>(mPlugin_TargetChanged);

            turnRatePanel.Value = (float) (mPlugin.Config as ExperimentalConfig).TurnRate;
            moveRatePanel.Value = (mPlugin.Config as ExperimentalConfig).MoveRate;
            distanceThresholdPanel.Value = (mPlugin.Config as ExperimentalConfig).DistanceThreshold;
            heightOffsetPanel.Value = (mPlugin.Config as ExperimentalConfig).HeightOffset;
        }
        public ClientRecorderControl(ClientRecorderPlugin plugin)
        {
            InitializeComponent();

            mPlugin = plugin;
            mConfig = mPlugin.Config as ExperimentalConfig;

            statsList.Columns.Add("Timestamp");
            foreach (var colName in mConfig.OutputKeys) {
                var col = statsList.Columns.Add(colName);
                col.Width = 30;
            }
        }
Пример #11
0
        public SettingChangerControl(SettingChangerPlugin plugin) : this()
        {
            mPlugin = plugin;
            mConfig = plugin.Config as ExperimentalConfig;
            mValue  = mConfig.Value;

            statusLabel.Text = mConfig.Setting + " will be set to " + mConfig.Value + " on login. Increment: " + mConfig.Increment + ".";

            mPlugin.Set += () =>
                           Invoke(new Action(() => {
                statusLabel.Text = mConfig.Setting + " set to " + mValue + ". Next iteration: " + mConfig.Value + " (increment " + mConfig.Increment + ").";
                mValue           = mConfig.Value;
            }));
        }
Пример #12
0
        public ClientRecorderControl(ClientRecorderPlugin plugin)
        {
            InitializeComponent();

            mPlugin = plugin;
            mConfig = mPlugin.Config as ExperimentalConfig;

            statsList.Columns.Add("Timestamp");
            foreach (var colName in mConfig.OutputKeys)
            {
                var col = statsList.Columns.Add(colName);
                col.Width = 30;
            }
        }
Пример #13
0
        public void Init(Core coordinator)
        {
            mCore = coordinator;

            mConfig = ExperimentalConfig.Instance;

            /*
             * if (mCore.HasPlugin<AvatarMovementPlugin>()) {
             *  mMovementPlugin = mCore.GetPlugin<AvatarMovementPlugin>();
             *  mConfig = mMovementPlugin.Config as ExperimentalConfig;
             * } else
             *  mConfig = new ExperimentalConfig();
             */
        }
        public SettingChangerControl(SettingChangerPlugin plugin)
            : this()
        {
            mPlugin = plugin;
            mConfig = plugin.Config as ExperimentalConfig;
            mValue = mConfig.Value;

            statusLabel.Text = mConfig.Setting + " will be set to " + mConfig.Value + " on login. Increment: " + mConfig.Increment + ".";

            mPlugin.Set += () =>
                Invoke(new Action(() => {
                    statusLabel.Text = mConfig.Setting + " set to " + mValue + ". Next iteration: " + mConfig.Value + " (increment " + mConfig.Increment + ").";
                    mValue = mConfig.Value;
                }));
        }
Пример #15
0
            public SystemStats(string line, ExperimentalConfig config)
                : base(line, config)
            {
                string[] s          = line.Split(',');
                int      processors = Environment.ProcessorCount;

                for (int i = 0; i < mConfig.OutputKeys.Length; i++)
                {
                    switch (mConfig.OutputKeys[i])
                    {
                    case "CPU": mProcessorUsage = float.Parse(s[i + 2]); break;

                    case "Core": mProcessorsUsage.AddRange(s.Skip(i + 2).Take(processors).Select(polys => polys != "-" ? float.Parse(polys) : 0f)); i += processors - 1; break;
                    }
                }
            }
Пример #16
0
        public override void Init(Core coordinator)
        {
            mTickListener = new Action(Core_Tick);
            base.Init(coordinator);

            mConfig = ExperimentalConfig.Instance;

            /*
             * if (Core.HasPlugin<AvatarMovementPlugin>()) {
             *  mMovementPlugin = Core.GetPlugin<AvatarMovementPlugin>();
             *  mConfig = mMovementPlugin.Config as ExperimentalConfig;
             * } else
             *  mConfig = new ExperimentalConfig();
             */

            LoggedInChanged += new Action <bool>(RecorderPlugin_LoggedInChanged);
        }
        public static void ReplaceSettingsFile(ViewerConfig viewerConfig, string file, ExperimentalConfig config, ILog Logger)
        {
            string filename = Path.GetFileName(file);
            try {
                File.Copy(file, Path.Combine(config.UserSettingsFolder, filename), true);
                Logger.Info("Copied " + file + " to " + config.UserSettingsFolder + ".");
            } catch (IOException e) {
                Logger.Fatal("Unable to copy settings file from stored directory (" + Path.GetDirectoryName(config.SettingsFile) + ") to user settings folder (" + config.UserSettingsFolder + ").", e);
                Environment.Exit(-1);
            }

            if (viewerConfig.ViewerArguments.Contains("--settings")) {
                viewerConfig.ViewerArguments.Replace(@"--settings .*xml", "--settings " + filename);
                //viewerConfig.ViewerArguments = Regex.Replace(viewerConfig.ViewerArguments, @"--settings .*xml", "--settings " + filename);
            } else
                viewerConfig.ViewerArguments += " --settings " + filename;
        }
        public SystemRecorderControl(SystemRecorderPlugin plugin)
        {
            InitializeComponent();

            mPlugin = plugin;
            mConfig = mPlugin.Config as ExperimentalConfig;

            updateFreq.Value = updateTimer.Interval;

            statsList.Columns.Add("Timestamp");
            foreach (var colName in mConfig.OutputKeys) {
                var col = statsList.Columns.Add(colName);
                col.Width = 30;
            }

            updateTimer.Enabled = true;
        }
Пример #19
0
        public SystemRecorderControl(SystemRecorderPlugin plugin)
        {
            InitializeComponent();

            mPlugin = plugin;
            mConfig = mPlugin.Config as ExperimentalConfig;

            updateFreq.Value = updateTimer.Interval;

            statsList.Columns.Add("Timestamp");
            foreach (var colName in mConfig.OutputKeys)
            {
                var col = statsList.Columns.Add(colName);
                col.Width = 30;
            }

            updateTimer.Enabled = true;
        }
Пример #20
0
        public void Init(Core coordinator)
        {
            SystemStats.InitialiseCounters();
            mCore         = coordinator;
            mTickListener = new Action(mCore_Tick);

            mConfig = ExperimentalConfig.Instance;

            /*
             * if (mCore.HasPlugin<AvatarMovementPlugin>()) {
             *  mMovementPlugin = mCore.GetPlugin<AvatarMovementPlugin>();
             *  mConfig = mMovementPlugin.Config as ExperimentalConfig;
             * } else
             *  mConfig = new ExperimentalConfig();
             */

            mCore.Tick += mTickListener;
        }
Пример #21
0
        public RecorderControl(RecorderPlugin plugin)
            : base(plugin)
        {
            InitializeComponent();

            mPlugin = plugin;
            mConfig = mPlugin.Config as ExperimentalConfig;

            updateFreq.Value = updateTimer.Interval;

            statsList.Columns.Add("Timestamp");
            foreach (var colName in mConfig.OutputKeys) {
                var col = statsList.Columns.Add(colName);
                col.Width = 30;
            }

            mPlugin.LoggedInChanged += new Action<bool>(mPlugin_LoggedInChanged);
        }
Пример #22
0
        public void Init(Core core)
        {
            Logger      = LogManager.GetLogger("SettingsChanger");
            mCore       = core;
            mConfig     = ExperimentalConfig.Instance;
            mWasEnabled = mConfig.SettingsChangerEnabled;
            //mConfig = mCore.HasPlugin<ClientRecorderPlugin>() ? mCore.GetPlugin<ClientRecorderPlugin>().Config as ExperimentalConfig : new ExperimentalConfig();
            if (mConfig.SettingsChangerEnabled && mConfig.Setting != null)
            {
                OSOut = (core.Frames[0].Output as OpenSimController);
                OSOut.ClientLoginComplete += new EventHandler(SettingChangerPlugin_ClientLoginComplete);

                new Thread(() => {
                    Thread.Sleep(200);
                    mConfig.RunInfo += (mConfig.RunInfo.Length == 0 ? "" : "-") + mConfig.Value;
                }).Start();
            }
        }
Пример #23
0
        public RecorderControl(RecorderPlugin plugin)
            : base(plugin)
        {
            InitializeComponent();

            mPlugin = plugin;
            mConfig = mPlugin.Config as ExperimentalConfig;

            updateFreq.Value = updateTimer.Interval;

            statsList.Columns.Add("Timestamp");
            foreach (var colName in mConfig.OutputKeys)
            {
                var col = statsList.Columns.Add(colName);
                col.Width = 30;
            }

            mPlugin.LoggedInChanged += new Action <bool>(mPlugin_LoggedInChanged);
        }
Пример #24
0
        public void Init(Core core)
        {
            mCore = core;
            mCore.CameraUpdated += new Action <Core, CameraUpdateEventArgs>(mCore_CameraUpdated);
            mTickListener        = new Action(mCore_Tick);

            ExperimentalConfig cfg = ExperimentalConfig.Instance;

            if (cfg.ExperimentFile != null && File.Exists(cfg.ExperimentFile))
            {
                Load(cfg.ExperimentFile);
            }
            else
            {
                mMap        = new Bitmap("Images/Maps/OrthogonalMap.png");
                mLeftScaleX = (mScaleX - 1f) / 2f;
                mLeftScaleY = (mScaleY - 1f) / 2f;
            }
        }
Пример #25
0
            public ClientStats(string line, ExperimentalConfig config) : base(line, config)
            {
                string[] s      = line.Split(',');
                int      frames = new CoreConfig().Frames.Length;

                CFPS  = new float[frames];
                Polys = new float[frames];
                Ping  = new float[frames];

                for (int i = 0; i < mConfig.OutputKeys.Length; i++)
                {
                    switch (mConfig.OutputKeys[i])
                    {
                    case "CFPS": CFPS = s.Skip(i + 2).Take(frames).Select(cfps => cfps != "-" ? float.Parse(cfps) : 0f).ToArray(); i += frames - 1; break;

                    case "Polygons": Polys = s.Skip(i + 2).Take(frames).Select(polys => polys != "-" ? float.Parse(polys) : 0f).ToArray(); i += frames - 1; break;

                    case "Ping": Polys = s.Skip(i + 2).Take(frames).Select(ping => ping != "-" ? float.Parse(ping) : 0f).ToArray(); i += frames - 1; break;
                    }
                }
            }
Пример #26
0
 public ServerStats(Simulator.SimStats stats, int frames, ExperimentalConfig config) : base(DateTime.Now, config)
 {
     Dilation        = stats.Dilation;
     SFPS            = stats.FPS;
     Agents          = stats.Agents;
     IncomingBPS     = stats.IncomingBPS;
     OutgoingBPS     = stats.OutgoingBPS;
     ResentPackets   = stats.ResentPackets;
     ReceivedResends = stats.ReceivedResends;
     PhysicsFPS      = stats.PhysicsFPS;
     AgentUpdates    = stats.AgentUpdates;
     Objects         = stats.Objects;
     ScriptedObjects = stats.ScriptedObjects;
     FrameTime       = stats.FrameTime;
     NetTime         = stats.NetTime;
     ImageTime       = stats.ImageTime;
     PhysicsTime     = stats.PhysicsTime;
     ScriptTime      = stats.ScriptTime;
     OtherTime       = stats.OtherTime;
     ChildAgents     = stats.ChildAgents;
     ActiveScripts   = stats.ActiveScripts;
 }
Пример #27
0
            public ServerStats(string line, ExperimentalConfig config)
                : base(line, config)
            {
                string[] s      = line.Split(',');
                int      frames = new CoreConfig().Frames.Length;

                Dilation        = 0f;
                SFPS            = 0;
                Agents          = 0;
                IncomingBPS     = 0;
                OutgoingBPS     = 0;
                ResentPackets   = 0;
                ReceivedResends = 0;
                PhysicsFPS      = 0f;
                AgentUpdates    = 0f;
                Objects         = 0;
                ScriptedObjects = 0;
                FrameTime       = 0f;
                NetTime         = 0f;
                ImageTime       = 0f;
                PhysicsTime     = 0f;
                ScriptTime      = 0f;
                OtherTime       = 0f;
                ChildAgents     = 0;
                ActiveScripts   = 0;

                for (int i = 0; i < mConfig.OutputKeys.Length; i++)
                {
                    switch (mConfig.OutputKeys[i])
                    {
                    case "FT": FrameTime = float.Parse(s[i + 2]); break;

                    case "SFPS": SFPS = int.Parse(s[i + 2]); break;
                    }
                }
            }
        public void Init(Core core)
        {
            mCore = core;
            mConfig = ExperimentalConfig.Instance;

            mFiles = File.ReadAllLines(mConfig.SettingsCollectionFile);

            mWasEnabled = mConfig.SettingsLoaderEnabled;

            if (mConfig.SettingsLoaderEnabled) {
                if (mConfig.Index < mFiles.Length) {
                    mFile = "settings-" + mFiles[mConfig.Index] + ".xml";
                    string file = Path.Combine(Path.GetDirectoryName(mConfig.SettingsCollectionFile), mFile);
                    foreach (var output in core.Frames.Select(f => f.Output)) {
                        ReplaceSettingsFile((output as OpenSimController).Config as ViewerConfig, file, mConfig, Logger);
                    }

                    Logger.Info("Settings loader loading settings file " + mConfig.Index + " of " + mFiles.Length + ": " + mFile + ".");

                    new Thread(() => {
                        Thread.Sleep(200);
                        mConfig.RunInfo = mFiles[mConfig.Index];
                    }).Start();
                } else
                    Logger.Info("All settings files loaded, index " + mConfig.Index + " out of " + mFiles.Length + ". Not specifying file.");
            }
        }
Пример #29
0
 public SystemStats(ExperimentalConfig config)
     : base(DateTime.Now, config)
 {
     mProcessorUsage = sProcessorUsage.NextValue();
     mProcessorsUsage.AddRange(sProcessorsUsage.Select(s => s.NextValue()));
 }
Пример #30
0
        public void Init(Core core)
        {
            mCore = core;
            mCore.CameraUpdated += new Action<Core, CameraUpdateEventArgs>(mCore_CameraUpdated);
            mTickListener = new Action(mCore_Tick);

            ExperimentalConfig cfg = new ExperimentalConfig();
            if (cfg.ExperimentFile != null && File.Exists(cfg.ExperimentFile))
                Load(cfg.ExperimentFile);
            else {
                mMap = new Bitmap("Images/Maps/OrthogonalMap.png");
                mLeftScaleX = (mScaleX - 1f) / 2f;
                mLeftScaleY = (mScaleY - 1f) / 2f;
            }
        }
Пример #31
0
            public Stats(DateTime timestamp, ExperimentalConfig config)
            {
                mConfig = config;

                TimeStamp = timestamp;
            }
        public void Init(Core core)
        {
            Logger = LogManager.GetLogger("SettingsChanger");
            mCore = core;
            mConfig = ExperimentalConfig.Instance;
            mWasEnabled = mConfig.SettingsChangerEnabled;
            //mConfig = mCore.HasPlugin<ClientRecorderPlugin>() ? mCore.GetPlugin<ClientRecorderPlugin>().Config as ExperimentalConfig : new ExperimentalConfig();
            if (mConfig.SettingsChangerEnabled && mConfig.Setting != null) {
                OSOut = (core.Frames[0].Output as OpenSimController);
                OSOut.ClientLoginComplete += new EventHandler(SettingChangerPlugin_ClientLoginComplete);

                new Thread(() => {
                    Thread.Sleep(200);
                    mConfig.RunInfo += (mConfig.RunInfo.Length == 0 ? "" : "-") + mConfig.Value;
                }).Start();
            }
        }
Пример #33
0
        public static void ReplaceSettingsFile(ViewerConfig viewerConfig, string file, ExperimentalConfig config, ILog Logger)
        {
            string filename = Path.GetFileName(file);

            try {
                File.Copy(file, Path.Combine(config.UserSettingsFolder, filename), true);
                Logger.Info("Copied " + file + " to " + config.UserSettingsFolder + ".");
            } catch (IOException e) {
                Logger.Fatal("Unable to copy settings file from stored directory (" + Path.GetDirectoryName(config.SettingsFile) + ") to user settings folder (" + config.UserSettingsFolder + ").", e);
                Environment.Exit(-1);
            }

            if (viewerConfig.ViewerArguments.Contains("--settings"))
            {
                viewerConfig.ViewerArguments.Replace(@"--settings .*xml", "--settings " + filename);
                //viewerConfig.ViewerArguments = Regex.Replace(viewerConfig.ViewerArguments, @"--settings .*xml", "--settings " + filename);
            }
            else
            {
                viewerConfig.ViewerArguments += " --settings " + filename;
            }
        }