Ejemplo n.º 1
0
        private void BtnAddCtrlClick(object sender, EventArgs e)
        {
            if (AI == null)
            {
                MessageBox.Show(Resources.NullAI + Resources.AddAController);
                return;
            }

            if (txtCtrlID.Text != "")
            {
                var acCount = AI.ActionControllerCount;

                if (!StringType.IsNumber(txtCtrlID.Text))
                {
                    MessageBox.Show(Resources.NoNumCtrl);
                    return;
                }

                var ctrlID = Convert.ToInt32(txtCtrlID.Text);

                for (var i = 0; i < acCount; i++)
                {
                    if (ctrlID != AI.ActionController[i].ID || ctrlID <= 0)
                        continue;

                    MessageBox.Show(Resources.CtrlExists);
                    return;
                }

                acCount++;
                var aiPolicy = new Model.AIPolicy();

                aiPolicy.Signature = 0;
                aiPolicy.ActionControllerCount = acCount;
                aiPolicy.ActionController = new ActionController[acCount];

                for (var j = 0; j < aiPolicy.ActionController.Length - 1; j++)
                {
                    aiPolicy.ActionController[j] = AI.ActionController[j];
                    aiPolicy.ActionController[j].Signature = AI.ActionController[j].Signature;
                    aiPolicy.ActionController[j].ID = AI.ActionController[j].ID;
                    aiPolicy.ActionController[j].ActionSetsCount = AI.ActionController[j].ActionSetsCount;
                    aiPolicy.ActionController[j].ActionSet = AI.ActionController[j].ActionSet;
                }

                AI = aiPolicy;
                AI.ActionController[acCount - 1] = new ActionController();

                AI.ActionController[acCount - 1].Signature = 0;
                AI.ActionController[acCount - 1].ActionSetsCount = 0;

                AI.ActionController[acCount - 1].ActionSet = new ActionSet[aiPolicy.ActionController[acCount - 1].ActionSetsCount];

                AI.ActionController[acCount - 1].ID = ctrlID;
                listController.Items.Clear();

                for (var k = 0; k < AI.ActionControllerCount; k++)
                {
                    var iD = AI.ActionController[k].ID;
                    listController.Items.Add(iD.ToString(CultureInfo.InvariantCulture));
                }

                listActionSet.Items.Clear();
                txtCondition.Clear();
                listProcedure.Items.Clear();
            }

            MessageBox.Show(Resources.CtrlWithID + txtCtrlID.Text + Resources.BeenAdded);
        }
Ejemplo n.º 2
0
        private void BtnDelCtrlClick(object sender, EventArgs e)
        {
            if (AI == null)
            {
                MessageBox.Show(Resources.NullAI + Resources.DeleteACtrl);
                return;
            }

            if (AI != null && txtCtrlID.Text != "")
            {
                var actionControllerCount = AI.ActionControllerCount;
                var ctrlID = -1;

                if (!StringType.IsNumber(txtCtrlID.Text))
                {
                    MessageBox.Show(Resources.EnterCtrlID);
                    return;
                }

                var delCtrlID = Convert.ToInt32(txtCtrlID.Text);

                for (var i = 0; i < actionControllerCount; i++)
                    if (delCtrlID == AI.ActionController[i].ID) ctrlID = i;

                if (ctrlID < 0)
                {
                    MessageBox.Show(Resources.CtrlNotExist);
                    return;
                }

                var aiPolicy = new Model.AIPolicy();
                aiPolicy.Signature = 0;
                aiPolicy.ActionControllerCount = actionControllerCount - 1;

                aiPolicy.ActionController = new ActionController[aiPolicy.ActionControllerCount];

                for (var i = 0; i < aiPolicy.ActionController.Length; i++)
                {
                    if (i < ctrlID) aiPolicy.ActionController[i] = AI.ActionController[i];
                    if (i >= ctrlID) aiPolicy.ActionController[i] = AI.ActionController[i + 1];
                }

                AI = aiPolicy;
                listController.Items.Clear();

                for (var k = 0; k < AI.ActionControllerCount; k++)
                    listController.Items.Add(AI.ActionController[k].ID.ToString(CultureInfo.InvariantCulture));

                listActionSet.Items.Clear();
                txtCondition.Clear();
                listProcedure.Items.Clear();
            }

            MessageBox.Show(Resources.CtrlWithID + txtCtrlID.Text + Resources.BeenDeleted);
        }
Ejemplo n.º 3
0
        private void MenuFileOpenClick(object sender, EventArgs e)
        {
            var open = new OpenFileDialog();
            open.Filter = Resources.AIPolicyFilter;
            open.Title = Resources.OpenAIPolicy;
            open.FileName = "aipolicy.data";

            if (open.ShowDialog() != DialogResult.OK ||
                !File.Exists(open.FileName))
                    return;

            try
            {
                Cursor = Cursors.WaitCursor;

                listController.Items.Clear();
                listActionSet.Items.Clear();
                listProcedure.Items.Clear();
                txtCondition.Clear();

                var ofs = File.OpenRead(open.FileName);
                var br = new BinaryReader(ofs);
                AI = new Model.AIPolicy();

                AI.Signature = br.ReadInt32();
                AI.ActionControllerCount = br.ReadInt32();
                AI.ActionController = new ActionController[AI.ActionControllerCount];

                for (var i = 0; i < AI.ActionController.Length; i++)
                {
                    AI.ActionController[i] = new ActionController();
                    var ac = AI.ActionController[i];

                    ac.Signature = br.ReadInt32();
                    ac.ID = br.ReadInt32();
                    ac.ActionSetsCount = br.ReadInt32();

                    ac.ActionSet = new ActionSet[ac.ActionSetsCount];
                    listController.Items.Add(ac.ID.ToString(CultureInfo.InvariantCulture));

                    for (var j = 0; j < ac.ActionSet.Length; j++)
                    {
                        ac.ActionSet[j] = new ActionSet();
                        var aSet = AI.ActionController[i].ActionSet[j];

                        aSet.Version = br.ReadInt32();
                        aSet.ID = br.ReadInt32();
                        aSet.Flags = br.ReadBytes(3);

                        aSet.ActionSetName = br.ReadBytes(128);
                        aSet.Condition = Condition.LoadCondition(br);
                        aSet.ProcedureCount = br.ReadInt32();

                        aSet.Procedure = new Procedure[aSet.ProcedureCount];

                        for (var k = 0; k < aSet.Procedure.Length; ++k)
                        {
                            aSet.Procedure[k] = new Procedure();
                            var proc = AI.ActionController[i].ActionSet[j].Procedure[k];

                            proc.Type = br.ReadInt32();

                            proc.Parameter = Procedure.ReadParameters(proc.Type, br);

                            proc.Target = br.ReadInt32();

                            if (proc.Target == 6)
                                proc.TargetParameters = Procedure.ReadTargetParameters(proc.Target, br);
                        }
                    }
                }
                br.Dispose();
                ofs.Dispose();
                open.Dispose();

                Cursor = Cursors.Default;
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Default;
                MessageBox.Show(Resources.ErrLoadAIPolicy + ex.Message);
            }
        }