Example #1
0
        private void BtnADD_Click(object sender, EventArgs e)
        {
            Config.i++;
            Config.Equal = "false";
            try
            {
                for (int j = 0; j < Config.i; j++)
                {
                    if (Config.AGVNum1[j] == int.Parse(ComAGVNum.Text)) ///如果输入的AGV已经存在,那么就把当前的目的地值赋给它
                    {
                        Config.Equal      = "true";
                        Config.AGVTar1[j] = (int.Parse(ComAGVTar.Text));
                        Config.i--;
                    }
                }
                if (Config.Equal == "false")
                {
                    Config.AGVNum1.Add(int.Parse(ComAGVNum.Text));
                    Config.AGVPath1.Add(int.Parse(ComAGVPath.Text));
                    Config.AGVTar1.Add(int.Parse(ComAGVTar.Text));
                }
            }
            catch
            {
                for (int j = 0; j < Config.i; j++)
                {
                    if (Config.AGVNum1[j] == 0)
                    {
                        Config.Equal = "true";
                        Config.i--;
                    }
                }
                if (Config.Equal == "false")
                {
                    Config.AGVNum1.Add(0);
                    Config.AGVPath1.Add(11);
                    Config.AGVTar1.Add(1);
                }
            }
            Config.AGVLoct1.Add(1);    ///////路径上的位置
            Config.AGVStar1.Add(1);
            if (Config.Equal == "false")
            {
                AGVClass.AGVThread(Config.i, Config.AGVLabel[Config.AGVNum1[Config.i]]); //创建线程
            }
            AGVClass.AGVLabelStop(Config.AGVNum1[Config.i]);                             //阻塞线程
            btnAGVRun.Text = "开";


            if (Config.AGVLabel[Config.i] != null)    ///////使增加的AGV可视
            {
                if (Config.AGVStar1[Config.i] == 1)
                {
                    AGVClass.MoveAGV(Config.i, Config.AGVPath1[Config.i]);

                    Config.AGVLabel[Config.AGVNum1[Config.i]].Visible = true;
                }
            }
        }
Example #2
0
 private void TimMoveAGV_Tick(object sender, EventArgs e)
 {
     for (int j = 0; j <= Config.i; j++)
     {
         if (Config.AGVLabel[j] != null)
         {
             if (Config.AGVStar1[j] == 1)
             {
                 AGVClass.MoveAGV(j, Config.AGVPath1[j]);   /*更新AGVLabel的位置*/
             }
         }
     }
 }