Example #1
0
 public void Run()
 {
     UiMainForm.LogMessage(string.Format("Ccd{0}开始运行", CcdId));
     MyCogToolBlock.Run();
     RunParams.CcdDisplayBlock[CcdId].Post(1);
     RunParams.CcdCheckBlock[CcdId].Post(0);
 }
Example #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            UiMainForm.Layout(this);
            UiMainForm.LayoutDisplay();
            UiMainForm.LayoutEdit();
            UiMainForm.LayoutDataView();

            SyHelper.AddUi(0);
            SyHelper.AddUi(1);

            Timestamp = DateTime.Now.Ticks;

            this.LayoutMenuZone();
        }
Example #3
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));
            }
        }
Example #5
0
        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("程序已退出!");
        }
Example #6
0
        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);
        }
Example #7
0
 private void LogMessage(string message)
 {
     UiMainForm.LogMessage(message);
 }
Example #8
0
 public Form1()
 {
     InitializeComponent();
     MessageBlock = new ActionBlock <string>(x => UiMainForm.LogMessage(x));
     SYMVDIO.MessageBuffer.LinkTo(MessageBlock);
 }
Example #9
0
        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);
        }