Ejemplo n.º 1
0
        /// <summary>
        /// makes sure the active param object matches the GUI
        /// </summary>
        private void setParamData()
        {
            //param.canEvadersReceiveMultipleBroadcasts = chkMultipleBroadcasts.Checked;
            //param.canSinksSensePursuers = chkSinksSensePursuers.Checked;
            //param.areSinksSafe = chkSafeSinks.Checked;

            int psi;

            if (tryParseTextBox(txtPursuerCount, lblPursuerCount, out psi))
            {
                param.A_P = Pursuer.getAgents(psi);
            }

            int evaderCount;

            if (tryParseTextBox(txtEvadersCount, lblEvaderCount, out evaderCount))
            {
                param.A_E = Evader.getAgents(evaderCount);
            }

            int res;

            if (tryParseTextBox(txtres, lblrs, out res))
            {
                param.r_e = res;
            }

            float fe;

            if (tryParseTextBox(txtRenewal, lblREnewal, out fe))
            {
                param.f_e = fe;
            }

            float dp;

            if (tryParseTextBox(txtDetectionProb, lblDetectionProb, out dp))
            {
                param.detectionProbRestraint = dp;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// makes sure the active param object matches the GUI
        /// </summary>
        private void setParamData()
        {
            //param.canEvadersReceiveMultipleBroadcasts = chkMultipleBroadcasts.Checked;
            //param.canSinksSensePursuers = chkSinksSensePursuers.Checked;
            //param.areSinksSafe = chkSafeSinks.Checked;

            int psi;

            if (tryParseTextBox(txtPursuerCount, lblPursuerCount, out psi))
            {
                param.A_P = Pursuer.getAgents(psi);
            }

            int evaderCount;

            if (tryParseTextBox(txtEvadersCount, lblEvaderCount, out evaderCount))
            {
                param.A_E = Evader.getAgents(evaderCount);
            }

            int rp;

            if (tryParseTextBox(txtrp, lblrp, out rp))
            {
                param.r_p = rp;
            }

            int re;

            // if area is square, also make sure re is valid i.e. odd value
            if (tryParseTextBox(txtre, lblre, out re, (reval) => { return(!chkSquareArea.Checked || reval % 2 == 1); }))
            {
                param.r_e = re;
            }


            int res;

            if (tryParseTextBox(txtres, lblrs, out res))
            {
                param.r_es = res;
            }

            //int rps;
            //if (tryParseTextBox(txtrps, lblrs, out rps))
            //    param.r_ps = rps;

            int ti;

            if (tryParseTextBox(txtti, lblti, out ti))
            {
                param.t_i = ti;
            }


            param.IsAreaSquare = chkSquareArea.Checked;

            //try
            //{
            //    // set reward func:
            //    if (cmbRewardFunc.SelectedItem == null)
            //    {
            //        lblR.ForeColor = Color.Red;
            //        return;
            //    }

            //    param.R = ReflectionUtils.constructEmptyCtorType<ARewardFunction>((string)cmbRewardFunc.SelectedItem);
            //    lblR.ForeColor = Color.Black;
            //    lstRewarrdDesc.Items.Clear();
            //    lstRewarrdDesc.Items.AddRange(param.R.argumentsDescription().ToArray<object>());

            //    try
            //    {
            //        param.R.setArgs(txtRewardArg.Text);
            //        lblRewardArg.ForeColor = Color.Black;
            //    }
            //    catch (Exception)
            //    {
            //        lblRewardArg.ForeColor = Color.Red;
            //    }

            //}
            //catch (Exception ex)
            //{
            //    lblR.ForeColor = Color.Red;
            //}
        }
Ejemplo n.º 3
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            foreach (object o in this.Controls)
            {
                Label l = o as Label;

                if (l != null && l.ForeColor.ToArgb() != Color.Black.ToArgb() && l.Visible == true)     // ensure all fields are "valid"
                {
                    MessageBox.Show(l.Text + " has invalid value");
                    return;
                }
            }
            SaveFileDialog d = new SaveFileDialog();

            d.Filter = "Intrusion Game Param Files (*." + AppConstants.FileExtensions.INTRUSION_PARAM + ")|*." + AppConstants.FileExtensions.INTRUSION_PARAM;

            try
            {
                if (d.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }

                string dialogFilename = d.FileName;

                int minTI  = Int32.Parse(txtti.Text);
                int minRES = Int32.Parse(txtres.Text);
                //int minRPS = Int32.Parse(txtrps.Text);
                int minRP  = Int32.Parse(txtrp.Text);
                int minPsi = Int32.Parse(txtPursuerCount.Text);
                int minEta = Int32.Parse(txtEvadersCount.Text);
                //string minRewardArg = txtRewardArg.Text;

                int maxRP  = minRP;
                int maxPsi = minPsi;
                int maxEta = minEta;
                int maxRES = minRES;
                //int maxRPS = minRPS;
                int maxTI = minTI;

                //string maxRewardArg = txtRewardArgMax.Text;

                if (txtMaxRP.Text.Length > 0)
                {
                    Int32.TryParse(txtMaxRP.Text, out maxRP);
                }
                if (txtMaxPsi.Text.Length > 0)
                {
                    Int32.TryParse(txtMaxPsi.Text, out maxPsi);
                }
                if (txtMaxEta.Text.Length > 0)
                {
                    Int32.TryParse(txtMaxEta.Text, out maxEta);
                }
                if (txtMaxRes.Text.Length > 0)
                {
                    Int32.TryParse(txtMaxRes.Text, out maxRES);
                }
                //if (txtMaxRps.Text.Length > 0)
                //     Int32.TryParse(txtMaxRps.Text, out maxRPS);
                if (txtMaxTi.Text.Length > 0)
                {
                    Int32.TryParse(txtMaxTi.Text, out maxTI);
                }

                if (maxRP == minRP && maxPsi == minPsi && maxEta == minEta
                    //&& maxRPS == minRPS
                    && maxRES == minRES && minTI == maxTI /*&& maxRewardArg.Length == 0*/)
                {
                    param.serialize(d.FileName);
                }
                else
                {
                    //string rewardJump = txtRewardArgJump.Text;
                    int rpJump = 0, psiJump = 0, etaJump = 0, resJump = 0, rpsJump = 0, tiJump;
                    Int32.TryParse(txtPsiJump.Text, out psiJump);
                    Int32.TryParse(txtEtaJump.Text, out etaJump);
                    Int32.TryParse(txtRPJump.Text, out rpJump);
                    Int32.TryParse(txtResJump.Text, out resJump);
                    //Int32.TryParse(txtRpsJump.Text, out rpsJump);
                    Int32.TryParse(txtTiJump.Text, out tiJump);

                    rpJump  = Math.Max(rpJump, 1);
                    psiJump = Math.Max(psiJump, 1);
                    etaJump = Math.Max(etaJump, 1);
                    resJump = Math.Max(resJump, 1);
                    //rpsJump = Math.Max(rpsJump, 1);
                    tiJump = Math.Max(tiJump, 1);

                    dialogFilename = dialogFilename.Substring(0, dialogFilename.LastIndexOf('.'));

                    string newFolderName = "";

                    try
                    {
                        char slash = '\\';
                        if (!dialogFilename.Contains(slash))
                        {
                            slash = '/';
                        }

                        newFolderName = dialogFilename.Substring(dialogFilename.LastIndexOf(slash) + 1);
                        Directory.CreateDirectory(dialogFilename);
                        dialogFilename += (slash + newFolderName);
                    }
                    catch (Exception) { }

                    //var rewardFuncs = param.R.getRewardFunctions(minRewardArg, maxRewardArg, rewardJump);

                    //foreach(ARewardFunction rw in rewardFuncs)
                    //for (int rps = minRPS; rps <= maxRPS; rps += rpsJump)
                    for (int res = minRES; res <= maxRES; res += resJump)
                    {
                        for (int rp = minRP; rp <= maxRP; rp += rpJump)
                        {
                            for (int psi = minPsi; psi <= maxPsi; psi += psiJump)
                            {
                                for (int eta = minEta; eta <= maxEta; eta += etaJump)
                                {
                                    for (int ti = minTI; ti <= maxTI; ti += tiJump)
                                    {
                                        param.A_E  = Evader.getAgents(eta);
                                        param.A_P  = Pursuer.getAgents(psi);
                                        param.r_p  = rp;
                                        param.t_i  = ti;
                                        param.r_es = res;
                                        //param.r_ps = rps;

                                        //param.R = rw;


                                        string fileName =
                                            dialogFilename + "_eta" + eta.ToString() +
                                            "_rp" + rp.ToString() +
                                            "_psi" + psi.ToString() +
                                            "_res" + res.ToString() +
                                            //"_rps" + rps.ToString() +
                                            "_ti" + ti.ToString() +
                                            //"_" + rw.fileNameDescription() +
                                            "." + AppConstants.FileExtensions.INTRUSION_PARAM;
                                        param.serialize(fileName);
                                    }
                                }
                            }
                        }
                    }
                }

                isDirty       = false;
                ParamFilePath = d.FileName;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 4
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            foreach (object o in this.Controls)
            {
                Label l = o as Label;

                if (l != null && l.ForeColor.ToArgb() != Color.Black.ToArgb() && l.Visible == true)     // ensure all fields are "valid"
                {
                    MessageBox.Show(l.Text + " has invalid value");
                    return;
                }
            }
            SaveFileDialog d = new SaveFileDialog();

            d.Filter = "Routing Game Param Files (*." + AppConstants.FileExtensions.ROUTING_PARAM + ")|*." + AppConstants.FileExtensions.ROUTING_PARAM;

            try
            {
                if (d.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }

                string dialogFilename = d.FileName;


                float minRenew = float.Parse(txtRenewal.Text);
                int   minRES   = Int32.Parse(txtres.Text);
                //int minRPS = Int32.Parse(txtrps.Text);

                int minPsi = Int32.Parse(txtPursuerCount.Text);
                int minEta = Int32.Parse(txtEvadersCount.Text);
                //string minRewardArg = txtRewardArg.Text;


                int maxPsi = minPsi;
                int maxEta = minEta;
                int maxRES = minRES;
                //int maxRPS = minRPS;
                float maxRenew = minRenew;

                //string maxRewardArg = txtRewardArgMax.Text;


                if (txtMaxPsi.Text.Length > 0)
                {
                    Int32.TryParse(txtMaxPsi.Text, out maxPsi);
                }
                if (txtMaxEta.Text.Length > 0)
                {
                    Int32.TryParse(txtMaxEta.Text, out maxEta);
                }
                if (txtMaxRes.Text.Length > 0)
                {
                    Int32.TryParse(txtMaxRes.Text, out maxRES);
                }
                //if (txtMaxRps.Text.Length > 0)
                //     Int32.TryParse(txtMaxRps.Text, out maxRPS);
                if (txtRenewalMax.Text.Length > 0)
                {
                    float.TryParse(txtRenewalMax.Text, out maxRenew);
                }

                if (minRenew == maxRenew && maxPsi == minPsi && maxEta == minEta && maxRES == minRES)
                {
                    param.serialize(d.FileName);
                }
                else
                {
                    //string rewardJump = txtRewardArgJump.Text;
                    int   rpJump, psiJump, etaJump, resJump, rpsJump;
                    float renewalJump;
                    Int32.TryParse(txtPsiJump.Text, out psiJump);
                    Int32.TryParse(txtEtaJump.Text, out etaJump);
                    Int32.TryParse(txtResJump.Text, out resJump);
                    float.TryParse(txtRenewalJump.Text, out renewalJump);


                    psiJump     = Math.Max(psiJump, 1);
                    etaJump     = Math.Max(etaJump, 1);
                    resJump     = Math.Max(resJump, 1);
                    renewalJump = Math.Max(renewalJump, 0);

                    dialogFilename = dialogFilename.Substring(0, dialogFilename.LastIndexOf('.'));

                    string newFolderName = "";

                    try
                    {
                        char slash = '\\';
                        if (!dialogFilename.Contains(slash))
                        {
                            slash = '/';
                        }

                        newFolderName = dialogFilename.Substring(dialogFilename.LastIndexOf(slash) + 1);
                        Directory.CreateDirectory(dialogFilename);
                        dialogFilename += (slash + newFolderName);
                    }
                    catch (Exception) { }

                    //var rewardFuncs = param.R.getRewardFunctions(minRewardArg, maxRewardArg, rewardJump);

                    //foreach(ARewardFunction rw in rewardFuncs)
                    //for (int rps = minRPS; rps <= maxRPS; rps += rpsJump)
                    for (int res = minRES; res <= maxRES; res += resJump)
                    {
                        for (int psi = minPsi; psi <= maxPsi; psi += psiJump)
                        {
                            for (int eta = minEta; eta <= maxEta; eta += etaJump)
                            {
                                for (float renewal = minRenew; renewal <= maxRenew; renewal += renewalJump)
                                {
                                    param.A_E = Evader.getAgents(eta);
                                    param.A_P = Pursuer.getAgents(psi);
                                    param.r_e = res;
                                    param.detectionProbRestraint = double.Parse(txtDetectionProb.Text);
                                    param.f_e = renewal;
                                    //param.r_ps = rps;

                                    //param.R = rw;


                                    string fileName =
                                        dialogFilename + "_eta" + eta.ToString() +
                                        "_psi" + psi.ToString() +
                                        "_res" + res.ToString() +
                                        "_fe" + renewal.ToString("0.00") +
                                        "." + AppConstants.FileExtensions.ROUTING_PARAM;
                                    param.serialize(fileName);
                                }
                            }
                        }
                    }
                }

                isDirty       = false;
                ParamFilePath = d.FileName;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// makes sure the active param object matches the GUI
        /// </summary>
        private void setParamData()
        {
            param.canEvadersReceiveMultipleBroadcasts = chkMultipleBroadcasts.Checked;
            param.canSinksSensePursuers = chkSinksSensePursuers.Checked;
            param.areSinksSafe          = chkSafeSinks.Checked;

            int psi;

            if (tryParseTextBox(txtPursuerCount, lblPursuerCount, out psi))
            {
                param.A_P = Pursuer.getAgents(psi);
            }

            int evaderCount;

            if (tryParseTextBox(txtEvadersCount, lblEvaderCount, out evaderCount))
            {
                param.A_E = Evader.getAgents(evaderCount);
            }

            int rp;

            if (tryParseTextBox(txtrp, lblrp, out rp))
            {
                param.r_p = rp;
            }

            int re;

            if (tryParseTextBox(txtre, lblre, out re))
            {
                param.r_e = re;
            }

            int rs;

            if (tryParseTextBox(txtrs, lblrs, out rs))
            {
                param.r_s = rs;
            }

            float pd;

            if (tryParseTextBox(txtpd, lblpd, out pd))
            {
                param.p_d = pd;
            }

            try
            {
                // set reward func:
                if (cmbRewardFunc.SelectedItem == null)
                {
                    lblR.ForeColor = Color.Red;
                    return;
                }

                param.R        = ReflectionUtils.constructEmptyCtorType <ARewardFunction>((string)cmbRewardFunc.SelectedItem);
                lblR.ForeColor = Color.Black;
                lstRewarrdDesc.Items.Clear();
                lstRewarrdDesc.Items.AddRange(param.R.argumentsDescription().ToArray <object>());

                try
                {
                    param.R.setArgs(txtRewardArg.Text);
                    lblRewardArg.ForeColor = Color.Black;
                }
                catch (Exception)
                {
                    lblRewardArg.ForeColor = Color.Red;
                }

                //// if reward func isn't undefined, check argument validity:
                //int givenArgs;
                //if (txtRewardArg.Text == "")
                //    givenArgs = 0;
                //else
                //    givenArgs = txtRewardArg.Text.Split(new char[] { ',' }).Count() + 1;

                //if (givenArgs == param.R.argumentsDescription().Count)
                //    lblRewardArg.ForeColor = Color.Black;
                //else
                //    lblRewardArg.ForeColor = Color.Red;
            }
            catch (Exception ex)
            {
                lblR.ForeColor = Color.Red;
            }
        }