public void Run() { UiMainForm.LogMessage(string.Format("Ccd{0}开始运行", CcdId)); MyCogToolBlock.Run(); RunParams.CcdDisplayBlock[CcdId].Post(1); RunParams.CcdCheckBlock[CcdId].Post(0); }
private void RunOffline(int x) { UiMainForm.LogMessage(string.Format("Ccd{0}开始离线运行", CcdId)); string vppHome = Path.GetDirectoryName(VppFileName); DirectoryInfo diImage = new DirectoryInfo(Path.Combine(vppHome, "image")); if (!diImage.Exists) { diImage.Create(); } int imageCount = 1; var toolBlock = MyCogToolBlock; VisionRoi roi = new VisionRoi(CcdId); int offlineImageCycle = x; if (offlineImageCycle == 0) { CogIPOneImageTool[] myCogIPOneImageTools = toolBlock.Tools.OfType <CogIPOneImageTool>().ToArray(); for (int i = 0; i < imageCount; i++) { CogImage8Grey inputImage = myCogIPOneImageTools[i].OutputImage as CogImage8Grey; var outputImage = roi.Trim(inputImage); CcdTerminalIn vtIn = new CcdTerminalIn(CcdId, outputImage, i); VtInBlock.Post(vtIn); } return; } else { for (int i = 0; i < imageCount; i++) { var imageName = string.Format("{0}-{1}-{2}.bmp", CcdId, offlineImageCycle, i + 1).Trim('-'); var imageFile = Path.Combine(diImage.FullName, imageName); if (File.Exists(imageFile)) { Bitmap bmpFile = new Bitmap(imageFile); CogImage8Grey inputImage = new CogImage8Grey(bmpFile); var outputImage = roi.Trim(inputImage); CcdTerminalIn vtIn = new CcdTerminalIn(CcdId, outputImage, i); VtInBlock.Post(vtIn); } } } }
public void Aquire(double exposure = 35) { int trigNum = 0; try { MyAcqFifo = MyCogAcqFifos[CameraIndex]; MyAcqFifo.OwnedExposureParams.Exposure = exposure; MyImage = (ICogImage)MyAcqFifo.Acquire(out trigNum); VisionRoi roi = new VisionRoi(CcdId); MyImage = roi.Trim(MyImage as CogImage8Grey); TrigNum = trigNum; } catch { UiMainForm.LogMessage(string.Format("CCD{0}相机未找到!", CcdId)); } }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { CogFrameGrabberGigEs cameras = new CogFrameGrabberGigEs(); try { foreach (CogFrameGrabberGigE item in cameras) { item.Disconnect(false); } } catch (Exception ex) { MessageBox.Show(string.Format("关闭相机失败{0}", ex.Message)); } UiMainForm.LogMessage("程序已退出!"); }
private void OnGrabImage(int x) { var grabBlobk = RunParams.CcdGrabBlock[CcdId]; int imageIndex = x; UiMainForm.LogMessage(string.Format("Ccd{0}开始拍照", CcdId)); var vIo = VirtualIo.GetDevice(CcdId); if (imageIndex == 0) { for (int i = 1; i < 3; i++) { vIo.ResetPort(i); } } double exposure = DbScheme.GetCcdParams(CcdId, BrandId, x, "Exposure"); CcdTerminalIn vtIn = GrabImage(imageIndex, exposure); VtInBlock.Post(vtIn); }
private void LogMessage(string message) { UiMainForm.LogMessage(message); }
public Form1() { InitializeComponent(); MessageBlock = new ActionBlock <string>(x => UiMainForm.LogMessage(x)); SYMVDIO.MessageBuffer.LinkTo(MessageBlock); }
private bool FillDataTable(DataTable tbl, int row, int column) { bool result = false; int columnP1 = 1; var db = DbScheme.Connections["Main"]; bool bSuccess = (MyCogToolBlock.RunStatus.Result == CogToolResultConstants.Accept); foreach (CogToolBlock toolBlock in MyCogToolBlock.Tools.OfType <CogToolBlock>()) { if (toolBlock.RunStatus.Result != CogToolResultConstants.Accept) { bSuccess = false; } } double ErrorValue = -1000000.0; string r1Text = db.ExecuteScalar <string>("select textCn from UiGlossary where name = ?", "r1"); string r2Text = db.ExecuteScalar <string>("select textCn from UiGlossary where name = ?", "r2"); string dataCn = db.ExecuteScalar <string>("select textCn from UiGlossary where name = ?", "Data"); for (int i = 0; i < row; i++) { double[] rowData = (MyCogToolBlock.Outputs[string.Format("strRow{0}", i + 1)].Value as string).Split(',').Select(x => double.Parse(x)).ToArray(); string viewRowLabel = db.ExecuteScalar <string>("select textCn from ViewScheme where ccdId = ? and brandId = ? and viewId = ? and recordId = ?", CcdId, BrandId, 0, i); if (!bSuccess) { for (int ic = 0; ic < rowData.Length; ic++) { rowData[ic] = ErrorValue; } } DataRow labelRow = tbl.NewRow(); DataRow r1Row = tbl.NewRow(); DataRow r2Row = tbl.NewRow(); string sql = "select * from CcdCompValue where ccdId = ? and brandId = ? and item between ? and ? order by item"; int itemStart = i * column; int itemEnd = i * column + column - 1; var qurey = db.Query <CcdCompValue>(sql, CcdId, BrandId, itemStart, itemEnd).ToArray(); for (int j = 0; j < column; j++) { labelRow[j + columnP1] = qurey[j].Label; r1Row[j + columnP1] = qurey[j].R1; r2Row[j + columnP1] = qurey[j].R2; } labelRow[columnP1 - 1] = viewRowLabel; r1Row[columnP1 - 1] = r1Text; r2Row[columnP1 - 1] = r2Text; tbl.Rows.Add(labelRow); tbl.Rows.Add(r2Row); tbl.Rows.Add(r1Row); DataRow dataRow = tbl.NewRow(); for (int j = 0; j < column; j++) { dataRow[j + columnP1] = rowData[j]; } dataRow[columnP1 - 1] = dataCn; tbl.Rows.Add(dataRow); } var dgv = StationViews.GetDgv("Data", CcdId); if (dgv.InvokeRequired) { dgv.Invoke(new Action(() => { dgv.DataSource = tbl; dgv.DgvLayout(); result = dgv.CheckResultData(row, column); })); } else { dgv.DataSource = tbl; dgv.DgvLayout(); result = dgv.CheckResultData(row, column); } VirtualIo vIo = VirtualIo.GetDevice(CcdId); if (result) { vIo.SetOk(); UiMainForm.LogMessage(string.Format("Ccd{0}输出OK信号", CcdId)); } else { vIo.SetNg(); UiMainForm.LogMessage(string.Format("Ccd{0}输出NG信号", CcdId)); } ZoneInfo zinfo = UiZoneInfo.Infos[CcdId]; zinfo.Show(result); UiMainForm.LogMessage(string.Format("Ccd{0}运行结束", CcdId)); return(result); }