コード例 #1
0
        private CcdTerminalIn GrabImage(int imageIndex, double exposure)
        {
            CcdTerminalIn vtIn = null;
            var           vIo  = VirtualIo.GetDevice(CcdId);

            if (vIo != null)
            {
                if (AcqFifoTool == null)
                {
                    AcqFifoTool = new AcqFifoToolLoader(CcdId);
                }

                AcqFifoTool.Aquire(exposure);
                vtIn = new CcdTerminalIn(CcdId, AcqFifoTool.MyImage, imageIndex);
            }

            return(vtIn);
        }
コード例 #2
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);
        }
コード例 #3
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);
        }