private void SetNodeColorByStatus(TreeNode node, Board board, TestStatus testStatus) { switch (testStatus) { case TestStatus.THRESHOLD: break; case TestStatus.RUNNING: if (!board.IsPassed) { node.BackColor = Color.Yellow; } break; case TestStatus.UNEXPECTED_FINNISH: node.BackColor = Color.Red; break; case TestStatus.EXPECTED_FINNISH: if (board.IsPassed) { node.BackColor = Color.Green; } else { node.BackColor = Color.Red; } break; } }
private void formRackConfig_Load(object sender, EventArgs e) { //如果初始数据非法,则重新初始化 if (testedRacks.Racks.Count != rackNum || testedRacks.Racks[0].Boards.Count != slotNum) { for (int i = 0; i < rackNum; i++) { Rack r = new Rack(); r.No = i + rackStartNum; r.Name = rackTypes[0]; r.IsEmpty = true; r.IP = ""; r.Port = 0; for (int j = 0; j < slotNum; j++) { Board b = new Board(); b.No = j + slotStartNum; b.Name = rackBoardTypes[i][0]; b.IsEmpty = true; b.IsTested = false; b.SN = ""; r.Boards.Add(b); } testedRacks.Racks.Add(r); } } //由Docment触发的View更新 ReloadPanel(); }
//根据板卡取得板卡所在的机笼 public Rack GetRack(Board board) { if (boardRackDict == null) { boardRackDict = new Dictionary<Board, Rack>(); foreach (Rack r in Racks) { foreach (Board b in r.Boards) { boardRackDict.Add(b, r); } } } if (boardRackDict.ContainsKey(board)) { return boardRackDict[board]; } return null; }
//生成板卡通过状态切换事件(在Running 状态下) protected void GenBoardStatusChangeEvent(Board board) { BoardStatusEventArgs e = new BoardStatusEventArgs(); e.Board = board; EventHandler temp = OnBoardStatusChange; if (temp != null) { temp(this, e); } }
//根据机笼号和板卡号获得板卡 public Board GetBoard(int rackNo, int boardNo) { if (boardNameDict.ContainsKey(rackNo * 1000 + boardNo)) { return boardNameDict[rackNo * 1000 + boardNo]; } Board b = new Board(); b.No = boardNo; b.Name = "未知板卡"; return b; }