Пример #1
0
        private void FormMain_Load(object sender, EventArgs e)
        {
            try
            {
                TestedRacks tc = testedRacks.Load();
                if (tc != null)
                {
                    testedRacks.CopyFrom(tc);
                }
                else
                {
                    testedRacks.SaveThis();
                }
            }
            catch (System.Exception ex)
            {
            }

            testedRacks.TestStatus           = TestStatus.EXPECTED_FINNISH;
            testedRacks.OnTestStatusChange  += new EventHandler(onChangeStatus);
            testedRacks.OnTimeout           += new EventHandler(onTimeout);
            testedRacks.OnBoardStatusChange += new EventHandler(onBoardStatus);

            setUIEnabled(false);
            DisplayTree(testedRacks);
            udp.UdpTxPrepare();
            udp.UpdRxStart();
            Thread udpTxStartThread = new Thread(new ThreadStart(udp.UdpTxStart));

            udpTxStartThread.Start();
        }
Пример #2
0
        private void onBoardStatus(object sender, EventArgs e)
        {
            TestedRacks          tr   = sender as TestedRacks;
            BoardStatusEventArgs args = e as BoardStatusEventArgs;

            if (!args.Board.IsPassed)
            {
                SetNodeColor(testedRacks, TestStatus.RUNNING);
            }
        }
Пример #3
0
 private string findSnByRack(TestedRacks lastTestedRacks, int rack)
 {
     foreach (Rack r in lastTestedRacks.Racks)
     {
         if (r.No == rack)
         {
             return(r.SN);
         }
     }
     return("");
 }
Пример #4
0
        private void onTimeout(object sender, EventArgs e)
        {
            TestedRacks      tr     = sender as TestedRacks;
            TimeoutEventArgs args   = e as TimeoutEventArgs;
            List <Board>     Boards = args.Boards;

            foreach (Board b in Boards)
            {
                UpdateGridData(b);
            }
        }
Пример #5
0
        private void SetNodeColor(TestedRacks testedRacks, TestStatus testStatus)
        {
            foreach (Node basenode in rackAdvTree.Nodes)
            {
                foreach (Node rack in basenode.Nodes)
                {
                    Rack r = (Rack)rack.Tag;
                    if (r.IsTested)
                    {
                        foreach (Node board in rack.Nodes)
                        {
                            Board b = (Board)board.Tag;
                            switch (testStatus)
                            {
                            case TestStatus.THRESHOLD:
                                break;

                            case TestStatus.HANDS_OK:
                                break;

                            case TestStatus.RUNNING:
                                if (!b.IsPassed)
                                {
                                    SetAdvTreeNodeColor(Color.Red, board);
                                }
                                break;

                            case TestStatus.UNEXPECTED_FINNISH:
                                break;

                            case TestStatus.EXPECTED_FINNISH:
                                if (b.IsTested)
                                {
                                    if (b.IsPassed)
                                    {
                                        SetAdvTreeNodeColor(Color.Green, board);
                                    }
                                    else
                                    {
                                        SetAdvTreeNodeColor(Color.Red, board);
                                    }
                                }
                                break;
                            }
                        }
                    }
                }
            }
        }
Пример #6
0
        private void onChangeStatus(object sender, EventArgs e)
        {
            TestedRacks         tr   = sender as TestedRacks;
            TestStatusEventArgs args = e as TestStatusEventArgs;

            switch (args.CurStatus)
            {
            case TestStatus.THRESHOLD:
                SetNodeColor(testedRacks, TestStatus.THRESHOLD);
                SetLabelResult(TestStatus.THRESHOLD);
                LoadingCircle(true);
                break;

            case TestStatus.HANDS_OK:
                SetNodeColor(testedRacks, TestStatus.HANDS_OK);
                SetLabelResult(TestStatus.HANDS_OK);
                setUIEnabled(true);
                LoadingCircle(false);
                break;

            case TestStatus.HANDS_NOTOK:
                SetLabelResult(TestStatus.HANDS_NOTOK);
                LoadingCircle(false);
                break;

            case TestStatus.RUNNING:
                SetNodeColor(testedRacks, TestStatus.RUNNING);
                SetLabelResult(TestStatus.RUNNING);
                break;

            case TestStatus.UNEXPECTED_FINNISH:
                SetNodeColor(testedRacks, TestStatus.UNEXPECTED_FINNISH);
                SetLabelResult(TestStatus.UNEXPECTED_FINNISH);
                LoadingCircle(false);
                setUIEnabled(false);
                break;

            case TestStatus.EXPECTED_FINNISH:
                this.btnFinish_Click(null, null);
                SetNodeColor(testedRacks, TestStatus.EXPECTED_FINNISH);
                SetLabelResult(TestStatus.EXPECTED_FINNISH);
                break;
            }
        }
Пример #7
0
        public void DisplayTree(TestedRacks testedRacks)
        {
            rackAdvTree.Nodes.Clear();
            Node baseroot = new Node();

            baseroot.Tag  = "TSP";
            baseroot.Text = "TSP";
            baseroot.Expand();
            Node root = null;
            Node teed = null;

            foreach (Rack rack in testedRacks.Racks)
            {
                root                 = new Node();
                root.Text            = rack.Name;
                root.Tag             = rack;
                root.CheckBoxVisible = true;
                root.Checked         = rack.IsTested;
                baseroot.Nodes.Add(root);
                if (rack.Name.Contains("部件功能测试"))
                {
                    root.Expand();
                }
                foreach (Board board in rack.Boards)
                {
                    teed      = new Node();
                    teed.Text = board.Name;
                    teed.Tag  = board;
                    if (!board.Name.Contains("空"))
                    {
                        if (board.IsTested)
                        {
                            teed.Checked = true;
                        }
                        teed.Expand();
                        root.Nodes.Add(teed);
                    }
                }
            }
            rackAdvTree.Nodes.Add(baseroot);
            rackAdvTree.Refresh();
        }
Пример #8
0
        private void btnReadBack_Click(object sender, EventArgs e)
        {
            TestedRacks tr = testedRacks.LoadByKey(testedRacks.LastKey);

            if (tr != null)
            {
                this.Enabled = false;
                foreach (Rack r in testedRacks.Racks)
                {
                    if (r.IsTested)
                    {
                        r.SN = findSnByRack(tr, r.No);
                    }
                }
                ReloadFrm();
                this.Enabled = true;
            }
            else
            {
                MessageBox.Show("历史SN号读取失败。");
            }
        }