建设小型网站价钱,房屋设计图平面图,wordpress最大负载,郑州高端网站案例toolblock开发 vpp第二种简单加载方式 public Cognex.VisionPro.ToolBlock.CogToolBlock ToolBlock1;//初始化后实例化一个方法
//窗口运行程序内部 ToolBlock1 (CogToolBlock)CogSerializer.LoadObjectFromFile(“tjjc.vpp”); MessageBox.Show(“算法加载成功”);//复制一个…toolblock开发 vpp第二种简单加载方式 public Cognex.VisionPro.ToolBlock.CogToolBlock ToolBlock1;//初始化后实例化一个方法
//窗口运行程序内部 ToolBlock1 (CogToolBlock)CogSerializer.LoadObjectFromFile(“tjjc.vpp”); MessageBox.Show(“算法加载成功”);//复制一个vpp到程序内部 并将属性选择为始终复制。 第一步引用 引用 using System.Net.Sockets; using System.Net; using System.Threading; using Cognex.VisionPro.ToolBlock; using Cognex.VisionPro.ImageFile; using Cognex.VisionPro; using System.IO; 第二步 在初始化步骤之后 public string VppPath System.Windows.Forms.Application.StartupPath;//读取软件启动地址 自动读取文件在盘中的位置 实例化一个工具 Public static Cognex.VisionPro.ToolBlock.CogToolBlock ToolBlock1 new Cognex.VisionPro.ToolBlock.CogToolBlock();//实例化toolblock工具 vpp名称 string CogToolBlock1Name “CogToolBlock1.vpp”;//创建一个字符串vpp名称备用 实例化所需要的工具 例如 相机 public CogImageFileTool gImageFileTool new CogImageFileTool();//实例化图片打开 public static Cognex.VisionPro.CogAcqFifoTool CamTool1 new CogAcqFifoTool();//实例化相机工具 string CamtoolName1 “cogAcqFifoTool1.vpp”; string SaveImagesPath “D:\SaveImages\CAM1”; 获取时间 DateTime now DateTime.Now;now变量存储当前时间 使用方式 yyymmmdddsss
第三步 private void Form1_Load(object sender, EventArgs e)//创建一个任务 Try 试着去运行一段程序 { textBox1.Text iniFile.IniReadValue(“设置”, “IP地址”, ConfigPath “设置.ini”); textBox2.Text iniFile.IniReadValue(“设置”, “端口号”, ConfigPath “设置.ini”); comboBox1.Text iniFile.IniReadValue(“设置”, “类型”, ConfigPath “设置.ini”); Pixlength.Text iniFile.IniReadValue(“设置”, “像素当量”, ConfigPath “设置.ini”); InitialX.Text iniFile.IniReadValue(“设置”, “机械手初始位置X”, ConfigPath “设置.ini”); InitialY.Text iniFile.IniReadValue(“设置”, “机械手初始位置Y”, ConfigPath “设置.ini”); //SP.showLoadMessage(正在算法程序);string fileName1 VppPath \\IVS\\ CogToolBlock1Name;ToolBlock1 (Cognex.VisionPro.ToolBlock.CogToolBlock)(CogSerializer.LoadObjectFromFile(fileName1)); ToolBlock1Cognex.VisionPro.ToolBlock.CogToolBlock)(CogSerializer.LoadObjectFromFile(fileName1));//加载路径把VPP给toolblock1 this.cogToolBlockEditV21.Subject ToolBlock1;//把toolblock给界面的工具
string fileNameCam1 VppPath “\IVS\” CamtoolName1; CamTool1(Cognex.VisionPro.CogAcqFifoTool)(CogSerializer.LoadObjectFromFile(fileNameCam1));//加载路径把相机设置给CamTool1 cogAcqFifoEditV21.Subject CamTool1; listboxmessage(“算法加载成功”, Brushes.Green); listboxmessage(“相机加载成功”, Brushes.Green); } catch (Exception ex) { listboxmessage(“算法加载失败”, Brushes.Red); listboxmessage(“相机加载失败”, Brushes.Red); } 加载工作完成 进入下一步 触发运行阶段 this.openFileDialog1.FileName “”; openFileDialog1.Filter “Image Files(.BMP;.JPEG;.TIF;.PNG)|.BMP;.JPEG;.TIF;.PNG”; openFileDialog1.ShowDialog();string strFileName openFileDialog1.FileName;Bitmap BitmapAR (Bitmap)Image.FromFile(strFileName);Bitmap Bitmap;Bitmap (Bitmap)Image.FromFile(strFileName);CogImage24PlanarColor cogImage24PlanarColor new CogImage24PlanarColor((Bitmap)Bitmap);//彩色图像//CogImage8Grey cogImage8Gray new CogImage8Grey((Bitmap)Bitmap);//黑白图像//iCogImage (ICogImage)cogImage8Gray;实例化图像格式
下一步如果收到触发信号 取图工具准备 运行 加载图像到toolblock 运行。 if (strFileName ! “”) { gImageFileTool.Operator.Open(strFileName, CogImageFileModeConstants.Read); gImageFileTool.Run(); //cogRecordDisplay1.Image cogImage8Gray; ToolBlock1.Inputs[0].Value gImageFileTool.OutputImage as Cognex.VisionPro.CogImage24PlanarColor;//把加载后的图像给toolblock的图像输入 ToolBlock1.Run(); }另一种运行方式
string imageName “CAM1.bmp”; SaveSouceImage(SaveImagesPath, imageName, CamTool1.OutputImage);//保存图像到那个位置 //display.AddTextOnImage(display.cogRecordDisplay1, “OK”, 300, 300, CogColorConstants.Green, 70, false); ToolBlock1.Inputs[0].Value CamTool1.OutputImage as Cognex.VisionPro.CogImage24PlanarColor;//此处为黑白图像输入图像为取图工具输出图像 ToolBlock1.Run();//运行 cogRecordDisplay1.Image null;//运行前清除画面 cogRecordDisplay1.StaticGraphics.Clear(); cogRecordDisplay1.InteractiveGraphics.Clear();//运行前清除画面 cogRecordDisplay1.Record ToolBlock1.CreateLastRunRecord().SubRecords[3];//处理后图像显示 cogRecordDisplay1.Fit();//自适应 string Xpix ToolBlock1.Outputs[0].Value.ToString();//结果获取 string Ypix ToolBlock1.Outputs[1].Value.ToString();//结果获取 double count Convert.ToDouble(ToolBlock1.Outputs[2].Value);//结果获取 string X1pix ToolBlock1.Outputs[3].Value.ToString();//结果获取 string Y1pix ToolBlock1.Outputs[4].Value.ToString();//结果获取 string X2pix ToolBlock1.Outputs[5].Value.ToString();//结果获取 string Y2pix ToolBlock1.Outputs[6].Value.ToString();//结果获取 运行完成
跨窗体调用参数 public Form2(Form1 mform1) { InitializeComponent(); mform mform1;}Form1 mform null;读取复选框中的数据 if (comboBox1.SelectedItem.ToString()“管理员” textBox3.Text123456) { button6.Enabled true; } else if (comboBox1.SelectedItem.ToString() “工程师” textBox3.Text “123456”) { button6.Enabled true; button7.Enabled true;//按钮true可以选择 }
调用窗体程序 Form2 f new Form2(this); f.ShowDialog();//打开新窗体private void button9_Click(object sender, EventArgs e)//占用主线程示例 { Thread.Sleep(3000); MessageBox.Show(“第一步完成”); Thread.Sleep(5000); MessageBox.Show(“第二步完成”); } private void button10_Click(object sender, EventArgs e)//thread开线程示例{Thread t new Thread(() {Thread.Sleep(3000);MessageBox.Show(第一步完成);Thread.Sleep(5000);MessageBox.Show(第二步完成);});t.Start();}private void button11_Click(object sender, EventArgs e)//task开线程示例(常用){Task.Run((){Thread.Sleep(3000);MessageBox.Show(第三步完成);Thread.Sleep(5000);MessageBox.Show(第四步完成);});多线程同时运行 如何一步一步运行 添加async属性await等待运行 private async void button12_Click(object sender, EventArgs e) { await Task.Run(() { Thread.Sleep(3000); MessageBox.Show(“第三步完成”); }); await Task.Run(() { Thread.Sleep(5000); MessageBox.Show(“第四步完成”); }); MessageBox.Show(“全部完成”); }
特殊开线程的一种方法timer using System.Threading;//引用一个类 public System.Threading.Timer timer2;//实例化一个timer timer2 new System.Threading.Timer(t, null, 1000, 1000);//定义一个timer数据。T 方法 null这个值可以为空 1000第一次运行的时间 1000往后每次的时间。 private void t (object obj) { this.Invoke(new Action(() //委托 跨线程访问。 //程序运行区域 } 手动timer暂停的方法 Timer.changeTimeout.Infinite,Timeout.Infinite 重新启动的方法 Timer.change01000//恢复计时器
弹窗确认后继续运行的方法 DialogResult result MessageBox.Show(“是否确认继续运行程序”, “提示”, MessageBoxButtons.YesNo); if (result DialogResult.Yes){// 用户选择确认继续运行程序Console.WriteLine(程序继续运行...);}else{// 用户选择取消不继续运行程序Console.WriteLine(程序停止运行...);return;}