2386 lines
90 KiB
C#
2386 lines
90 KiB
C#
using DVPCameraType;
|
||
using Microsoft.VisualBasic.Logging;
|
||
using OpenCvSharp;
|
||
using OpenCvSharp.Dnn;
|
||
using OpenCvSharp.Extensions;
|
||
using OpenCvSharp.XFeatures2D;
|
||
using System;
|
||
using System.Data;
|
||
using System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder;
|
||
using System.Data.SQLite;
|
||
using System.Diagnostics;
|
||
using System.Diagnostics.Eventing.Reader;
|
||
using System.Drawing;
|
||
using System.Drawing.Drawing2D;
|
||
using System.Net;
|
||
using System.Numerics;
|
||
using System.Text;
|
||
using System.Text.RegularExpressions;
|
||
using System.Windows.Forms;
|
||
using XKRS.Device.SimboVision.SimboHelper;
|
||
using static HisenceYoloDetection.MainForm;
|
||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
|
||
|
||
|
||
namespace HisenceYoloDetection
|
||
{
|
||
public partial class MainForm : Form
|
||
{
|
||
public MainForm()
|
||
{
|
||
InitializeComponent();
|
||
}
|
||
MGSCameraDriver Cam1 = new MGSCameraDriver();
|
||
MGSCameraDriver Cam2 = new MGSCameraDriver();
|
||
SQLiteHelper sqlhelper = new SQLiteHelper();
|
||
TCPClienDriver Scanner = new TCPClienDriver();
|
||
MelsecPLCTCPDriver melsecPLCTCPDriver = new MelsecPLCTCPDriver();
|
||
SimboObjectDetection simboObjectDetection = new SimboObjectDetection();
|
||
SimboObjectDetection simboObjectDetButton = new SimboObjectDetection();
|
||
// CheckDiffSciHelper checkDiffSciHelper = new CheckDiffSciHelper();
|
||
// ManagerModelHelper managerModelHelper = new ManagerModelHelper();
|
||
|
||
PaddleOcrModel paddleOcrModel = new PaddleOcrModel();
|
||
PaddleOcrModelCountry paddleOcrModelCountry = new PaddleOcrModelCountry();
|
||
List<XKHisence> xKHisences = new List<XKHisence>();
|
||
|
||
static AutoResetEvent myResetEvent = new AutoResetEvent(false);
|
||
bool PLC545 = false;
|
||
|
||
bool PLC548 = false;
|
||
string m_sKEYENCEBar;
|
||
string IfChangeLanguage = "";//ÊÇ·ñ»»Ï´Ò»úµÄÐͺÅ
|
||
bool bTriger = true;//ÊÇ·ñ¿ÉÒÔ´¥·¢¼ì²â
|
||
bool bBarTriger = false;//µÚÒ»¸öµØÖ·Íê³Éºó²ÅÄÜ´¥·¢µÚ¶þ¸öλÖÃ
|
||
bool bBar = false;//ÊÇ·ñ¿ÉÒÔ·´À¡ÌõÂë
|
||
bool IfCam1OneTriger = false;//Ïà»ú1µÚÒ»´ÎÅÄÕÕ
|
||
bool IfCam1TwoTriger = false;//Ïà»ú1µÚ2´ÎÅÄÕÕ
|
||
bool IfCam2Triger = false;//Ïà»ú2µÚÒ»´ÎÅÄÕÕ
|
||
Mat Cam1ImgOne = new Mat();//ʵʱÏà»ú1µÄÕÕƬ
|
||
Mat Cam1ImgTwo = new Mat();//ʵʱÏà»ú1µÄÕÕƬ
|
||
Mat Cam2ImgShowBar = new Mat();//ʵʱÏà»ú2µÄÕÕƬ ÓÃÀ´Ê¶±ðÌõÂë
|
||
|
||
XKHisence xKNow;//Êý¾Ý¿âÖеÄÏ´Ò»úÊý¾Ý
|
||
XK_HisenceWord xK_HisenceSQLWord = new XK_HisenceWord();
|
||
bool bOn = false;
|
||
////////////////////////////
|
||
public static int m_CamCount = 0;
|
||
public int m_n_dev_count = 0;
|
||
public static dvpCameraInfo[] m_info = new dvpCameraInfo[16];
|
||
bool ifXZeroValue = false;
|
||
bool ifYZeroValue = false;
|
||
bool ifZZeroValue = false;
|
||
|
||
bool ifXForward = false;
|
||
bool ifYForward = false;
|
||
bool ifZForward = false;
|
||
|
||
bool ifXBackward = false;
|
||
bool ifYBackward = false;
|
||
bool ifZBackward = false;
|
||
string LablePath = "";
|
||
//¼ÈëÊý¾Ý¿â
|
||
string BarPath = "";
|
||
string Cam1OnePath = "";
|
||
string Cam1TwoPath = "";
|
||
string ModelChangePath = "";
|
||
/// <summary>
|
||
/// ²é¿´Ïà»úÁбí
|
||
/// </summary>
|
||
public void InitDevList()
|
||
{
|
||
dvpStatus status;
|
||
uint i, n = 0;
|
||
dvpCameraInfo dev_info = new dvpCameraInfo();
|
||
|
||
// "n" represents the number of cameras that is enumerated successfully, the drop-down list contains each camera's FriendlyName.
|
||
DevNameCombo.Items.Clear();
|
||
|
||
// Get the number of cameras that has been connected to a computer.
|
||
status = DVPCamera.dvpRefresh(ref n);
|
||
Debug.Assert(status == dvpStatus.DVP_STATUS_OK);
|
||
m_n_dev_count = (int)n;
|
||
if (status == dvpStatus.DVP_STATUS_OK)
|
||
{
|
||
m_CamCount = 0;
|
||
|
||
for (i = 0; i < n; i++)
|
||
{
|
||
// Acquire each camera's information one by one.
|
||
status = DVPCamera.dvpEnum(i, ref dev_info);
|
||
Debug.Assert(status == dvpStatus.DVP_STATUS_OK);
|
||
if (status == dvpStatus.DVP_STATUS_OK)
|
||
{
|
||
m_info[m_CamCount] = dev_info;
|
||
|
||
int item = -1;
|
||
|
||
// add User Define Name
|
||
item = DevNameCombo.Items.Add(dev_info.UserID);
|
||
|
||
if (item == 0)
|
||
{
|
||
DevNameCombo.SelectedIndex = item;
|
||
}
|
||
m_CamCount++;
|
||
|
||
if (item == 0)
|
||
{
|
||
DevNameCombo.SelectedIndex = item;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
System.Timers.Timer SpeedTimer = new System.Timers.Timer();
|
||
System.Timers.Timer PostionTimer = new System.Timers.Timer();
|
||
|
||
public delegate void MyDelegateUI(); //¶¨ÒåίÍÐÀàÐÍ
|
||
MyDelegateUI myDelegateUI; //ÉùÃ÷ίÍжÔÏó
|
||
|
||
public delegate void MyPosDelegateUI(); //¶¨ÒåίÍÐÀàÐÍ
|
||
MyPosDelegateUI myPosDelegateUI; //ÉùÃ÷ίÍжÔÏó
|
||
|
||
public delegate void MyLogDelegateUI(); //¶¨ÒåίÍÐÀàÐÍ
|
||
MyLogDelegateUI myLogDelegateUI; //ÉùÃ÷ÈÕ־ίÍжÔÏó
|
||
private void Application_ThreadException(Exception e)
|
||
{
|
||
string msg = e.Message;
|
||
|
||
using (StreamWriter sw = new StreamWriter("D://ThreadException.log", true))
|
||
{
|
||
sw.WriteLine("================================");
|
||
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
|
||
sw.WriteLine(msg);
|
||
sw.Flush();
|
||
}
|
||
|
||
|
||
|
||
}
|
||
/// <summary>
|
||
/// Ö÷´°¿Ú
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void MainForm_Load(object sender, EventArgs e)
|
||
{
|
||
|
||
|
||
|
||
|
||
string vBarPath = "D:\\Hisence\\ÀàÐÍ\\Lp\\202452414231.jpg";
|
||
string vCam1OnePath = "D:\\Hisence\\ÀàÐÍ\\Lp\\001.jpg";
|
||
string vCam1TwoPath = "D:\\Hisence\\ÀàÐÍ\\Lp\\002.jpg";
|
||
string vModelChangePath = "D:\\Hisence\\config\\chinese.json";
|
||
string LablePathstr = "D:\\Hisence\\ClassName.txt";//±êǩ·¾¶
|
||
string LablePathButtonstr = "D:\\Hisence\\ClassNameButton.txt";//±êǩ·¾¶
|
||
if (File.Exists(LablePathButtonstr) && File.Exists(vBarPath) && File.Exists(vCam1OnePath) && File.Exists(vCam1TwoPath) && File.Exists(vModelChangePath))
|
||
{
|
||
|
||
BarPath = vBarPath;
|
||
Cam1OnePath = vCam1OnePath;
|
||
Cam1TwoPath = vCam1TwoPath;
|
||
ModelChangePath = vModelChangePath;
|
||
}
|
||
ifXZeroValue = XZerorbx.Checked;
|
||
ifYZeroValue = YZerorbx.Checked;
|
||
InitDevList();
|
||
this.WindowState = FormWindowState.Maximized;
|
||
|
||
string Dectionstr = "D:\\Hisence\\best.onnx";
|
||
string DectionButtonstr = "D:\\Hisence\\HisenceButton.onnx";
|
||
string CountryStr = "D:\\Hisence\\config\\chinese.json";
|
||
if (File.Exists(LablePathstr) && File.Exists(Dectionstr) && File.Exists(CountryStr) && File.Exists(DectionButtonstr))
|
||
{
|
||
LablePath = LablePathstr;
|
||
}
|
||
else
|
||
{
|
||
MessageBox.Show("¼ì²â" + Dectionstr + " " + CountryStr + " " + LablePathstr + "Ä£ÐÍÓÐÎÞ");
|
||
return;
|
||
}
|
||
//³õʼ»¯¼ì²âÇý¶¯
|
||
simboObjectDetection.Load(Dectionstr, "CPU", "images", 640, 640);
|
||
simboObjectDetButton.Load(DectionButtonstr, "CPU", "images", 640, 640);
|
||
paddleOcrModelCountry.Load(CountryStr, "CPU");
|
||
paddleOcrModel.Load(CountryStr, "CPU");
|
||
IfChangeLanguage = CountryStr;
|
||
//Ïà»úÅäÖÃ
|
||
|
||
StartDecBtn.Enabled = false;
|
||
|
||
myDelegateUI = new MyDelegateUI(initAll);//°ó¶¨Î¯ÍÐ
|
||
|
||
|
||
myPosDelegateUI = new MyPosDelegateUI(initAll2);//°ó¶¨Î¯ÍÐ
|
||
|
||
myLogDelegateUI = new MyLogDelegateUI(initAll3);//°ó¶¨Î¯ÍÐ
|
||
|
||
//³õʼ»¯PLC
|
||
melsecPLCTCPDriver.Start();
|
||
|
||
melsecPLCTCPDriver.Heartbeat -= PLcHeratAdress;
|
||
melsecPLCTCPDriver.Heartbeat += PLcHeratAdress;
|
||
|
||
OnSpeedShow();//Ï߳̿ªÆô½«ËÙ¶ÈÏÔʾÔÚ½çÃæÉÏ
|
||
OnPostionShow();//Ï߳̿ªÆô½«Î»ÖÃÏÔʾÔÚ½çÃæÉÏ
|
||
}
|
||
private void initAll() //ÐÅÏ¢´¦Àíº¯Êý¶¨Òå
|
||
{
|
||
//richTextBox1.AppendText("TEST line \r");
|
||
if (HspeedList.Count == 33)
|
||
{
|
||
|
||
lnEditmiXHS.Text = HspeedList[1].ToString();
|
||
lnEditmiYHS.Text = HspeedList[6].ToString();
|
||
lnEditmiZHS.Text = HspeedList[11].ToString();
|
||
//¶¨Î»ËÙ¶È
|
||
lnEditmiXS.Text = HspeedList[0].ToString();
|
||
lnEditmiYS.Text = HspeedList[5].ToString();
|
||
lnEditmiZS.Text = HspeedList[10].ToString();
|
||
}
|
||
if (disShow != 0)
|
||
{
|
||
//TODOʵʱ¹«Ê½ ÖªµÀ²â¾àÒƶ¯¶àÉÙ
|
||
double disreal = disShow * (-0.54054) + 1324.3232;
|
||
DistanceShow.Text = Math.Ceiling(disreal).ToString();
|
||
//»»Ëã³ÉÒ»ÔªÒ»º¯Êý
|
||
//y = -0.54054x + 1324.3232
|
||
|
||
}
|
||
}
|
||
private void initAll2() //ÐÅÏ¢´¦Àíº¯Êý¶¨Òå
|
||
{
|
||
if (relPosStrList.Count == 31)
|
||
{
|
||
|
||
|
||
// XPostion.Text = "";
|
||
XPostion.Text = relPosStrList[0].ToString();
|
||
//YPostion.Text = "";
|
||
YPostion.Text = relPosStrList[5].ToString();
|
||
// ZPostion.Text = "";
|
||
ZPostion.Text = relPosStrList[10].ToString();
|
||
|
||
}
|
||
}
|
||
string Logtxt = "";
|
||
private void initAll3() //ÐÅÏ¢´¦Àíº¯Êý¶¨Òå
|
||
{
|
||
richTextBox1.AppendText(Logtxt);
|
||
AllDSum.Text = AllDsums.ToString();
|
||
OKDNum.Text = OKDsums.ToString();
|
||
NGDNum.Text = NGDsums.ToString();
|
||
using (StreamWriter stream = new StreamWriter("D://information.log", true))
|
||
{
|
||
stream.WriteLine(Logtxt);
|
||
stream.Flush();
|
||
}
|
||
}
|
||
|
||
private void OnSpeedShow()
|
||
{
|
||
Task.Run(() =>
|
||
{
|
||
while (true)
|
||
{
|
||
try
|
||
{
|
||
UpDatePlcValue(600, 2);
|
||
//´Ó404 µØÖ· ¶Á33¸öµØÖ·
|
||
UpDatePlcValue(404, 33);
|
||
if (HspeedList.Count == 33)
|
||
{
|
||
|
||
//ÊÖ¶¯ËÙ¶È
|
||
|
||
this.Invoke(myDelegateUI); //richTextBox1.AppendText("TEST line \r");
|
||
Application.DoEvents();
|
||
}
|
||
if (disShow != 0)
|
||
{
|
||
this.Invoke(myDelegateUI); //richTextBox1.AppendText("TEST line \r");
|
||
Application.DoEvents();
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
|
||
Thread.Sleep(200);
|
||
}
|
||
});
|
||
}
|
||
|
||
private void OnPostionShow()
|
||
{
|
||
Task.Run(() =>
|
||
{
|
||
while (true)
|
||
{
|
||
try
|
||
{
|
||
UpDatePlcValue(102, 31);
|
||
if (relPosStrList.Count == 31)
|
||
{
|
||
this.Invoke(myPosDelegateUI); //richTextBox1.AppendText("TEST line \r");
|
||
Application.DoEvents();
|
||
|
||
|
||
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
}
|
||
|
||
|
||
Thread.Sleep(200);
|
||
}
|
||
});
|
||
|
||
}
|
||
/// <summary>
|
||
/// Ïà»ú´ò¿ª
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void CamOpenBtn_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
|
||
Cam1.Start("Cam1");
|
||
|
||
bnGetParam.Enabled = true;
|
||
SetCtrlWhenOpen();
|
||
Cam1OpenBtn.BackColor = Color.Green;
|
||
|
||
}
|
||
private void SetCtrlWhenOpen()
|
||
{
|
||
|
||
|
||
tbExposure.Enabled = true;
|
||
tbGain.Enabled = true;
|
||
// tbFrameRate.Enabled = true;
|
||
bnGetParam.Enabled = true;
|
||
bnSetParam.Enabled = true;
|
||
}
|
||
private void bnGetParam_Click(object sender, EventArgs e)
|
||
{
|
||
tbExposure.Text = Cam1.dvpGetExposure().ToString();
|
||
tbGain.Text = Cam1.dvpGetAnalogGain().ToString();
|
||
|
||
}
|
||
|
||
private void bnGetParam2_Click(object sender, EventArgs e)
|
||
{
|
||
//tbExposure2.Text = Cam1.dvpGetExposure().ToString();
|
||
//tbGain2.Text = Cam1.dvpGetAnalogGain().ToString();
|
||
}
|
||
/// <summary>
|
||
/// Ïà»ú2´ò¿ª
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void Cam2OpenBtn_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
// Cam2.Start("Cam2");
|
||
// bnGetParam2.Enabled = true;
|
||
// Cam2OpenBtn.BackColor = Color.Green;
|
||
}
|
||
|
||
private void button2_Click(object sender, EventArgs e)
|
||
{
|
||
Cam1.Stop();
|
||
SetCtrlWhenClose();
|
||
}
|
||
private void SetCtrlWhenClose()
|
||
{
|
||
|
||
tbExposure.Enabled = false;
|
||
tbGain.Enabled = false;
|
||
// tbFrameRate.Enabled = false;
|
||
bnGetParam.Enabled = false;
|
||
bnSetParam.Enabled = false;
|
||
}
|
||
private void button3_Click(object sender, EventArgs e)
|
||
{
|
||
Cam2.Stop();
|
||
}
|
||
/// <summary>
|
||
/// Ïà»ú1Èí´¥·¢
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void SnapshotCam1_Click(object sender, EventArgs e)
|
||
{
|
||
Cam1.Snapshot();
|
||
|
||
}
|
||
/// <summary>
|
||
/// Ïà»ú2Èí´¥·¢
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void SnapshotCam2_Click(object sender, EventArgs e)
|
||
{
|
||
//Cam2.Snapshot();
|
||
}
|
||
int TimesCalled = 0;
|
||
Bitmap OKbitmap = new Bitmap("OK.jpg");
|
||
Bitmap NGbitmap = new Bitmap("NG.jpg");
|
||
|
||
/// <summary>
|
||
/// Ö÷Ï̵߳÷ÓÃ
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void InitMachine_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
//³õʼ»¯Ïà»ú
|
||
|
||
DataSet dataSet = SQLiteHelper.Query("select * from XK_HisenceDet");
|
||
dataGridView1.DataSource = dataSet.Tables[0];
|
||
|
||
Cam1.Start("Cam1");
|
||
if (Cam1.IfSuccess)
|
||
{
|
||
myLog("Cam1Ïà»úÆô¶¯", DateTime.Now);
|
||
}
|
||
Cam2.Start("Cam2");
|
||
if (Cam2.IfSuccess)
|
||
{
|
||
myLog("Cam2Ïà»úÆô¶¯", DateTime.Now);
|
||
}
|
||
Cam1.OnHImageOutput -= OnCameraMatOutPut;
|
||
Cam1.OnHImageOutput += OnCameraMatOutPut;
|
||
Cam2.OnHImageOutput -= OnCameraMatOutPut2;
|
||
Cam2.OnHImageOutput += OnCameraMatOutPut2;
|
||
|
||
OKOrNGShow.Image = OKbitmap;
|
||
//³õʼ»¯É¨Âëǹ
|
||
//Scanner.Strart();
|
||
//Scanner.OnClientDataReceived -= OnDataReceived;
|
||
//Scanner.OnClientDataReceived += OnDataReceived;
|
||
//Scanner.btnSendMsg("LON\r");//·¢ËÍ¿ªÆôÖ¸Áî
|
||
//myLog("·¢ËͶ÷ʿɨÂëǹ¿ªÆôÖ¸Áî", DateTime.Now);
|
||
|
||
//PLCʹÄÜ¿ªÆô
|
||
melsecPLCTCPDriver.WriteInt("581", 0);//¶¨Î»ËÉ¿ª
|
||
melsecPLCTCPDriver.WriteInt("504", 0);//¶¨Î»ËÉ¿ª
|
||
melsecPLCTCPDriver.WriteInt("514", 0);//¶¨Î»ËÉ¿ª
|
||
melsecPLCTCPDriver.WriteInt("524", 0);//¶¨Î»ËÉ¿ª
|
||
melsecPLCTCPDriver.WriteInt("406", 60000); //дÈëÊÖ¶¯ËÙ¶È
|
||
melsecPLCTCPDriver.WriteInt("416", 8000);
|
||
melsecPLCTCPDriver.WriteInt("426", 8000);
|
||
melsecPLCTCPDriver.WriteInt("404", 100000); //дÈ붨λËÙ¶È
|
||
melsecPLCTCPDriver.WriteInt("414", 8000);
|
||
melsecPLCTCPDriver.WriteInt("424", 8000);
|
||
|
||
|
||
melsecPLCTCPDriver.WriteInt("500", 0);
|
||
|
||
melsecPLCTCPDriver.WriteInt("500", 1);
|
||
Thread.Sleep(200);
|
||
|
||
bOn = true;
|
||
melsecPLCTCPDriver.WriteInt("580", 0);//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("580", 1);//¹éÁã
|
||
Thread.Sleep(200);
|
||
melsecPLCTCPDriver.WriteInt("580", 0);
|
||
Thread.Sleep(200);
|
||
while (true)
|
||
{
|
||
int IfXZeros = melsecPLCTCPDriver.ReadInt("102");
|
||
int IfYZeros = melsecPLCTCPDriver.ReadInt("112");
|
||
int IfZZeros = melsecPLCTCPDriver.ReadInt("122");
|
||
if (IfXZeros <= 140 && IfYZeros <= 140 && IfZZeros <= 140)
|
||
{
|
||
StartDecBtn.Enabled = true;
|
||
break;
|
||
}
|
||
Thread.Sleep(10);
|
||
}
|
||
|
||
|
||
|
||
myLog("É豸ȫ²¿Æô¶¯Íê³É", DateTime.Now);
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Application_ThreadException(ex);
|
||
}
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// ȫͼϴÒ»ú ²Ã¼ôÖ®ºó OCRʶ±ðµÄ½á¹û
|
||
/// </summary>
|
||
/// <param name="currentMatC">ȫͼͼƬ</param>
|
||
/// <param name="cam1TwoML">È«¾ÖͼƬÉϵÄÄ¿±ê¶¨Î»½á¹û£¨°üÀ¨¶¨Î»¾ØÐοò£©</param>
|
||
/// <param name="strMatListList">·µ»ØµÄ¶¨Î»¿òµÄ½á¹û</param>
|
||
private void InsertSqlRunData2(ref Mat currentMatC, MLResult cam1TwoML, ref List<string> strMatListList, ref PaddleOcrModel IOcrModel)
|
||
{
|
||
|
||
|
||
|
||
#if true
|
||
try
|
||
{
|
||
List<Mat> mats = new List<Mat>();
|
||
|
||
Mat mResultCut = currentMatC.Clone();
|
||
string OcrTextinsert = "";
|
||
for (int i = 0; i < cam1TwoML.ResultDetails.Count; i++)
|
||
{
|
||
Mat mResultCuti = mResultCut.Clone();
|
||
int rectsx = cam1TwoML.ResultDetails[i].Rect.X;
|
||
int rectsy = cam1TwoML.ResultDetails[i].Rect.Y;
|
||
int rectsWidth = cam1TwoML.ResultDetails[i].Rect.Width;
|
||
int rectsHeight = cam1TwoML.ResultDetails[i].Rect.Height;
|
||
Rect area = new Rect(rectsx, rectsy, rectsWidth, rectsHeight);
|
||
Mat matroi = new Mat(mResultCuti, area);
|
||
mats.Add(matroi);
|
||
//OCRʶ±ð²Ã¼ôͼƬ
|
||
MLRequest reqcut = new MLRequest();
|
||
reqcut.currentMat = matroi.Clone();
|
||
MLResult mLcut = IOcrModel.RunInferenceFixed(reqcut);
|
||
|
||
|
||
for (int j = 0; j < mLcut.ResultDetails.Count; j++)
|
||
{
|
||
string jdetial = mLcut.ResultDetails[j].LabelDisplay;
|
||
string result = Regex.Replace(jdetial, "[ \\[ \\] \\^ \\-_*¡Á¨D¨D(^)$%~!@#$¡&%£¤¡ª+=<>¡¶¡·!£¡??£¿:£º?`¡¤¡¢¡££¬£»,.;/\"¡®¡¯¡°¡±-]", "");
|
||
|
||
|
||
strMatListList.Add(result);
|
||
OcrTextinsert += result + "##";
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
#endif
|
||
|
||
|
||
}
|
||
/// <summary>
|
||
/// Êý¾Ý¿âÖÐÌõÂëËù¶ÔÓ¦µÄOCRÎı¾ÊÇ·ñÓëʶ±ð³öÀ´µÄÎı¾ÏàËÆ
|
||
/// </summary>
|
||
/// <param name="WashBar"></param>
|
||
/// <param name="DetMatstrList"></param>
|
||
/// <returns></returns>
|
||
private bool IsMatchOcrText(string WashBar, List<string> DetMatstrList)
|
||
{
|
||
try
|
||
{
|
||
|
||
List<string> strMatListListB = new List<string>();
|
||
if (WashBar.Contains("##"))
|
||
{
|
||
|
||
string[] sArray = Regex.Split(WashBar, "##", RegexOptions.IgnoreCase);
|
||
|
||
|
||
for (int i = 0; i < sArray.Count(); i++)
|
||
{
|
||
if (sArray[i] != "")
|
||
{
|
||
strMatListListB.Add(sArray[i]);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
}
|
||
var firstNotSecond = DetMatstrList.Except(strMatListListB, StringComparer.OrdinalIgnoreCase).ToList();
|
||
var secondNotFirst = strMatListListB.Except(DetMatstrList, StringComparer.OrdinalIgnoreCase).ToList();
|
||
if (firstNotSecond.Count() == 0 && secondNotFirst.Count() == 0)
|
||
{
|
||
return true;
|
||
}
|
||
return false;
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
private bool IsFuzzyMatchOcrText(string WashBar, List<string> DetMatstrList)
|
||
{
|
||
try
|
||
{
|
||
|
||
List<string> strMatListListB = new List<string>();
|
||
if (WashBar.Contains("##"))
|
||
{
|
||
|
||
string[] sArray = Regex.Split(WashBar, "##", RegexOptions.IgnoreCase);
|
||
|
||
|
||
for (int i = 0; i < sArray.Count(); i++)
|
||
{
|
||
if (sArray[i] != "")
|
||
{
|
||
strMatListListB.Add(sArray[i]);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
}
|
||
var firstNotSecond = DetMatstrList.Intersect(strMatListListB, StringComparer.OrdinalIgnoreCase).ToList();
|
||
//var secondNotFirst = strMatListListB.Except(DetMatstrList, StringComparer.OrdinalIgnoreCase).ToList();
|
||
if (firstNotSecond.Count() > (strMatListListB.Count) / 2)
|
||
{
|
||
return true;
|
||
}
|
||
return false;
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// ʵʱÒƶ¯Ä£×é
|
||
/// </summary>
|
||
public void MoveToP(int currentXP, int currentYP, int currentZP)
|
||
{
|
||
|
||
melsecPLCTCPDriver.WriteInt("581", 0);
|
||
melsecPLCTCPDriver.WriteInt("402", currentXP);
|
||
melsecPLCTCPDriver.WriteInt("412", currentYP);
|
||
melsecPLCTCPDriver.WriteInt("422", currentZP);
|
||
melsecPLCTCPDriver.WriteInt("581", 1);
|
||
Thread.Sleep(200);
|
||
melsecPLCTCPDriver.WriteInt("581", 0);
|
||
while (true)
|
||
{
|
||
int IfXZeros = melsecPLCTCPDriver.ReadInt("102");
|
||
int IfYZeros = melsecPLCTCPDriver.ReadInt("112");
|
||
int IfZZeros = melsecPLCTCPDriver.ReadInt("122");
|
||
if ((IfXZeros < currentXP + 20) && (IfXZeros > currentXP - 20) && (IfYZeros <= currentYP + 20) && (IfYZeros >= currentYP - 20) && (IfZZeros <= currentZP + 20) && (IfZZeros >= currentZP - 20))//TODO:ÉèÖõÚÒ»´ÎÅÄÉãµÄλÖÃ
|
||
{
|
||
|
||
break;
|
||
}
|
||
Thread.Sleep(10);
|
||
}
|
||
}
|
||
public int disShow = new int();
|
||
public List<int> MonitorValues { get; set; } = new List<int>();
|
||
public List<int> relPosStrList { get; set; } = new List<int>();
|
||
public List<int> HspeedList { get; set; } = new List<int>();
|
||
/// <summary>
|
||
/// ʵʱˢÐÂPLCµØÖ·µÄÖµ
|
||
/// </summary>
|
||
///
|
||
public void UpDatePlcValue(int Address, int length)
|
||
{
|
||
//Task.Run(() =>
|
||
//{
|
||
// while (true)
|
||
// {
|
||
try
|
||
{
|
||
//ʵʱˢлúеÊÖµÄλÖÃ
|
||
List<int> newValues = melsecPLCTCPDriver.GetMonitorValues(Address, length);
|
||
if (newValues == null || newValues.Count == 0)
|
||
return;
|
||
|
||
Stopwatch sw = new Stopwatch();
|
||
sw.Start();
|
||
if (Address == 600)
|
||
{
|
||
disShow = melsecPLCTCPDriver.ReadInt(Convert.ToString(Address));
|
||
}
|
||
if (Address == 102) //ÈôÆðʼµØַΪ102
|
||
{
|
||
if (relPosStrList.Count == newValues.Count)
|
||
{
|
||
var tempNew = new List<int>(newValues);
|
||
var tempOld = new List<int>(relPosStrList);
|
||
//MonitorCheckAndInvoke(tempNew, tempOld);
|
||
}
|
||
relPosStrList = new List<int>(newValues);
|
||
// relPosStrList = MonitorValues;
|
||
//ʵʱÏÔʾÔÚ½çÃæÉÏ
|
||
}
|
||
if (Address == 404)
|
||
{
|
||
if (HspeedList.Count == newValues.Count)
|
||
{
|
||
var tempNew = new List<int>(newValues);
|
||
var tempOld = new List<int>(HspeedList);
|
||
//MonitorCheckAndInvoke(tempNew, tempOld);
|
||
}
|
||
HspeedList = new List<int>(newValues);
|
||
//HspeedList = MonitorValues;
|
||
//ʵʱÏÔʾÔÚ½çÃæÉÏ
|
||
}
|
||
sw.Stop();
|
||
|
||
if (sw.ElapsedMilliseconds > 20)
|
||
{
|
||
//LogAsync(DateTime.Now, LogLevel.Detail, $"{this.Name}ÂÖѯʱ¼ä£º{sw.ElapsedMilliseconds}");
|
||
}
|
||
Thread.Sleep(20);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
|
||
// }
|
||
//});
|
||
}
|
||
/// <summary>
|
||
/// ¼àÌýÏ´Ò»ú545ÊÇ·ñ´¥·¢ºóÃæ¶ÔÉä´«¸ÐÆ÷ Ïà»ú
|
||
/// </summary>
|
||
public void TrigerCamera1()
|
||
{
|
||
//¿ªÆôÒ»¸öÏ̼߳àÌýPLCµÃÖµ
|
||
Task.Run(() =>
|
||
{
|
||
int iNum1 = 0;
|
||
int iNum0 = 0;
|
||
while (true)
|
||
{
|
||
// myResetEvent.Set();
|
||
PLC545 = true;
|
||
int m_iCureent545 = melsecPLCTCPDriver.ReadInt("545");
|
||
////int m_iCureent545 = CMPLC.SLMPReadD(545);
|
||
if (m_iCureent545 != 1)
|
||
{
|
||
iNum0++;
|
||
}
|
||
else
|
||
{
|
||
iNum0 = 0;
|
||
}
|
||
if (iNum0 >= 5)
|
||
{
|
||
while (true)
|
||
{
|
||
m_iCureent545 = melsecPLCTCPDriver.ReadInt("545");
|
||
if (m_iCureent545 == 1)
|
||
{
|
||
iNum1++;
|
||
}
|
||
else
|
||
{
|
||
iNum1 = 0;
|
||
}
|
||
if (iNum1 >= 5)
|
||
{
|
||
//Console.WriteLine("µÚ¶þ´Î²É¼¯Í¼Ïñ");
|
||
//Cam1.Snapshot();
|
||
//Cam2.Snapshot();
|
||
//IfCam1Triger = false;
|
||
//IfCam2Triger = false;
|
||
|
||
iNum0 = 0;
|
||
iNum1 = 0;
|
||
break;
|
||
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
Thread.Sleep(100);
|
||
|
||
|
||
}
|
||
});
|
||
}
|
||
/// <summary>
|
||
/// »ñÈ¡»ù¶÷Ê¿¶ÁÂëÆ÷µÄÐͺÅ
|
||
/// </summary>
|
||
public void OnGetBar()
|
||
{
|
||
Task.Run(() =>
|
||
{
|
||
int iNum0 = 0;
|
||
int iNum1 = 0;
|
||
|
||
// const char pCR[4] = { 0x4C, 0x4F, 0x4E, 0x0D };¿ªÆô
|
||
//const char pOFF[5] = { 0x4C, 0x4F, 0x46, 0x46, 0x0D };¹Ø±Õ
|
||
Thread.CurrentThread.Priority = ThreadPriority.Highest;
|
||
while (true)
|
||
{
|
||
//545´¥·¢Ê±Îª0
|
||
// myResetEvent.Set();
|
||
PLC545 = true;
|
||
int m_iCureent545 = melsecPLCTCPDriver.ReadInt("545");
|
||
|
||
if (m_iCureent545 != 1)
|
||
{
|
||
iNum0++;
|
||
}
|
||
else
|
||
{
|
||
iNum0 = 0;
|
||
}
|
||
if (iNum0 >= 1)
|
||
{
|
||
//½ÓÊÜÌõÂëÖ¸Áî
|
||
while (true)
|
||
{
|
||
bTriger = false;
|
||
//¶Áµ½544Ò»Ö±ÊÇ1³ÖÐøÁ½s ÅÄÕÕ
|
||
m_iCureent545 = melsecPLCTCPDriver.ReadInt("545");
|
||
if (m_iCureent545 == 1)
|
||
{
|
||
iNum1++;
|
||
}
|
||
else
|
||
{
|
||
iNum1 = 0;
|
||
}
|
||
if (iNum1 >= 2)
|
||
{
|
||
if (bBar)
|
||
{
|
||
bBarTriger = true;//Ð޸ijÉÏà»úÅÄÕÕ»ñÈ¡ÐͺÅ
|
||
Cam2.SnapshotCount = 0;
|
||
Cam2.Snapshot();
|
||
|
||
xKNow = GetModeFromBar("VWJ070633V0WW80F0120356");//´ÓÊý¾Ý¿âÖвéѯµ½Õâ¸öÌõÂëµÄËÄÖáµÄÖµ
|
||
//xKNow = GetModeFromBar(m_sKEYENCEBar);//´ÓÊý¾Ý¿âÖвéѯµ½Õâ¸öÌõÂëµÄËÄÖáµÄÖµ
|
||
if (Regex.IsMatch(xKNow.MoveX.ToString(), @"^[0-9]+$") && Regex.IsMatch(xKNow.MoveY.ToString(), @"^[0-9]+$") && Regex.IsMatch(xKNow.MoveZ.ToString(), @"^[0-9]+$"))
|
||
{
|
||
myLog("ÐͺÅÆ¥Åä³É¹¦" + m_sKEYENCEBar, DateTime.Now);
|
||
bBarTriger = true;
|
||
//MoveToP(xKNow.MoveX, xKNow.MoveY, xKNow.MoveZ);// PLC¿ØÖƵç»úÒƶ¯ËÄÖá
|
||
}
|
||
|
||
break;
|
||
}
|
||
Thread.Sleep(2);
|
||
bBar = false;
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
Thread.Sleep(10);
|
||
|
||
|
||
});
|
||
}
|
||
/// <summary>
|
||
/// ¼àÌýÏ´Ò»ú544ÊÇ·ñ´¥·¢ºóÃæ¶ÔÉä´«¸ÐÆ÷ Ïà»ú
|
||
/// </summary>
|
||
public void TriggerCameral2()
|
||
{
|
||
//¿ªÆôÒ»¸öÏ̼߳àÌýPLCµÃÖµ
|
||
Task.Run(() =>
|
||
{
|
||
try
|
||
{
|
||
int iNum1 = 0;
|
||
int iNum0 = 0;
|
||
Thread.CurrentThread.Priority = ThreadPriority.Highest;
|
||
while (true)
|
||
{
|
||
// myResetEvent.Set();
|
||
PLC548 = true;
|
||
int m_iCureent548 = melsecPLCTCPDriver.ReadInt("548");
|
||
|
||
if (m_iCureent548 != 0)
|
||
{
|
||
iNum0++;
|
||
}
|
||
else
|
||
{
|
||
iNum0 = 0;
|
||
}
|
||
if (iNum0 >= 1)
|
||
{
|
||
while (true)
|
||
{
|
||
|
||
bTriger = false;
|
||
//¶Áµ½544Ò»Ö±ÊÇ1³ÖÐøÁ½s ÅÄÕÕ
|
||
m_iCureent548 = melsecPLCTCPDriver.ReadInt("548");
|
||
if (m_iCureent548 == 0)
|
||
{
|
||
iNum1++;
|
||
}
|
||
else
|
||
{
|
||
iNum1 = 0;
|
||
}
|
||
if (iNum1 >= 2)
|
||
{
|
||
//if (bBarTriger)
|
||
{
|
||
|
||
|
||
myLog("µÚÒ»´Î²É¼¯Í¼Ïñ", DateTime.Now);
|
||
//Òƶ¯Ä£×é ¶ÁÈý´Î²â¾àµÄµØÖ· ¿´ÊÇ·ñÍùÇ°Òƶ¯
|
||
MoveToP(8974, 0, 0);
|
||
// Thread.Sleep(2000);//ɾ
|
||
|
||
|
||
|
||
List<int> DisList = new List<int>();
|
||
for (int i = 0; i < 5; i++)
|
||
{
|
||
int m600 = melsecPLCTCPDriver.ReadInt("600");
|
||
DisList.Add(m600);
|
||
}
|
||
DisList.Remove(DisList.Max());
|
||
DisList.Remove(DisList.Min());
|
||
// ¼ÆËãÊ£ÓàÖµµÄƽ¾ùÊý
|
||
double average = DisList.Average();
|
||
double disreal = average * (-0.54054) + 1324.3232;
|
||
//²â¾à¾àÀë-±ê×¼¾àÀë=ÒªÒƶ¯µÄ¾àÀë
|
||
double dismove = disreal - 876;
|
||
if (dismove > 0 && dismove < 4000)
|
||
{
|
||
MoveToP(8974, 0, (int)(dismove));
|
||
}
|
||
Thread.Sleep(2000);//ɾ
|
||
Thread.Sleep(500);
|
||
Cam1.SnapshotCount = 0;
|
||
Cam1.Snapshot();
|
||
IfCam2Triger = true;
|
||
Cam2.SnapshotCount = 0;
|
||
Cam2.Snapshot();
|
||
myLog("µÚ¶þ´Î²É¼¯Í¼Ïñ", DateTime.Now);
|
||
//if (xKNow != null)
|
||
//{
|
||
// MoveToP(xKNow.MoveTwoX, xKNow.MoveTwoY, xKNow.MoveTwoZ);
|
||
//}
|
||
//currentXP = 54964;
|
||
//Thread.Sleep(2000);//ɾ
|
||
MoveToP(54964, 0, (int)(dismove));
|
||
Cam1.Snapshot();
|
||
MoveToP(8974, 0, 0);
|
||
//if (xKNow != null)
|
||
//{
|
||
// MoveToP(xKNow.MoveX, xKNow.MoveY, xKNow.MoveZ);
|
||
//}
|
||
myLog("²É¼¯Í¼Ïñ³É¹¦", DateTime.Now);
|
||
//Ä£×鸴λ
|
||
|
||
bTriger = true;//¿ÉÒÔ½øÐмì²âʶ±ðÁË
|
||
bBarTriger = false;//¶ÁÂëÆ÷¿ÉÒÔ²»¹¤×÷ÁË
|
||
iNum0 = 0;
|
||
iNum1 = 0;
|
||
break;
|
||
}
|
||
|
||
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
Thread.Sleep(10);
|
||
|
||
|
||
}
|
||
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
|
||
}
|
||
|
||
});
|
||
}
|
||
/// <summary>
|
||
/// PLCÐÄÌø¼àÌý
|
||
/// </summary>
|
||
/// <param name="ifPlcHeart"></param>
|
||
public void PLcHeratAdress(int ifPlcHeart)
|
||
{
|
||
if (ifPlcHeart == 1)
|
||
{
|
||
myLog("PLC¼àÌýʧ°Ü", DateTime.Now);
|
||
|
||
}
|
||
else
|
||
{
|
||
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// »ú1Èí´¥·¢µÄ»Øµ÷
|
||
/// </summary>
|
||
/// <param name="dt"></param>
|
||
/// <param name="cameraMat"></param>
|
||
/// <param name="SnapshotCount"></param>
|
||
public void OnCameraMatOutPut(DateTime dt, Mat cameraMat, int SnapshotCount)
|
||
{
|
||
string fitImageFolder = "D://cam1//";
|
||
if (!Directory.Exists(fitImageFolder))
|
||
{
|
||
Directory.CreateDirectory(fitImageFolder);
|
||
}
|
||
|
||
//µÚÒ»´ÎÅÄÕÕ
|
||
if (SnapshotCount == 1)
|
||
{
|
||
// Mat mat = Cv2.ImRead("D:\\Hisence\\1\\202451716511.jpg");
|
||
//Mat mat = Cv2.ImRead("D:\\Hisence\\ÀàÐÍ\\Lp\\2024517171911.jpg");
|
||
//Cam1ImgOne = mat;
|
||
Cam1ImgOne = cameraMat;
|
||
IfCam1OneTriger = true;
|
||
originMatShow.Image = cameraMat.ToBitmap();
|
||
//pictureBox1.Image = cameraMat.ToBitmap();
|
||
|
||
|
||
}
|
||
//µÚ¶þ´ÎÅÄÕÕ
|
||
if (SnapshotCount == 2)
|
||
{
|
||
// Mat mat = Cv2.ImRead("D:\\Hisence\\1\\2024517164541.jpg");
|
||
//Mat mat = Cv2.ImRead("D:\\Hisence\\ÀàÐÍ\\Lp\\002.jpg");
|
||
//Cam1ImgTwo = mat;
|
||
Cam1ImgTwo = cameraMat;
|
||
|
||
IfCam1TwoTriger = true;
|
||
originMatShow2.Image = cameraMat.ToBitmap();
|
||
//pictureBox1.Image = cameraMat.ToBitmap();
|
||
}
|
||
|
||
|
||
pictureBox1.Image = cameraMat.ToBitmap();
|
||
cameraMat.ImWrite(fitImageFolder + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString() + "1.jpg");
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// Ïà»ú2´¥·¢»Øµ÷
|
||
/// </summary>
|
||
/// <param name="dt"></param>
|
||
/// <param name="cameraMat"></param>
|
||
/// <param name="SnapshotCount"></param>
|
||
public void OnCameraMatOutPut2(DateTime dt, Mat cameraMat, int SnapshotCount)
|
||
{
|
||
string fitImageFolder = "D://cam2//";
|
||
if (!Directory.Exists(fitImageFolder))
|
||
{
|
||
Directory.CreateDirectory(fitImageFolder);
|
||
}
|
||
|
||
// Mat mat = Cv2.ImRead("F:\\º£ÐÅÏ´Ò»ú\\cam1\\2024517161641.jpg");
|
||
Cam2ImgShowBar = cameraMat;
|
||
IfCam2Triger = true;
|
||
originMat2Show.Image = cameraMat.ToBitmap();
|
||
//pictureBox1.Image = cameraMat.ToBitmap();
|
||
|
||
|
||
|
||
|
||
|
||
pictureBox2.Image = cameraMat.ToBitmap();
|
||
cameraMat.ImWrite(fitImageFolder + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString() + "1.jpg");
|
||
|
||
}
|
||
public volatile int AllDsums = 0;
|
||
public volatile int NGDsums = 0;
|
||
public volatile int OKDsums = 0;
|
||
/// <summary>
|
||
/// ¿ªÊ¼Ê¶±ð
|
||
/// </summary>
|
||
public void ReadyDetect()
|
||
{
|
||
Task.Run((Action)(() =>
|
||
{
|
||
Thread.CurrentThread.Priority = ThreadPriority.Highest;
|
||
while (true)
|
||
{
|
||
try
|
||
{
|
||
//Ïà»ú2µÚÒ»´ÎÅÄÕÕ
|
||
if (IfCam2Triger)
|
||
{
|
||
|
||
//OCRʶ±ð
|
||
MLRequest req = new MLRequest();
|
||
req.currentMat = Cam2ImgShowBar;
|
||
// req.currentMat = Cv2.ImRead("D:\\Hisence\\ÀàÐÍ\\Lp\\202453015229201.jpg");
|
||
MLResult mL = paddleOcrModelCountry.RunInferenceFixed(req);
|
||
//Ïà»úʶ±ðµÄ×Ö·û´®
|
||
string IOcrBAr = "";
|
||
for (int v = 0; v < Enumerable.Count<DetectionResultDetail>(mL.ResultDetails); v++)
|
||
{
|
||
string iv = mL.ResultDetails[v].LabelDisplay;
|
||
string result = Regex.Replace(iv, "[ \\[ \\] \\^ \\-_*¡Á¨D¨D(^)$%~!@#$¡&%£¤¡ª+=<>¡¶¡·!£¡??£¿:£º?`¡¤¡¢¡££¬£»,.;/\"¡®¡¯¡°¡±-]", "");
|
||
|
||
IOcrBAr += result;
|
||
}
|
||
//IOcrBAr = "LR1006G4SILVERWJ060480U0SW901N120105";
|
||
//¸ù¾ÝÌõÂëÊý¾Ý¿â±È¶Ô
|
||
xKNow = GetModeFromBar(IOcrBAr);//´ÓÊý¾Ý¿âÖвéѯµ½Õâ¸öÌõÂëµÄËÄÖáµÄÖµ
|
||
List<XK_HisenceWord> xkWordList = ManagerModelHelper.GetModeWordFromBar(IOcrBAr);
|
||
if (xkWordList.Count() == 1)
|
||
{
|
||
xK_HisenceSQLWord = xkWordList[0];
|
||
}
|
||
|
||
|
||
if (xKNow.OcrBar == null)
|
||
{
|
||
myLog("δƥÅä³É¹¦" + IfChangeLanguage, DateTime.Now);
|
||
break;
|
||
}
|
||
if ( xKNow.Detect != "")
|
||
{
|
||
//´ËʱÔËÐеÄÏ´Ò»úÊǺÍ֮ǰһ¸öÓïÑÔÄ£ÐÍ
|
||
if (IfChangeLanguage == IOcrBAr)
|
||
{
|
||
|
||
}
|
||
else
|
||
{
|
||
//±¾µØ´æÔÚÕâ¸öOCR.josn²ÎÊý
|
||
if (File.Exists(xKNow.OcrParm))
|
||
{
|
||
paddleOcrModel.Load(xKNow.OcrParm, "CPU");
|
||
|
||
IfChangeLanguage = IOcrBAr;
|
||
}
|
||
|
||
}
|
||
myLog("ÐͺÅÆ¥Åä³É¹¦" + IfChangeLanguage, DateTime.Now);
|
||
bBarTriger = true;
|
||
}
|
||
|
||
|
||
//´ÓÊý¾Ý¿âÖÐÆ¥ÅäÍê²Å¿ÉÒÔ½øÐÐÄ£×éÒƶ¯
|
||
//Èç¹ûÕâ´ÎÐͺźÍÉϴεÄÐͺÅÒ»Ñù ¾Í²»Óû»Ê¶±ðÄ£ÐÍll
|
||
|
||
IfCam2Triger = false;
|
||
|
||
}
|
||
//Ïà»ú1µÚ¶þ´ÎÅÄÕÕ
|
||
if (IfCam1TwoTriger && bBarTriger)
|
||
{
|
||
XK_HisenceWord xK_MatchDet = new XK_HisenceWord();
|
||
xK_MatchDet.TwoIFWhile = xK_HisenceSQLWord.TwoIFWhile;
|
||
AllDsums++;
|
||
//½øÐÐÍÆÀí
|
||
MLRequest req = new MLRequest();
|
||
req.currentMat = Cam1ImgOne;
|
||
req.ResizeWidth = 640;
|
||
req.ResizeHeight = 640;
|
||
req.Score = 0.3f;
|
||
req.in_lable_path = LablePath;//±êǩ·¾¶
|
||
req.confThreshold = 0.3f;//Ä£ÐÍÖÃÐŶÈ
|
||
req.iouThreshold = 0.4f;//¼ì²âIOU
|
||
req.out_node_name = "output";
|
||
MLResult mL = simboObjectDetection.RunInferenceFixed(req);
|
||
MLResult mLButton = simboObjectDetButton.RunInferenceFixed(req);
|
||
|
||
DateTime dt = DateTime.Now;
|
||
//½«ËùÓеĿé²Ã¼ô ʶ±ð×Ö·û¶Ô±È×Ö·û´®
|
||
List<string> strMatListOne = new List<string>();
|
||
List<string> strMatFuzzyListOne = new List<string>();
|
||
Mat mResultCut = req.currentMat.Clone();
|
||
Mat mCut = new Mat();
|
||
ManagerModelHelper.InsertSqlRunDataButton(false,ref mCut, ref mResultCut, mL, mLButton, ref xK_MatchDet, /*ref strMatListOne, ref strMatFuzzyListOne, */ref paddleOcrModel);
|
||
|
||
if(mL.ResultMap!=null)
|
||
{
|
||
mL.ResultMap.Save("D://cam1//" + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString() + "1result.jpg");
|
||
ResultMatShow.Image = mL.ResultMap;
|
||
|
||
}
|
||
//½øÐÐÍÆÀí
|
||
MLRequest req2 = new MLRequest();
|
||
req2.currentMat = Cam1ImgTwo;
|
||
req2.ResizeWidth = 640;
|
||
req2.ResizeHeight = 640;
|
||
req2.Score = 0.3f;
|
||
req2.in_lable_path = LablePath;//±êǩ·¾¶
|
||
req2.confThreshold = 0.3f;//Ä£ÐÍÖÃÐŶÈ
|
||
req2.iouThreshold = 0.4f;//¼ì²âIOU
|
||
req2.out_node_name = "output";
|
||
MLResult mL2 = simboObjectDetection.RunInferenceFixed(req2);
|
||
List<string> strMatListTwo = new List<string>();
|
||
List<string> strMatFuzzyListTwo = new List<string>();
|
||
Mat mResultCut2 = req2.currentMat.Clone();
|
||
|
||
ManagerModelHelper.InsertSqlRunData(false, ref mResultCut2, mL2, ref xK_MatchDet, /*ref strMatListTwo, ref strMatFuzzyListTwo,*/ ref paddleOcrModel);
|
||
|
||
if (mL2.ResultMap != null)
|
||
{
|
||
mL2.ResultMap.Save("D://cam1//" + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString() + "2result.jpg");
|
||
ResultMatShow2.Image = mL2.ResultMap;
|
||
}
|
||
|
||
//Ö´Ðж¨Î»Êý×é¿é
|
||
string[] listLabels = xKNow.Detect.Split(",");
|
||
|
||
MLResult MLsum = mL;
|
||
for (int i = 0; i < mL2.ResultDetails.Count; i++)
|
||
{
|
||
MLsum.ResultDetails.Add((DetectionResultDetail)mL2.ResultDetails[i]);
|
||
}
|
||
string[] RealLabels = new string[MLsum.ResultDetails.Count];
|
||
string detstr = "";
|
||
for (int i = 0; i < MLsum.ResultDetails.Count; i++)
|
||
{
|
||
RealLabels[i] = MLsum.ResultDetails[i].LabelName;
|
||
if (i < MLsum.ResultDetails.Count - 1)
|
||
{
|
||
detstr += RealLabels[i] + ",";
|
||
}
|
||
else
|
||
{
|
||
detstr += RealLabels[i];
|
||
}
|
||
|
||
}
|
||
///Ö´ÐÐ±È¶Ô Ð¡Í¼
|
||
bool MatchStr = ManagerModelHelper.IsMatchSQLText(ref mCut, ref xK_HisenceSQLWord, ref xK_MatchDet);
|
||
|
||
|
||
|
||
|
||
IfCam1TwoTriger = false;
|
||
bBarTriger = false;
|
||
|
||
|
||
|
||
if (MatchStr)
|
||
{
|
||
OKDsums++;
|
||
myLog("Æ¥Åä³É¹¦", DateTime.Now);
|
||
//½çÃæÏÔʾ
|
||
InsertXK_HisenceWordMatchData(xK_MatchDet, true);
|
||
OKOrNGShow.Image = OKbitmap;
|
||
}
|
||
else
|
||
{
|
||
NGDsums++;
|
||
myLog("Æ¥Åäʧ°Ü", DateTime.Now);
|
||
//½çÃæÏÔʾ
|
||
InsertXK_HisenceWordMatchData(xK_MatchDet, false);
|
||
OKOrNGShow.Image = NGbitmap;
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
|
||
}
|
||
finally
|
||
{
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
Thread.Sleep(10);
|
||
}
|
||
|
||
}));
|
||
|
||
}
|
||
/// <summary>
|
||
/// ¸ù¾ÝÌõÂë´ÓÊý¾Ý¿âÖлñÈ¡ÐͺÅ
|
||
/// </summary>
|
||
/// <param name="SkBar"></param>
|
||
/// <returns></returns>
|
||
public XKHisence GetModeFromBar(string SkBar)
|
||
{
|
||
//´ÓÄ£°å¿âÀï¶Á
|
||
|
||
DataSet ds = SQLiteHelper.Query($"select * from XK_Hisence where OCRBar='{SkBar}' ");
|
||
|
||
|
||
|
||
|
||
XKHisence XK_hisence = new XKHisence();
|
||
|
||
//cbx.DataSource = ds;
|
||
DataTableReader rdr = ds.CreateDataReader();
|
||
|
||
//autxRecords = new List<AuxRecord>();
|
||
|
||
|
||
|
||
|
||
//cbx.Rows.Clear();
|
||
while (rdr.Read())//¶ÁÈ¡±íÖÐÊý¾Ý
|
||
|
||
{
|
||
|
||
// xKOCROfficeWord.ID = (int)rdr["ID"];
|
||
XK_hisence.Type = (string)rdr["Type"];
|
||
XK_hisence.OcrBar = (string)rdr["OcrBar"];
|
||
XK_hisence.MoveX = (int)rdr["MoveX"];
|
||
XK_hisence.MoveY = (int)rdr["MoveY"];
|
||
XK_hisence.MoveZ = (int)rdr["MoveZ"];
|
||
XK_hisence.Detect = (string)rdr["Detect"];
|
||
XK_hisence.OcrText = (string)rdr["OcrText"];
|
||
XK_hisence.MoveTwoX = (int)rdr["MoveTwoX"];
|
||
XK_hisence.MoveTwoY = (int)rdr["MoveTwoY"];
|
||
XK_hisence.MoveTwoZ = (int)rdr["MoveTwoZ"];
|
||
XK_hisence.OcrParm = (string)rdr["OcrParm"];
|
||
XK_hisence.Language = (string)rdr["Language"];
|
||
XK_hisence.FuzzyOcrText = (string)rdr["FuzzyOcrText"];
|
||
//xKHisences.Add(XK_hisence);
|
||
return XK_hisence;
|
||
//additem(XK_hisence);
|
||
|
||
|
||
}
|
||
return XK_hisence;
|
||
|
||
|
||
}
|
||
/// <summary>
|
||
/// ½ÓÊÜÌõÂëµÄ»Øµ÷º¯Êý
|
||
/// </summary>
|
||
/// <param name="data"></param>
|
||
public void OnDataReceived(byte[] data)
|
||
{
|
||
//
|
||
if (data.Length > 10)
|
||
{
|
||
m_sKEYENCEBar = System.Text.Encoding.UTF8.GetString(data);
|
||
// myLog("ÐͺÅOcr" + m_sKEYENCEBar, DateTime.Now);
|
||
|
||
bBar = true;
|
||
}
|
||
|
||
}
|
||
/// <summary>
|
||
/// PLCµÄ³õʼ»¯
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void button4_Click(object sender, EventArgs e)
|
||
{
|
||
melsecPLCTCPDriver.Start();
|
||
myLog("Á¬½ÓPLC³É¹¦", DateTime.Now);
|
||
}
|
||
/// <summary>
|
||
/// ÈÕÖ¾
|
||
/// </summary>
|
||
/// <param name="txt"></param>
|
||
/// <param name="date"></param>
|
||
private void myLog(string txt, DateTime date)
|
||
{
|
||
Logtxt = txt + " ʱ¼ä£º" + date.ToString() + "\n";
|
||
this.Invoke(myLogDelegateUI); //richTextBox1.AppendText("TEST line \r");
|
||
Application.DoEvents();
|
||
}
|
||
private void readAdress_Click(object sender, EventArgs e)
|
||
{
|
||
if (Regex.IsMatch(readPLc.Text.ToString(), @"^[0-9]+$"))
|
||
{
|
||
int m_iCureent545 = melsecPLCTCPDriver.ReadInt(readPLc.Text.ToString());
|
||
showPLC.Text = m_iCureent545.ToString();
|
||
myLog("¶ÁÈ¡" + readPLc.Text.ToString() + "Íê³É", DateTime.Now);
|
||
}
|
||
|
||
}
|
||
|
||
private void wirteAdress_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (Regex.IsMatch(WriteAdress.Text.ToString(), @"^[0-9]+$") && Regex.IsMatch(PLCValue.Text.ToString(), @"^[0-9]+$"))
|
||
{
|
||
melsecPLCTCPDriver.WriteInt(WriteAdress.Text.ToString(), Convert.ToInt16(PLCValue.Text));
|
||
myLog("д" + WriteAdress.Text.ToString() + "Íê³É", DateTime.Now);
|
||
}
|
||
|
||
|
||
}
|
||
catch (Exception ex) { }
|
||
|
||
}
|
||
|
||
private void ScanDevList_Click(object sender, EventArgs e)
|
||
{
|
||
InitDevList();
|
||
}
|
||
|
||
|
||
private void PLCPowerON_Click(object sender, EventArgs e)
|
||
{
|
||
if (bOn == true)
|
||
{
|
||
melsecPLCTCPDriver.WriteInt("500", 0);
|
||
// PLCcontrol->WritePlc(500, 0);
|
||
bOn = false;
|
||
PLCPowerON.Text = "ʹÄÜOn";
|
||
myLog("ʹÄÜOnÍê³É", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
melsecPLCTCPDriver.WriteInt("500", 1);
|
||
bOn = true;
|
||
PLCPowerON.Text = "ʹÄÜOff";
|
||
myLog("ʹÄÜOff", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
|
||
bool IfPLCDiskZero = false;
|
||
bool IfPLCPostion = false;
|
||
private void PLCDiskZero_Click(object sender, EventArgs e)
|
||
{
|
||
//if (!IfPLCDiskZero)
|
||
//{
|
||
melsecPLCTCPDriver.WriteInt("580", 0);
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("580", 1);
|
||
|
||
Thread.Sleep(200);
|
||
melsecPLCTCPDriver.WriteInt("580", 0);
|
||
IfPLCDiskZero = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("580¿ªÊ¼¹éÁã", DateTime.Now);
|
||
//}
|
||
//else
|
||
//{
|
||
// melsecPLCTCPDriver.WriteInt("580", 0);
|
||
// IfPLCDiskZero = false;
|
||
// this.txtSetValue.Text = "0";
|
||
// myLog("580Í£Ö¹¹éÁã", DateTime.Now);
|
||
//}
|
||
}
|
||
|
||
private void PLCPostion_Click(object sender, EventArgs e)
|
||
{
|
||
//if (!IfPLCPostion)
|
||
//{
|
||
|
||
|
||
|
||
try
|
||
{
|
||
if (Regex.IsMatch(lnEditmiXOP.Text.ToString(), @"^[0-9]+$") && Regex.IsMatch(lnEditmiYOP.Text.ToString(), @"^[0-9]+$") && Regex.IsMatch(lnEditmiZOP.Text.ToString(), @"^[0-9]+$"))
|
||
{
|
||
if (lnEditmiXOP.Text != "" && lnEditmiYOP.Text != "" && lnEditmiZOP.Text != "")
|
||
{
|
||
//ͨ¹ý¶ÁÈ¡±à¼À¸µÄÊýÖµ ×÷ΪĿ±êλÖÃ
|
||
int iXTPosition = Convert.ToInt16(lnEditmiXOP.Text); //¶¨Î»XÖáλÖÃ
|
||
int iYTPosition = Convert.ToInt16(lnEditmiYOP.Text);
|
||
int iZTPosition = Convert.ToInt16(lnEditmiZOP.Text);
|
||
|
||
//°ÑÒª¶¨Î»µÄλÖÃдÈë
|
||
melsecPLCTCPDriver.WriteInt("402", iXTPosition);
|
||
melsecPLCTCPDriver.WriteInt("412", iYTPosition);
|
||
melsecPLCTCPDriver.WriteInt("422", iZTPosition);
|
||
|
||
string logs = "дÈ붨λλÖà X" + iXTPosition + "Y:" + iYTPosition + "Z:" + iZTPosition + " ";
|
||
myLog(logs, DateTime.Now);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
melsecPLCTCPDriver.WriteInt("581", 1);
|
||
Thread.Sleep(1000);
|
||
melsecPLCTCPDriver.WriteInt("581", 0);
|
||
IfPLCPostion = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("XYZ¿ªÊ¼¶¨Î»581", DateTime.Now);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
//}
|
||
//else
|
||
//{
|
||
// melsecPLCTCPDriver.WriteInt("581", 0);
|
||
// IfPLCPostion = false;
|
||
// this.txtSetValue.Text = "0";
|
||
// myLog("XYZÍ£Ö¹581", DateTime.Now);
|
||
//}
|
||
}
|
||
|
||
|
||
|
||
private void StartDecBtn_Click(object sender, EventArgs e)
|
||
{
|
||
//OnGetBar();
|
||
TriggerCameral2();
|
||
ReadyDetect();
|
||
myLog("¿ªÆôÁ÷³Ì³É¹¦", DateTime.Now);
|
||
}
|
||
|
||
private void InsertSqlBtn_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void RefeshData_Click(object sender, EventArgs e)
|
||
{
|
||
DataSet dataSet = SQLiteHelper.Query("select * from XK_HisenceDet");
|
||
dataGridView1.DataSource = dataSet.Tables[0];
|
||
}
|
||
|
||
private void panel8_Paint(object sender, PaintEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void SetHandleSpeed_Click(object sender, EventArgs e)
|
||
{
|
||
if (Regex.IsMatch(lnEditmiXHS.Text.ToString(), @"^[0-9]+$") && Regex.IsMatch(lnEditmiYHS.Text.ToString(), @"^[0-9]+$") && Regex.IsMatch(lnEditmiZHS.Text.ToString(), @"^[0-9]+$"))
|
||
{
|
||
if (SetlnEditmiXH.Text != "" && SetlnEditmiYH.Text != "" && SetlnEditmiZH.Text != "")
|
||
{
|
||
int XHspeed = Convert.ToInt32(SetlnEditmiXH.Text); //XÖáÊÖ¶¯ËÙ¶È
|
||
int YHspeed = Convert.ToInt32(SetlnEditmiYH.Text); //YÖáÊÖ¶¯ËÙ¶È
|
||
int ZHspeed = Convert.ToInt32(SetlnEditmiZH.Text); //ZÖáÊÖ¶¯ËÙ¶È
|
||
|
||
melsecPLCTCPDriver.WriteInt("406", XHspeed); //дÈëÊÖ¶¯ËÙ¶È
|
||
melsecPLCTCPDriver.WriteInt("416", YHspeed);
|
||
melsecPLCTCPDriver.WriteInt("426", ZHspeed);
|
||
string logs = "дÈëÊÖ¶¯ËÙ¶È X" + XHspeed + "Y:" + YHspeed + "Z:" + ZHspeed + " ";
|
||
myLog(logs, DateTime.Now);
|
||
}
|
||
|
||
|
||
}
|
||
}
|
||
|
||
private void SetAutoSpeed_Click(object sender, EventArgs e)
|
||
{
|
||
if (Regex.IsMatch(lnEditmiXS.Text.ToString(), @"^[0-9]+$") && Regex.IsMatch(lnEditmiYS.Text.ToString(), @"^[0-9]+$") && Regex.IsMatch(lnEditmiZS.Text.ToString(), @"^[0-9]+$"))
|
||
{
|
||
if (SetlnEditmiXOP.Text != "" && SetlnEditmiYOP.Text != "" && SetlnEditmiZOP.Text != "")
|
||
{
|
||
int Xspeed = Convert.ToInt32(SetlnEditmiXOP.Text); //XÖᶨλËÙ¶È
|
||
int Yspeed = Convert.ToInt32(SetlnEditmiYOP.Text); //YÖᶨλËÙ¶È
|
||
int Zspeed = Convert.ToInt32(SetlnEditmiZOP.Text); //ZÖᶨλËÙ¶È
|
||
|
||
melsecPLCTCPDriver.WriteInt("404", Xspeed); //дÈ붨λËÙ¶È
|
||
melsecPLCTCPDriver.WriteInt("414", Yspeed);
|
||
melsecPLCTCPDriver.WriteInt("424", Zspeed);
|
||
|
||
string logs = "дÈ붨λËÙ¶È X" + Xspeed + "Y:" + Yspeed + "Z:" + Zspeed + " ";
|
||
myLog(logs, DateTime.Now);
|
||
}
|
||
}
|
||
}
|
||
//°´ÏÂ״̬±êʶ
|
||
private bool m_btnState;
|
||
private void radioButton1_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
if (!ifXZeroValue)
|
||
{
|
||
this.XZerorbx.Checked = true;
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("503", 1);
|
||
ifXZeroValue = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("XÖῪʼ¹éÁã", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
this.XZerorbx.Checked = false;
|
||
melsecPLCTCPDriver.WriteInt("503", 0);
|
||
ifXZeroValue = false;
|
||
this.txtSetValue.Text = "0";
|
||
myLog("XÖáÍ£Ö¹¹éÁã", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
private void YZerorbx_Click(object sender, EventArgs e)
|
||
{
|
||
if (!ifYZeroValue)
|
||
{
|
||
this.YZerorbx.Checked = true;
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("513", 1);
|
||
ifYZeroValue = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("YÖῪʼ¹éÁã", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
this.YZerorbx.Checked = false;
|
||
melsecPLCTCPDriver.WriteInt("513", 0);
|
||
ifYZeroValue = false;
|
||
this.txtSetValue.Text = "0";
|
||
myLog("YÖáÍ£Ö¹¹éÁã", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
private void ZZerorbx_Click(object sender, EventArgs e)
|
||
{
|
||
if (!ifZZeroValue)
|
||
{
|
||
this.ZZerorbx.Checked = true;
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("523", 1);
|
||
ifZZeroValue = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("ZÖῪʼ¹éÁã", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
this.ZZerorbx.Checked = false;
|
||
melsecPLCTCPDriver.WriteInt("523", 0);
|
||
ifZZeroValue = false;
|
||
this.txtSetValue.Text = "0";
|
||
myLog("ZÖáÍ£Ö¹¹éÁã", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
private void XForwardrbx_Click(object sender, EventArgs e)
|
||
{
|
||
if (!ifXForward)
|
||
{
|
||
this.XForwardrbx.Checked = true;
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("502", 1);
|
||
ifXForward = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("XÖῪʼÕýÏò", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
this.XForwardrbx.Checked = false;
|
||
melsecPLCTCPDriver.WriteInt("502", 0);
|
||
ifXForward = false;
|
||
this.txtSetValue.Text = "0";
|
||
myLog("XÖáÍ£Ö¹ÕýÏò", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
private void YForwardrbx_Click(object sender, EventArgs e)
|
||
{
|
||
if (!ifYForward)
|
||
{
|
||
this.YForwardrbx.Checked = true;
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("512", 1);
|
||
ifYForward = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("YÖῪʼÕýÏò", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
this.YForwardrbx.Checked = false;
|
||
melsecPLCTCPDriver.WriteInt("512", 0);
|
||
ifYForward = false;
|
||
this.txtSetValue.Text = "0";
|
||
myLog("YÖáÍ£Ö¹ÕýÏò", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
private void ZForwardrbx_Click(object sender, EventArgs e)
|
||
{
|
||
if (!ifZForward)
|
||
{
|
||
this.ZForwardrbx.Checked = true;
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("522", 1);
|
||
ifZForward = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("ZÖῪʼÕýÏò", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
this.ZForwardrbx.Checked = false;
|
||
melsecPLCTCPDriver.WriteInt("522", 0);
|
||
ifZForward = false;
|
||
this.txtSetValue.Text = "0";
|
||
myLog("ZÖáÍ£Ö¹ÕýÏò", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
private void XBackwardrbx_Click(object sender, EventArgs e)
|
||
{
|
||
if (!ifXBackward)
|
||
{
|
||
this.XBackwardrbx.Checked = true;
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("501", 1);
|
||
ifXBackward = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("XÖῪʼ·´Ïò", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
this.XBackwardrbx.Checked = false;
|
||
melsecPLCTCPDriver.WriteInt("501", 0);
|
||
ifXBackward = false;
|
||
this.txtSetValue.Text = "0";
|
||
myLog("XÖáÍ£Ö¹·´Ïò", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
private void YBackwardrbx_Click(object sender, EventArgs e)
|
||
{
|
||
if (!ifYBackward)
|
||
{
|
||
this.YBackwardrbx.Checked = true;
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("511", 1);
|
||
ifYBackward = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("YÖῪʼ·´Ïò", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
this.YBackwardrbx.Checked = false;
|
||
melsecPLCTCPDriver.WriteInt("511", 0);
|
||
ifYBackward = false;
|
||
this.txtSetValue.Text = "0";
|
||
myLog("YÖáÍ£Ö¹·´Ïò", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
private void ZBackwardrbx_Click(object sender, EventArgs e)
|
||
{
|
||
if (!ifZBackward)
|
||
{
|
||
this.ZBackwardrbx.Checked = true;
|
||
//¹éÁã
|
||
melsecPLCTCPDriver.WriteInt("521", 1);
|
||
ifZBackward = true;
|
||
this.txtSetValue.Text = "1";
|
||
myLog("ZÖῪʼ·´Ïò", DateTime.Now);
|
||
}
|
||
else
|
||
{
|
||
this.ZBackwardrbx.Checked = false;
|
||
melsecPLCTCPDriver.WriteInt("521", 0);
|
||
ifZBackward = false;
|
||
this.txtSetValue.Text = "0";
|
||
myLog("ZÖáÍ£Ö¹·´Ïò", DateTime.Now);
|
||
}
|
||
}
|
||
|
||
private void button1_Click(object sender, EventArgs e)
|
||
{
|
||
string ss = "BB0VA5E0000BCQ5L0114";
|
||
|
||
}
|
||
|
||
private void Cam2OpenBtn_Click_1(object sender, EventArgs e)
|
||
{
|
||
|
||
Cam2.Start("Cam2");
|
||
|
||
bnGetParam2.Enabled = true;
|
||
//SetCtrlWhenOpen();
|
||
Cam2OpenBtn.BackColor = Color.Green;
|
||
}
|
||
|
||
private void button4_Click_1(object sender, EventArgs e)
|
||
{
|
||
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||
openFileDialog.Title = "Çë´ò¿ªÍ¼Æ¬";
|
||
|
||
|
||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||
{
|
||
string fName = openFileDialog.FileName;
|
||
//File fileOpen = new File(fName);
|
||
//isFileHaveName = true;
|
||
//richTextBox1.Text = fileOpen.ReadFile();
|
||
//richTextBox1.AppendText("");
|
||
DetectBArMatbox.Text = fName;
|
||
BarPath = fName;
|
||
}
|
||
}
|
||
|
||
private void InsertBtn_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
|
||
try
|
||
{
|
||
string type = TypeBox.Text;
|
||
string OcrBar = OcrBarBox.Text;
|
||
string moveX = moveXbox.Text;
|
||
string moveY = moveYbox.Text;
|
||
string moveZ = moveZbox.Text;
|
||
string Detect = DetectBArMatbox.Text;
|
||
string movetwoX = moveTwoXbox.Text;
|
||
string movetwoY = moveTwoYbox.Text;
|
||
string movetwoZ = moveTwoZbox.Text;
|
||
bool whiteBan = true;
|
||
if (WhiteBanCbx.CheckState == CheckState.Checked)//Ñ¡ÖÐ
|
||
{
|
||
whiteBan = true;
|
||
|
||
}
|
||
else if (WhiteBanCbx.CheckState == CheckState.Unchecked)//ûѡÖÐ
|
||
{
|
||
whiteBan = false;
|
||
}
|
||
else
|
||
{
|
||
whiteBan = false;
|
||
}
|
||
|
||
if (!Regex.IsMatch(moveX, @"^[0-9]+$"))
|
||
{
|
||
MessageBox.Show("µÚÒ»´ÎÅÄÕÕÒƶ¯µÄXÖ»ÄÜÊÇÊý×Ö");
|
||
return;
|
||
}
|
||
if (!Regex.IsMatch(moveY, @"^[0-9]+$"))
|
||
{
|
||
MessageBox.Show("µÚÒ»´ÎÅÄÕÕÒƶ¯µÄYÖ»ÄÜÊÇÊý×Ö");
|
||
return;
|
||
}
|
||
if (!Regex.IsMatch(moveZ, @"^[0-9]+$"))
|
||
{
|
||
MessageBox.Show("µÚÒ»´ÎÅÄÕÕÒƶ¯µÄZÖ»ÄÜÊÇÊý×Ö");
|
||
return;
|
||
}
|
||
if (!Regex.IsMatch(movetwoX, @"^[0-9]+$"))
|
||
{
|
||
MessageBox.Show("µÚ¶þ´ÎÅÄÕÕÒƶ¯µÄXÖ»ÄÜÊÇÊý×Ö");
|
||
return;
|
||
}
|
||
if (!Regex.IsMatch(movetwoY, @"^[0-9]+$"))
|
||
{
|
||
MessageBox.Show("µÚ¶þ´ÎÅÄÕÕÒƶ¯µÄYÖ»ÄÜÊÇÊý×Ö");
|
||
return;
|
||
}
|
||
if (!Regex.IsMatch(movetwoZ, @"^[0-9]+$"))
|
||
{
|
||
MessageBox.Show("µÚ¶þ´ÎÅÄÕÕÒƶ¯µÄZÖ»ÄÜÊÇÊý×Ö");
|
||
return;
|
||
}
|
||
|
||
if (Detect != "" && BarPath != "" && Cam1OnePath != "" && Cam1TwoPath != "" && ModelChangePath != "")
|
||
{
|
||
int HmoveX = (int)Convert.ToInt64(moveX);
|
||
int HmoveY = (int)Convert.ToInt64(moveY);
|
||
int HmoveZ = (int)Convert.ToInt64(moveZ);
|
||
int HmovetwoX = (int)Convert.ToInt64(movetwoX);
|
||
int HmovetwoY = (int)Convert.ToInt64(movetwoY);
|
||
int HmovetwoZ = (int)Convert.ToInt64(movetwoZ);
|
||
InsertXK_Hisence(whiteBan,HmoveX, HmoveY, HmoveZ, HmovetwoX, HmovetwoY, HmovetwoZ);
|
||
|
||
|
||
}
|
||
else
|
||
{
|
||
MessageBox.Show("²åÈëµÄÊý¾Ý²»ÄÜΪNULL");
|
||
}
|
||
|
||
}
|
||
catch (Exception es)
|
||
{
|
||
MessageBox.Show(es.Message);
|
||
}
|
||
}
|
||
public void InsertXK_Hisence(bool ifwhiteBan,int MoveX, int MoveY, int MoveZ, int MoveTwoX, int MoveTwoY, int MoveTwoZ)
|
||
{
|
||
PaddleOcrModel IpaddleOcrModel = new PaddleOcrModel();
|
||
IpaddleOcrModel.Load(ModelChangePath, "CPU");
|
||
|
||
//ÓÃÖÐÎÄÎÄÄ£ÐÍÀ´Ê¶±ðÌõÂë
|
||
MLRequest OcrBari = new MLRequest();
|
||
OcrBari.currentMat = Cv2.ImRead(BarPath);
|
||
MLResult mL2 = paddleOcrModelCountry.RunInferenceFixed(OcrBari);
|
||
|
||
string IOcrBAr = "";
|
||
for (int v = 0; v < mL2.ResultDetails.Count(); v++)
|
||
{
|
||
string ivi = mL2.ResultDetails[v].LabelDisplay;
|
||
string result = Regex.Replace(ivi, "[ \\[ \\] \\^ \\-_*¡Á¨D¨D(^)$%~!@#$¡&%£¤¡ª+=<>¡¶¡·!£¡??£¿:£º?`¡¤¡¢¡££¬£»,.;/\"¡®¡¯¡°¡±-]", "");
|
||
|
||
IOcrBAr += result;
|
||
}
|
||
OcrBarBox.Text = IOcrBAr;
|
||
XK_HisenceWord xkWord = new XK_HisenceWord();
|
||
xkWord.OcrBar = IOcrBAr;
|
||
xkWord.TwoIFWhile = ifwhiteBan;
|
||
using (StreamWriter sw = new StreamWriter("D://123.log", true))
|
||
{
|
||
sw.WriteLine("\n");
|
||
sw.WriteLine(IOcrBAr);
|
||
sw.Flush();
|
||
}
|
||
|
||
|
||
//½«ËùÓеĿé²Ã¼ô ʶ±ð×Ö·û¶Ô±È×Ö·û´®
|
||
|
||
|
||
|
||
//½øÐÐÍÆÀí
|
||
|
||
|
||
|
||
|
||
|
||
//´ÓµÚÒ»´ÎÅÄÕÕȫͼ·¶Î§ÄÚÄ¿±ê¼ì²âÈ»ºó½øÐÐOCRʶ±ð
|
||
MLRequest CamOneI = new MLRequest();
|
||
CamOneI.currentMat = Cv2.ImRead(Cam1OnePath);
|
||
CamOneI.ResizeWidth = 640;
|
||
CamOneI.ResizeHeight = 640;
|
||
CamOneI.Score = 0.3f;
|
||
CamOneI.in_lable_path = LablePath;//±êǩ·¾¶
|
||
CamOneI.confThreshold = 0.3f;//Ä£ÐÍÖÃÐŶÈ
|
||
CamOneI.iouThreshold = 0.4f;//¼ì²âIOU
|
||
CamOneI.out_node_name = "output";
|
||
MLResult mL3 = simboObjectDetection.RunInferenceFixed(CamOneI);
|
||
MLResult mLButton = simboObjectDetButton.RunInferenceFixed(CamOneI);
|
||
//if (mL3.IsSuccess)
|
||
//{
|
||
// DateTime dt = DateTime.Now;
|
||
// mL3.ResultMap.Save("D:\\Hisence\\detImages\\" + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString() + "1result.jpg");
|
||
|
||
//}
|
||
List<string> strMatListOne = new List<string>();
|
||
List<string> strMatFuzzyListOne = new List<string>();
|
||
Mat mResultCut = CamOneI.currentMat.Clone();
|
||
Mat mCut = new Mat();
|
||
ManagerModelHelper.InsertSqlRunDataButton(true,ref mCut, ref mResultCut, mL3, mLButton,ref xkWord, /*ref strMatListOne, ref strMatFuzzyListOne,*/ ref paddleOcrModel);
|
||
|
||
|
||
|
||
MLRequest CamTwoI = new MLRequest();
|
||
CamTwoI.currentMat = Cv2.ImRead(Cam1TwoPath);
|
||
CamTwoI.ResizeWidth = 640;
|
||
CamTwoI.ResizeHeight = 640;
|
||
CamTwoI.Score = 0.3f;
|
||
CamTwoI.in_lable_path = LablePath;//±êǩ·¾¶
|
||
CamTwoI.confThreshold = 0.3f;//Ä£ÐÍÖÃÐŶÈ
|
||
CamTwoI.iouThreshold = 0.4f;//¼ì²âIOU
|
||
CamTwoI.out_node_name = "output";
|
||
MLResult mL4 = simboObjectDetection.RunInferenceFixed(CamTwoI);
|
||
//if (mL4.IsSuccess)
|
||
//{
|
||
// DateTime dt = DateTime.Now;
|
||
// mL4.ResultMap.Save("D:\\Hisence\\detImages\\" + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString() + "2result.jpg");
|
||
|
||
//}
|
||
List<string> strMatListTwo = new List<string>();
|
||
List<string> strMatFuzzyListTwo = new List<string>();
|
||
Mat mResultCut2 = CamTwoI.currentMat.Clone();
|
||
|
||
ManagerModelHelper.InsertSqlRunData(true, ref mResultCut2, mL4, ref xkWord,/* ref strMatListTwo, ref strMatFuzzyListTwo,*/ ref paddleOcrModel);
|
||
|
||
|
||
|
||
InsertXKHisenceWordData( xkWord);//Íù¹Ø¼ü×Ö±íÖвåÈëÒ»ÌõÊý¾Ý
|
||
//Îı¾ÇøÓò
|
||
List<string> bingji = strMatListOne.Union(strMatListTwo).ToList();//²¢£¨È«£©¼¯
|
||
List<string> Fuzzybingji = strMatFuzzyListOne.Union(strMatFuzzyListTwo).ToList();//²¢£¨È«£©¼¯
|
||
string OcrTextone = bingji.Join("##");
|
||
string OcrTextTwo = Fuzzybingji.Join("##");
|
||
|
||
//string OcrTextinsert = "";
|
||
//List<string> bingji = strMatListListOne.Union(strMatListListTwo).ToList();//²¢£¨È«£©¼¯
|
||
//for (int j = 0; j < bingji.Count; j++)
|
||
//{
|
||
// string jdetial = bingji[j];
|
||
// OcrTextinsert += jdetial + "##";
|
||
//}
|
||
string detstr = "";
|
||
|
||
//ÕÒµ½Ê¶±ðÇøÓò
|
||
MLResult MLsum = mL3;
|
||
for (int v = 0; v < mL4.ResultDetails.Count; v++)
|
||
{
|
||
MLsum.ResultDetails.Add(mL4.ResultDetails[v]);
|
||
}
|
||
for (int v = 0; v < MLsum.ResultDetails.Count; v++)
|
||
{
|
||
|
||
if (v < MLsum.ResultDetails.Count - 1)
|
||
{
|
||
detstr += MLsum.ResultDetails[v].LabelName + ",";
|
||
}
|
||
else
|
||
{
|
||
detstr += MLsum.ResultDetails[v].LabelName;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
DateTime dt2 = DateTime.Now;
|
||
XKHisence xK = new XKHisence("1", IOcrBAr, MoveX, MoveY, MoveZ, detstr, OcrTextone, MoveTwoX, MoveTwoY, MoveTwoZ, ModelChangePath, "", OcrTextTwo);
|
||
//string log="D:\\Hisence\\detImages\\" + dt2.Year.ToString() + dt2.Month.ToString() + dt2.Day.ToString() + dt2.Hour.ToString() + dt2.Minute.ToString() + dt2.Millisecond.ToString() + "2result.log";
|
||
// using (StreamWriter sw=new StreamWriter(log, true))
|
||
// {
|
||
// // sw.WriteLine(xK.OcrBar+"\n");
|
||
// sw.WriteLine(xK.OcrText);
|
||
// sw.WriteLine(xK.FuzzyOcrText);
|
||
// }
|
||
//IpaddleOcrModel.FreeModel();
|
||
|
||
string sql = "insert into XK_Hisence VALUES('" + xK.Type + "','" + xK.OcrBar + "'," + xK.MoveX + "," + xK.MoveY + "," + xK.MoveZ + ",'" + xK.Detect + "','" + xK.OcrText + "'," + xK.MoveTwoX + "," + xK.MoveTwoY + "," + xK.MoveTwoZ + ",'" + xK.OcrParm + "','" + xK.Language + "','" + xK.FuzzyOcrText + "')";
|
||
int i = SQLiteHelper.ExecuteSql(sql);
|
||
if (i == 1)
|
||
{
|
||
MessageBox.Show("XK_Hisence²åÈëÒ»ÌõÊý¾Ý");
|
||
}
|
||
//bool ismatch = IsMatchOcrText("WF3S7021BB", strMatListListOne);
|
||
//Ïà»ú»Øµ÷
|
||
}
|
||
public void InsertXKHisenceWordData(XK_HisenceWord xkWord)
|
||
{
|
||
StringBuilder strSql = new StringBuilder();
|
||
strSql.Append("insert into XK_HisenceWord(");
|
||
strSql.Append("OcrBar,OneblockPath,OneblockMainWord,OneblockText,TwoRect,TwoIFWhile,TwoblockPath,TwoblockMainWord,TwoblockText,ThreeblockPath," +
|
||
"ThreeblockMainWord,ThreeblockText,FourblockPath,FourblockMainWord,FourblockText,FiveblockPath,FiveblockMainWord,FiveblockText," +
|
||
"SixblockPath,SixblockMainWord,SixblockText,SevenblockPath,SevenblockMainWord,SevenblockText,EightblockPath,EightblockMainWord,EightblockText)");
|
||
strSql.Append(" values (");
|
||
strSql.Append("@OcrBar,@OneblockPath,@OneblockMainWord,@OneblockText,@TwoRect,@TwoIFWhile,@TwoblockPath,@TwoblockMainWord,@TwoblockText,@ThreeblockPath," +
|
||
"@ThreeblockMainWord,@ThreeblockText,@FourblockPath,@FourblockMainWord,@FourblockText,@FiveblockPath,@FiveblockMainWord,@FiveblockText," +
|
||
"@SixblockPath,@SixblockMainWord,@SixblockText,@SevenblockPath,@SevenblockMainWord,@SevenblockText,@EightblockPath,@EightblockMainWord,@EightblockText)");
|
||
SQLiteParameter[] parameters = {
|
||
new SQLiteParameter("@OcrBar", DbType.String),
|
||
new SQLiteParameter("@OneblockPath", DbType.String),
|
||
new SQLiteParameter("@OneblockMainWord", DbType.String),
|
||
new SQLiteParameter("@OneblockText", DbType.String),
|
||
new SQLiteParameter("@TwoRect",DbType.String),
|
||
new SQLiteParameter("@TwoIFWhile",DbType.String),
|
||
new SQLiteParameter("@TwoblockPath", DbType.String),
|
||
new SQLiteParameter("@TwoblockMainWord",DbType.String),
|
||
new SQLiteParameter("@TwoblockText", DbType.String),
|
||
new SQLiteParameter("@ThreeblockPath", DbType.String),
|
||
new SQLiteParameter("@ThreeblockMainWord", DbType.String),
|
||
new SQLiteParameter("@ThreeblockText", DbType.String),
|
||
new SQLiteParameter("@FourblockPath", DbType.String),
|
||
new SQLiteParameter("@FourblockMainWord", DbType.String),
|
||
new SQLiteParameter("@FourblockText", DbType.String),
|
||
new SQLiteParameter("@FiveblockPath", DbType.String),
|
||
new SQLiteParameter("@FiveblockMainWord", DbType.String),
|
||
new SQLiteParameter("@FiveblockText", DbType.String),
|
||
new SQLiteParameter("@SixblockPath", DbType.String),
|
||
new SQLiteParameter("@SixblockMainWord", DbType.String),
|
||
new SQLiteParameter("@SixblockText", DbType.String),
|
||
new SQLiteParameter("@SevenblockPath", DbType.String),
|
||
new SQLiteParameter("@SevenblockMainWord", DbType.String),
|
||
new SQLiteParameter("@SevenblockText", DbType.String),
|
||
new SQLiteParameter("@EightblockPath", DbType.String),
|
||
new SQLiteParameter("@EightblockMainWord", DbType.String),
|
||
new SQLiteParameter("@EightblockText", DbType.String)};
|
||
|
||
parameters[0].Value = xkWord.OcrBar;
|
||
parameters[1].Value = xkWord.OneblockPath;
|
||
parameters[2].Value = xkWord.OneblockMainWord;
|
||
parameters[3].Value = xkWord.OneblockText;
|
||
|
||
parameters[4].Value = xkWord.TwoRect;
|
||
parameters[5].Value = xkWord.TwoIFWhile;
|
||
parameters[6].Value = xkWord.TwoblockPath;
|
||
parameters[7].Value = xkWord.TwoblockMainWord;
|
||
parameters[8].Value = xkWord.TwoblockText;
|
||
|
||
parameters[9].Value = xkWord.ThreeblockPath;
|
||
parameters[10].Value = xkWord.ThreeblockMainWord;
|
||
parameters[11].Value = xkWord.ThreeblockText;
|
||
|
||
parameters[12].Value = xkWord.FourblockPath;
|
||
parameters[13].Value = xkWord.FourblockMainWord;
|
||
parameters[14].Value = xkWord.FourblockText;
|
||
|
||
parameters[15].Value = xkWord.FiveblockPath;
|
||
parameters[16].Value = xkWord.FiveblockMainWord;
|
||
parameters[17].Value = xkWord.FiveblockText;
|
||
|
||
|
||
parameters[18].Value = xkWord.SixblockPath;
|
||
parameters[19].Value = xkWord.SixblockMainWord;
|
||
parameters[20].Value = xkWord.SixblockText;
|
||
|
||
parameters[21].Value = xkWord.SevenblockPath;
|
||
parameters[22].Value = xkWord.SevenblockMainWord;
|
||
parameters[23].Value = xkWord.SevenblockText;
|
||
|
||
parameters[24].Value = xkWord.EightblockPath;
|
||
parameters[25].Value = xkWord.EightblockMainWord;
|
||
parameters[26].Value = xkWord.EightblockText;
|
||
int iv = SQLiteHelper.ExecuteSql(strSql.ToString(), parameters);
|
||
if (iv == 1)
|
||
{
|
||
MessageBox.Show("¹Ø¼ü×ÖXK_HisenceWord²åÈëÒ»ÌõÊý¾Ý");
|
||
}
|
||
}
|
||
public void InsertXK_HisenceWordMatchData(XK_HisenceWord xkWord,bool ifMatch)
|
||
{
|
||
StringBuilder strSql = new StringBuilder();
|
||
strSql.Append("insert into XK_HisenceWordMatch(");
|
||
strSql.Append("OcrBar,OneblockPath,OneblockMainWord,OneblockText,TwoRect,TwoIFWhile,TwoblockPath,TwoblockMainWord,TwoblockText,ThreeblockPath," +
|
||
"ThreeblockMainWord,ThreeblockText,FourblockPath,FourblockMainWord,FourblockText,FiveblockPath,FiveblockMainWord,FiveblockText," +
|
||
"SixblockPath,SixblockMainWord,SixblockText,SevenblockPath,SevenblockMainWord,SevenblockText,EightblockPath,EightblockMainWord,EightblockText,Datetime,IfMatch)");
|
||
strSql.Append(" values (");
|
||
strSql.Append("@OcrBar,@OneblockPath,@OneblockMainWord,@OneblockText,@TwoRect,@TwoIFWhile,@TwoblockPath,@TwoblockMainWord,@TwoblockText,@ThreeblockPath," +
|
||
"@ThreeblockMainWord,@ThreeblockText,@FourblockPath,@FourblockMainWord,@FourblockText,@FiveblockPath,@FiveblockMainWord,@FiveblockText," +
|
||
"@SixblockPath,@SixblockMainWord,@SixblockText,@SevenblockPath,@SevenblockMainWord,@SevenblockText,@EightblockPath,@EightblockMainWord,@EightblockText,@Datetime,@IfMatch)");
|
||
SQLiteParameter[] parameters = {
|
||
new SQLiteParameter("@OcrBar", DbType.String),
|
||
new SQLiteParameter("@OneblockPath", DbType.String),
|
||
new SQLiteParameter("@OneblockMainWord", DbType.String),
|
||
new SQLiteParameter("@OneblockText", DbType.String),
|
||
new SQLiteParameter("@TwoRect",DbType.String),
|
||
new SQLiteParameter("@TwoIFWhile",DbType.String),
|
||
new SQLiteParameter("@TwoblockPath", DbType.String),
|
||
new SQLiteParameter("@TwoblockMainWord",DbType.String),
|
||
new SQLiteParameter("@TwoblockText", DbType.String),
|
||
new SQLiteParameter("@ThreeblockPath", DbType.String),
|
||
new SQLiteParameter("@ThreeblockMainWord", DbType.String),
|
||
new SQLiteParameter("@ThreeblockText", DbType.String),
|
||
new SQLiteParameter("@FourblockPath", DbType.String),
|
||
new SQLiteParameter("@FourblockMainWord", DbType.String),
|
||
new SQLiteParameter("@FourblockText", DbType.String),
|
||
new SQLiteParameter("@FiveblockPath", DbType.String),
|
||
new SQLiteParameter("@FiveblockMainWord", DbType.String),
|
||
new SQLiteParameter("@FiveblockText", DbType.String),
|
||
new SQLiteParameter("@SixblockPath", DbType.String),
|
||
new SQLiteParameter("@SixblockMainWord", DbType.String),
|
||
new SQLiteParameter("@SixblockText", DbType.String),
|
||
new SQLiteParameter("@SevenblockPath", DbType.String),
|
||
new SQLiteParameter("@SevenblockMainWord", DbType.String),
|
||
new SQLiteParameter("@SevenblockText", DbType.String),
|
||
new SQLiteParameter("@EightblockPath", DbType.String),
|
||
new SQLiteParameter("@EightblockMainWord", DbType.String),
|
||
new SQLiteParameter("@EightblockText", DbType.String),
|
||
new SQLiteParameter("@Datetime", DbType.String),
|
||
new SQLiteParameter("@IfMatch", DbType.Boolean)};
|
||
|
||
parameters[0].Value = xkWord.OcrBar;
|
||
parameters[1].Value = xkWord.OneblockPath;
|
||
parameters[2].Value = xkWord.OneblockMainWord;
|
||
parameters[3].Value = xkWord.OneblockText;
|
||
|
||
parameters[4].Value = xkWord.TwoRect;
|
||
parameters[5].Value = xkWord.TwoIFWhile;
|
||
parameters[6].Value = xkWord.TwoblockPath;
|
||
parameters[7].Value = xkWord.TwoblockMainWord;
|
||
parameters[8].Value = xkWord.TwoblockText;
|
||
|
||
parameters[9].Value = xkWord.ThreeblockPath;
|
||
parameters[10].Value = xkWord.ThreeblockMainWord;
|
||
parameters[11].Value = xkWord.ThreeblockText;
|
||
|
||
parameters[12].Value = xkWord.FourblockPath;
|
||
parameters[13].Value = xkWord.FourblockMainWord;
|
||
parameters[14].Value = xkWord.FourblockText;
|
||
|
||
parameters[15].Value = xkWord.FiveblockPath;
|
||
parameters[16].Value = xkWord.FiveblockMainWord;
|
||
parameters[17].Value = xkWord.FiveblockText;
|
||
|
||
|
||
parameters[18].Value = xkWord.SixblockPath;
|
||
parameters[19].Value = xkWord.SixblockMainWord;
|
||
parameters[20].Value = xkWord.SixblockText;
|
||
|
||
parameters[21].Value = xkWord.SevenblockPath;
|
||
parameters[22].Value = xkWord.SevenblockMainWord;
|
||
parameters[23].Value = xkWord.SevenblockText;
|
||
|
||
parameters[24].Value = xkWord.EightblockPath;
|
||
parameters[25].Value = xkWord.EightblockMainWord;
|
||
parameters[26].Value = xkWord.EightblockText;
|
||
|
||
parameters[27].Value = DateTime.Now;
|
||
parameters[28].Value = ifMatch;
|
||
int iv = SQLiteHelper.ExecuteSql(strSql.ToString(), parameters);
|
||
if (iv == 1)
|
||
{
|
||
MessageBox.Show("¹Ø¼ü×ÖXK_HisenceWordMatch²åÈëÒ»ÌõÊý¾Ý");
|
||
}
|
||
}
|
||
|
||
public void InsertXKHisenceDET(XKHisence xkWord)
|
||
{
|
||
StringBuilder strSql = new StringBuilder();
|
||
strSql.Append("insert into XKHisenceDet(");
|
||
strSql.Append("Type,OcrBar,MoveX,MoveY,MoveZ,Detect,OcrText,MoveTwoX,MoveTwoY,MoveTwoZ,Datetime,IfMatch)");
|
||
strSql.Append(" values (");
|
||
strSql.Append("@Type,@OcrBar,@MoveX,@MoveY,@MoveZ,@Detect,@OcrText,@MoveTwoX,@MoveTwoY,@MoveTwoZ,@Datetime,@IfMatch)");
|
||
SQLiteParameter[] parameters = {
|
||
new SQLiteParameter("@OcrBar", DbType.String),
|
||
new SQLiteParameter("@MoveX", DbType.String),
|
||
new SQLiteParameter("@MoveY", DbType.String),
|
||
new SQLiteParameter("@MoveZ", DbType.String),
|
||
new SQLiteParameter("@Detect",DbType.String),
|
||
new SQLiteParameter("@OcrText", DbType.String),
|
||
new SQLiteParameter("@MoveTwoX",DbType.String),
|
||
new SQLiteParameter("@MoveTwoY", DbType.String),
|
||
new SQLiteParameter("@MoveTwoZ", DbType.String),
|
||
new SQLiteParameter("@Datetime", DbType.String),
|
||
new SQLiteParameter("@IfMatch", DbType.String)};
|
||
parameters[0].Value = xkWord.OcrBar;
|
||
parameters[1].Value = xkWord.MoveX;
|
||
parameters[2].Value = xkWord.MoveY;
|
||
parameters[3].Value = xkWord.MoveZ;
|
||
|
||
parameters[4].Value = xkWord.Detect;
|
||
parameters[5].Value = xkWord.OcrText;
|
||
parameters[6].Value = xkWord.MoveTwoX;
|
||
parameters[7].Value = xkWord.MoveTwoY;
|
||
|
||
parameters[8].Value = xkWord.MoveTwoZ;
|
||
|
||
int iv = SQLiteHelper.ExecuteSql(strSql.ToString(), parameters);
|
||
if (iv == 1)
|
||
{
|
||
MessageBox.Show("¹Ø¼ü×ÖXK_HisenceWord²åÈëÒ»ÌõÊý¾Ý");
|
||
}
|
||
}
|
||
private void queryALLBtn_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
DataSet dataSet = SQLiteHelper.Query("select * from XK_Hisence");
|
||
InsertDataDgv.DataSource = dataSet.Tables[0];
|
||
|
||
|
||
}
|
||
catch (Exception es)
|
||
{
|
||
}
|
||
}
|
||
|
||
private void QueryoneBtn_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
string type = TypeBox.Text;
|
||
string OcrBar = OcrBarBox.Text;
|
||
string moveX = moveXbox.Text;
|
||
string moveY = moveYbox.Text;
|
||
string moveZ = moveZbox.Text;
|
||
string Detect = DetectBArMatbox.Text;
|
||
string movetwoX = moveTwoXbox.Text;
|
||
string movetwoY = moveTwoYbox.Text;
|
||
string movetwoZ = moveTwoZbox.Text;
|
||
|
||
|
||
string sql = "select * from XK_Hisence where type='" + type + "' or OcrBar='" + OcrBar + "'";
|
||
DataSet dataSet = SQLiteHelper.Query(sql);
|
||
InsertDataDgv.DataSource = dataSet.Tables[0];
|
||
|
||
}
|
||
catch (Exception es)
|
||
{
|
||
}
|
||
}
|
||
|
||
private void OpenDirBtn_Click(object sender, EventArgs e)
|
||
{
|
||
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||
openFileDialog.Title = "Çë´ò¿ªÍ¼Æ¬";
|
||
|
||
|
||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||
{
|
||
string fName = openFileDialog.FileName;
|
||
//File fileOpen = new File(fName);
|
||
//isFileHaveName = true;
|
||
//richTextBox1.Text = fileOpen.ReadFile();
|
||
//richTextBox1.AppendText("");
|
||
Cam1MatCbx.Text = fName;
|
||
Cam1OnePath = fName;
|
||
}
|
||
}
|
||
|
||
private void OpenTwoDirBtn_Click(object sender, EventArgs e)
|
||
{
|
||
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||
openFileDialog.Title = "Çë´ò¿ªÍ¼Æ¬";
|
||
|
||
|
||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||
{
|
||
string fName = openFileDialog.FileName;
|
||
//File fileOpen = new File(fName);
|
||
//isFileHaveName = true;
|
||
//richTextBox1.Text = fileOpen.ReadFile();
|
||
//richTextBox1.AppendText("");
|
||
Cam2MatCbx.Text = fName;
|
||
Cam1TwoPath = fName;
|
||
}
|
||
}
|
||
|
||
private void openModelBtn_Click(object sender, EventArgs e)
|
||
{
|
||
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||
openFileDialog.Title = "Çë´ò¿ªjson";
|
||
|
||
|
||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||
{
|
||
string fName = openFileDialog.FileName;
|
||
//File fileOpen = new File(fName);
|
||
//isFileHaveName = true;
|
||
//richTextBox1.Text = fileOpen.ReadFile();
|
||
//richTextBox1.AppendText("");
|
||
modelChangeCbx.Text = fName;
|
||
ModelChangePath = fName;
|
||
}
|
||
}
|
||
|
||
private void SnapshotCam2_Click_1(object sender, EventArgs e)
|
||
{
|
||
Cam2.Snapshot();
|
||
}
|
||
|
||
private void bnGetParam2_Click_1(object sender, EventArgs e)
|
||
{
|
||
tbExposure2.Text = Cam2.dvpGetExposure().ToString();
|
||
tbGain2.Text = Cam2.dvpGetAnalogGain().ToString();
|
||
}
|
||
|
||
private void panel2_Paint(object sender, PaintEventArgs e)
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|