hisence-yolo-detection/HisenceYoloDetection/MainForm.cs
2024-06-11 11:40:47 +08:00

2386 lines
90 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
{
}
}
}