コード例 #1
0
ファイル: mainForm.cs プロジェクト: SajjadAemmi/AOI
        public void AfterProcessPatch(int im_number, int result)
        {
            if (this.InvokeRequired)
            {
                SolveDelegate del = new SolveDelegate(() => AfterProcessPatch(im_number, result)); //delegate
                this.Invoke(del);                                                                  //call
            }
            else
            {
                Patch  p       = patches.Find(t => t.im_number == im_number);
                Button btnTemp = (Button)tableLayoutPanel1.GetControlFromPosition(p.col, p.row);

                if (result == 1) // success
                {
                    btnTemp.FlatAppearance.BorderColor = Color.Green;
                }
                else if (result == 0) // miss
                {
                    btnTemp.FlatAppearance.BorderColor = Color.Red;
                }

                btnTemp.Enabled = true;

                string OutputfileAdrress = tbTestFolder.Text + $"\\Result\\{im_number}.bmp";
                btnTemp.BackgroundImageLayout = ImageLayout.Zoom;
                btnTemp.BackgroundImage       = new Bitmap(OutputfileAdrress);
            }
        }
コード例 #2
0
            public IAsyncResult BeginSolve()
            {
                SolveDelegate solveDelegate = new SolveDelegate(Solve);

                if (SharedState != null)
                {
                    SharedState.IncrementTotal();
                }

                return(solveDelegate.BeginInvoke(SolveComplete, new AsyncState(solveDelegate)));
            }
コード例 #3
0
ファイル: mainForm.cs プロジェクト: SajjadAemmi/AOI
 public void OriginScanStop()
 {
     if (this.InvokeRequired)
     {
         SolveDelegate del = new SolveDelegate(OriginScanStop); //delegate
         this.Invoke(del);                                      //call
     }
     else
     {
         btnTestScanStop.Enabled = false;
         threadOriginScan.Abort();
         btnOriginScan.Text = "Scan";
     }
 }
コード例 #4
0
ファイル: mainForm.cs プロジェクト: SajjadAemmi/AOI
 public void TestScanStop()
 {
     if (this.InvokeRequired)
     {
         SolveDelegate del = new SolveDelegate(TestScanStop); //delegate
         this.Invoke(del);                                    //call
     }
     else
     {
         btnTestScanStop.Enabled = false;
         threadTestScan.Suspend();
         threadTestScan   = null;
         btnTestScan.Text = "Scan";
     }
 }
コード例 #5
0
ファイル: mainForm.cs プロジェクト: SajjadAemmi/AOI
 public void CompareStop()
 {
     if (this.InvokeRequired)
     {
         SolveDelegate del = new SolveDelegate(CompareStop); //delegate
         this.Invoke(del);                                   //call
     }
     else
     {
         cts.Cancel();
         threadCompare.Abort();
         btnCompareStop.Enabled = false;
         btnCompare.Enabled     = true;
     }
 }
コード例 #6
0
ファイル: mainForm.cs プロジェクト: SajjadAemmi/AOI
 public void BeforeProcessPatch(int im_number)
 {
     if (this.InvokeRequired)
     {
         SolveDelegate del = new SolveDelegate(() => BeforeProcessPatch(im_number)); //delegate
         this.Invoke(del);                                                           //call
     }
     else
     {
         Patch  p       = patches.Find(t => t.im_number == im_number);
         Button btnTemp = (Button)tableLayoutPanel1.GetControlFromPosition(p.col, p.row);
         btnTemp.FlatAppearance.BorderColor = Color.Orange;
         btnTemp.BackgroundImage            = Properties.Resources.loading;
     }
 }
コード例 #7
0
ファイル: mainForm.cs プロジェクト: SajjadAemmi/AOI
        private void ShowGrid()
        {
            if (this.InvokeRequired)
            {
                SolveDelegate del = new SolveDelegate(ShowGrid); //delegate
                this.Invoke(del);                                //call
            }
            else
            {
                int even_odd_row = 0;
                int col          = 0;
                int row          = 0;
                int im_number    = 0;

                read_gcode_file(tbGcodeFile.Text);

                tableLayoutPanel1.Controls.Clear();

                tableLayoutPanel1.ColumnStyles.Clear();
                tableLayoutPanel1.RowStyles.Clear();

                tableLayoutPanel1.ColumnCount = Convert.ToInt32(cols_count);
                tableLayoutPanel1.RowCount    = Convert.ToInt32(rows_count);

                for (int c = 0; c < cols_count; c++)
                {
                    tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100 / cols_count));

                    for (int r = 0; r < rows_count; r++)
                    {
                        if (c == 0)
                        {
                            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100 / rows_count));
                        }

                        Button btn = new Button();
                        btn.FlatStyle = FlatStyle.Flat;
                        btn.FlatAppearance.BorderSize = 2;
                        btn.BackgroundImageLayout     = ImageLayout.Center;
                        btn.Anchor = (AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left);
                        btn.Margin = new Padding(0);

                        btn.Enabled = false;

                        int cc = c;
                        int rr = r;

                        btn.Click += new EventHandler((_sender, _event) => ShowPatch(_sender, _event, cc, rr));

                        tableLayoutPanel1.Controls.Add(btn, c, r);
                        im_number++;
                    }
                }

                patches = new List <Patch>();

                for (int i = 1; i <= im_number; i++)
                {
                    patches.Add(new Patch(col, row, i));

                    if (even_odd_row == 0)
                    {
                        col++;
                        if (col >= cols_count)
                        {
                            row++;
                            even_odd_row = 1;
                            col--;
                        }
                    }
                    else if (even_odd_row == 1)
                    {
                        col--;
                        if (col < 0)
                        {
                            row++;
                            even_odd_row = 0;
                            col++;
                        }
                    }
                }
            }
        }
コード例 #8
0
 public AsyncState(SolveDelegate solveDelegate)
 {
     this.SolveDelegate = solveDelegate;
     Interlocked.Exchange(ref this.solved, 0);
 }