Esempio n. 1
0
        public static void RunOnce()
        {
            _block.Run();
            var ImageAcqTool = (CogAcqFifoTool)_block.Tools["CogAcqFifoTool1"];

            _formMain.Invoke((MethodInvoker)(() =>
            {
                _formMain.cogRecordDisplay1.Record =
                    _block.CreateLastRunRecord().SubRecords["CogIPOneImageTool1.OutputImage"];
            }));

            string runResult;

            if (CogToolResultConstants.Accept == _block.RunStatus.Result)
            {
                runResult = resultOK;
            }
            else if (ImageAcqTool.RunStatus.Result != CogToolResultConstants.Accept)
            {
                runResult = resultImageAcqFailed;
            }
            else
            {
                var pma = (CogPMAlignTool)_block.Tools["主定位"];
                runResult = pma.Results.Count == 0 ? resultNoProduct : resultNG;
            }

            // 反馈信号
            SubmitResult(runResult);
            // 将结果显示到屏幕
            DisplayResult_Invoke(runResult);
            // 根据结果判断是否保存图片
            saveImage(_formMain.cogRecordDisplay1, 0, runResult);

            var blockOutputs = DataLogger.ExtractOutputsFromToolBlock(ref _block, _blockOutputNames);

            SaveLog(0, runResult, blockOutputs);
        }