Commit f996aeb3 几米阳光

删除不需要的文件

1 个父辈 657fdc85
正在显示 43 个修改的文件 包含 22 行增加10208 行删除
......@@ -85,7 +85,6 @@
<Compile Include="logs\TempLog.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Setting_Init.cs" />
<Compile Include="util\Color.cs" />
<Compile Include="util\ConfigAppSettings.cs" />
<Compile Include="util\FileUtil.cs" />
<Compile Include="util\FormUtil.cs" />
......

\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using log4net;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
namespace URSoldering.Common
{
public class URTcpClient
{
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public delegate void ByteHandleMessage(byte[] data);
public int DefaultDataLength = 1024;
public int ReviceSleepMS = 100;
private Socket m_clientSocket = null;
private byte[] m_receiveBuffer = new byte[1078];
private string LogName = "";
private ByteHandleMessage byteOnReceived;
public int TimeOutTime = 0;
/// <summary>
/// 当前连接状态
/// </summary>
public bool IsConnected()
{
if (m_clientSocket == null)
{
return false;
}
if (m_clientSocket.Connected)
{
return true;
}
try
{
#region 过程
// This is how you can determine whether a socket is still connected.
bool connectState = true;
bool blockingState = m_clientSocket.Blocking;
try
{
byte[] tmp = new byte[1];
m_clientSocket.Blocking = false;
m_clientSocket.Send(tmp, 0, 0);
//Console.WriteLine("Connected!");
connectState = true; //若Send错误会跳去执行catch体,而不会执行其try体里其之后的代码
}
catch (SocketException e)
{
// 10035 == WSAEWOULDBLOCK
if (e.NativeErrorCode.Equals(10035))
{
connectState = true;
}
else
{
connectState = false;
}
}
finally
{
if (m_clientSocket != null && m_clientSocket.Connected)
{
m_clientSocket.Blocking = blockingState;
}
}
return connectState;
#endregion
}
catch (Exception ex)
{
LogUtil.debug(LOGGER, "出错啦" + ex.ToString());
return false;
}
}
/// <summary>
/// 连接服务器
/// </summary>
public bool connect(string serverIP, int serverPort, ByteHandleMessage byteHandle)
{
LogName = "【" + serverIP + " ," + serverPort + "】";
m_receiveBuffer = new byte[DefaultDataLength];
m_clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
if (TimeOutTime <= 0)
{
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Parse(serverIP), serverPort);
m_clientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
try
{
if (!m_clientSocket.Connected)
{
m_clientSocket.Connect(remoteEndPoint);
}
if (m_clientSocket.Connected)
{
m_clientSocket.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);
byteOnReceived = byteHandle;
LogUtil.URLDebug("Connect to " + LogName + " success");
return true;
}
else
{
LogUtil.URLInfo("Connect to " + LogName + " fail");
}
}
catch (Exception ex)
{
LogUtil.URLError("Connect to " + LogName + " error :" + ex.ToString());
//m_clientSocket = null;
}
}
else
{
m_clientSocket.ReceiveTimeout = TimeOutTime;
m_clientSocket.SendTimeout = TimeOutTime;
IAsyncResult connResult = m_clientSocket.BeginConnect(serverIP, serverPort, null, null);
connResult.AsyncWaitHandle.WaitOne(this.TimeOutTime, true); //等待2秒
if (!connResult.IsCompleted || (!m_clientSocket.Connected))
{
LogUtil.URLInfo("Connect to " + LogName + " fail");
m_clientSocket.Close();
//处理连接不成功的动作
return false;
}
else
{
//处理连接成功的动作
m_clientSocket.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);
byteOnReceived = byteHandle;
if (byteHandle != null)
{
byteOnReceived = byteHandle;
}
LogUtil.URLInfo("Connect to " + LogName + " success");
return true;
}
}
return false;
}
/// <summary>
/// 断开连接
/// </summary>
public void close()
{
try
{
if (m_clientSocket != null && m_clientSocket.Connected)
{
m_clientSocket.Shutdown(SocketShutdown.Both);
m_clientSocket.Close();
LogUtil.URLDebug(LogName + "Socket closed!");
}
else
{
LogUtil.URLInfo(LogName + "No socket is running!");
}
}
catch (Exception ex)
{
LogUtil.URLError(LogName + "close error :" + ex.ToString());
}
}
/// <summary>
/// 发送信息
/// </summary>
public void send(string strSendData)
{
byte[] sendBuffer = new byte[DefaultDataLength];
sendBuffer = Encoding.UTF8.GetBytes(strSendData);
if (m_clientSocket != null && m_clientSocket.Connected)
{
m_clientSocket.Send(sendBuffer);
LogUtil.debug(LOGGER, "Send >> " + strSendData);
}
}
/// <summary>
/// 发送信息
/// </summary>
public void sendLine(string strSendData)
{
try
{
LogUtil.info(LOGGER, LogName + "发送数据:" + strSendData);
LogUtil.URLInfo(LogName + "发送数据:" + strSendData);
strSendData = strSendData + "\r\n";
byte[] sendBuffer = new byte[DefaultDataLength];
sendBuffer = Encoding.UTF8.GetBytes(strSendData);
if (m_clientSocket != null && m_clientSocket.Connected)
{
m_clientSocket.Send(sendBuffer);
LogUtil.debug(LOGGER, "Send >> " + strSendData);
}
}catch (Exception ex)
{
LogUtil.error(LogName + "发送数据【" + strSendData + "】出错");
LogUtil.URLError(LogName+ "发送数据【"+ strSendData + "】出错:"+ex.ToString());
}
}
int headSize = 4;//包头长度 固定4
byte[] surplusBuffer = null;//不完整的数据包,即用户自定义缓冲区
/// <summary>
/// 接收客户端发来的数据
/// </summary>
/// <param name="connId">每个客户的会话ID</param>
/// <param name="bytes">缓冲区数据</param>
/// <returns></returns>
private int OnReceive(byte[] bytes)
{
try
{
//bytes 为系统缓冲区数据
//bytesRead为系统缓冲区长度
int bytesRead = bytes.Length;
if (bytesRead > 0)
{
if (surplusBuffer == null)//判断是不是第一次接收,为空说是第一次
{
surplusBuffer = bytes;//把系统缓冲区数据放在自定义缓冲区里面
}
else
{
surplusBuffer = surplusBuffer.Concat(bytes).ToArray();//拼接上一次剩余的包
}
//已经完成读取每个数据包长度
int haveRead = 0;
//这里totalLen的长度有可能大于缓冲区大小的(因为 这里的surplusBuffer 是系统缓冲区+不完整的数据包)
int totalLen = surplusBuffer.Length;
while (haveRead <= totalLen)
{
//如果在N此拆解后剩余的数据包连一个包头的长度都不够
//说明是上次读取N个完整数据包后,剩下的最后一个非完整的数据包
if (totalLen - haveRead < headSize)
{
byte[] byteSub = new byte[totalLen - haveRead];
//把剩下不够一个完整的数据包存起来
Buffer.BlockCopy(surplusBuffer, haveRead, byteSub, 0, totalLen - haveRead);
surplusBuffer = byteSub;
totalLen = 0;
break;
}
//如果够了一个完整包,则读取包头的数据
byte[] headByte = new byte[headSize];
Buffer.BlockCopy(surplusBuffer, haveRead, headByte, 0, headSize);//从缓冲区里读取包头的字节
headByte = surplusBuffer.Skip(haveRead).Take(headSize).ToArray().Reverse<byte>().ToArray();
int bodySize = BitConverter.ToInt32(headByte, 0);//从包头里面分析出包体的长度
if (bodySize <= 0)
{
LogUtil.error("解析错误:长度:" + bodySize);
}
//这里的 haveRead=等于N个数据包的长度 从0开始;0,1,2,3....N
//如果自定义缓冲区拆解N个包后的长度 大于 总长度,说最后一段数据不够一个完整的包了,拆出来保存
if (haveRead + bodySize > totalLen)
{
byte[] byteSub = new byte[totalLen - haveRead];
Buffer.BlockCopy(surplusBuffer, haveRead, byteSub, 0, totalLen - haveRead);
surplusBuffer = byteSub;
break;
}
else
{
//挨个分解每个包,解析成实际文字
byte[] endArray = surplusBuffer.Skip(haveRead).Take(bodySize).ToArray();//
Task.Factory.StartNew(delegate ()
{
byteOnReceived?.Invoke(endArray);
});
//依次累加当前的数据包的长度
haveRead = haveRead + bodySize;
if (bodySize == bytesRead)//如果当前接收的数据包长度正好等于缓冲区长度,则待拼接的不规则数据长度归0
{
surplusBuffer = null;//设置空 回到原始状态
totalLen = 0;//清0
}
}
}
}
}
catch (Exception ex)
{
LogUtil.error(LOGGER, " 分包出错:" + ex.ToString());
}
return 1;
}
private void ReceiveCallBack(IAsyncResult ar)
{
try
{
if (m_clientSocket != null && m_clientSocket.Connected)
{
int REnd = m_clientSocket.EndReceive(ar);
//OnReceive(m_receiveBuffer);
Task.Factory.StartNew(delegate ()
{
byteOnReceived(m_receiveBuffer);
});
// Thread.Sleep(ReviceSleepMS);
//LOGGER.Debug("m_clientSocket:" + m_clientSocket + "\n m_receiveBuffer" + m_receiveBuffer);
//Task.Factory.StartNew(delegate ()
//{
//m_clientSocket.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);
//});
}
}
catch (Exception ex)
{
LogUtil.URLError(LogName + " socket received error:" + ex.ToString());
}
}
}
}
using log4net;
using URSoldering.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
namespace URSoldering.DeviceLibrary
{
public class EpsonControl
{
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public static TcpClient controlTcp = new TcpClient();
public static TcpClient moveTcp = new TcpClient();
public static string EpsonIp = "";
public static int ControlPort = 5000;
public static int MovePointPort = 2000;
public static double Robot_LIM_Z = (double)ConfigAppSettings.GetNumValue(Setting_Init.Soldering_LIM_Z);
private static string CMD_login = "$login";
private static string CMD_reset = "$reset";
private static string CMD_getStatus = "$GetStatus";//收到数据:#GetStatus,00100010001,0000
private static string CMD_stop = "$stop";
private static string CMD_start0 = "$start,0";
private static string MoveOK = "point ok";
private static string FreeOK = "free ok";
private static string LockOK = "lock ok";
/// <summary>
/// 记录最后一次收到OK的时间
/// </summary>
private static Dictionary<string, DateTime> LastOkMap = new Dictionary<string, DateTime>();
private static System.Timers.Timer timer = null;
//最后一次从机械臂读取到的坐标位置
public static PointValue LastPoint = new PointValue(0, 0, 0, 0, 0);
//最后一次软件控制移动到的位置
public static PointValue LastSendPoint = new PointValue(0, 0, 0, 0, 0);
/// <summary>
/// 是否锁住轴
/// </summary>
public static bool IsLock = true;
/// <summary>
/// 是否运行中
/// </summary>
public static bool IsRun = false;
public static bool IsStartConnect = false;
private static int startCount = 0;
/// <summary>
/// 上一次启动的时间,机械臂启动需要时间,默认需要3分钟,若三分钟后还没有链接,需要重新启动
/// </summary>
private static DateTime PreStartTime = DateTime.Now;
private static int StartTimeOutSeconds = 10000;
public static string WarnMsg = "";
private static System.Timers.Timer reconnectTimer = new System.Timers.Timer();
public static bool InitEpson()
{
if (reconnectTimer == null)
{
reconnectTimer = new System.Timers.Timer();
reconnectTimer.AutoReset = true;
reconnectTimer.Interval = 30000;
reconnectTimer.Elapsed += reconnectTimer_Elapsed;
reconnectTimer.Enabled = false;
}
if (timer == null)
{
timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.AutoReset = false;
timer.Elapsed += timer_Elapsed;
}
IsStartConnect = true;
if (IsRun)
{
return true;
}
return startTcp();
}
private static bool startTcp()
{
try
{
WarnMsg = "";
if (startCount > 0)
{
TimeSpan span = DateTime.Now - PreStartTime;
if (span.TotalMilliseconds < StartTimeOutSeconds)
{
LogUtil.info("机械臂正在连接中,不需要重连");
return true;
}
else
{
LogUtil.info("机械臂距离上次启动已经超过10秒,重新开始连接");
StopEpson();
}
}
PreStartTime = DateTime.Now;
startCount++;
LastOkMap = new Dictionary<string, DateTime>();
LastOkMap.Add(FreeOK, DateTime.Now);
LastOkMap.Add(MoveOK, DateTime.Now);
LastOkMap.Add(LockOK, DateTime.Now);
controlTcp = new TcpClient();
bool result = controlTcp.connect(EpsonIp, ControlPort, new TcpClient.HandleMessage(OnControlRevice));
if (!result)
{
LogUtil.error(LOGGER, "连接【" + EpsonIp + "】【" + ControlPort + "】失败");
return false;
}
else
{
LogUtil.info(LOGGER, "连接【" + EpsonIp + "】【" + ControlPort + "】成功");
}
//发送
controlTcp.sendLine(CMD_login);
return true;
}
catch (Exception ex)
{
LogUtil.error("starttcp error:" + ex.ToString());
return false;
}
}
private static void reconnectTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (IsStartConnect)
{
//判断500在连接上,则获取状态
if (controlTcp.IsConnected())
{
controlTcp.sendLine(CMD_getStatus);
}
if (moveTcp.IsConnected())
{
}
else
{
LogUtil.error("reconnectTimer_Elapsed检测到机械臂已经断开,需要重连!");
stopTcp();
startTcp();
}
}
}
public static bool StartMoveTcp()
{
if (IsRun)
{
return true;
}
moveTcp = new TcpClient();
bool result = moveTcp.connect(EpsonIp, MovePointPort, new TcpClient.HandleMessage(OnMoveRevice));
if (!result)
{
LogUtil.error(LOGGER, "连接【" + EpsonIp + "】【" + MovePointPort + "】失败");
return false;
}
else
{
IsRun = true;
reconnectTimer.Enabled = true;
LogUtil.info(LOGGER, "连接【" + EpsonIp + "】【" + MovePointPort + "】成功");
EpsonControl.GetPosition();
}
return true;
}
public static bool StopMoveTcp()
{
if (moveTcp.IsConnected())
{
moveTcp.close();
controlTcp.sendLine(CMD_stop);
}
return true;
}
//public delegate void OperateEnd(string result);
//private static event OperateEnd OnOperateEnd;
//public static void SendMovePoint(double x, double y, double z, double u, bool IsHighSpeed, int hand, OperateEnd AfterOperateEnd)
//{
// EpsonControl.OnOperateEnd = AfterOperateEnd;
// SendMovePoint(x, y, z, u, IsHighSpeed, hand);
//}
public static bool SendMovePoint(double x, double y, double z, double u, bool IsHighSpeed, int hand)
{
return SendMovePoint(x, y, z, u, IsHighSpeed, hand, Robot_LIM_Z);
}
/// <summary>
/// 发送坐标移动
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="z">上下</param>
/// <param name="u">旋转</param>
/// <param name="IsHighSpeed"></param>
/// <param name="hand">1=右手,2=左手</param>
public static bool SendMovePoint(double x, double y, double z, double u, bool IsHighSpeed, int hand,double limZ)
{
if (z > 0)
{
LogUtil.error("坐标错误:" + x + "," + y + "," + z + "," + u);
return false;
}
if (limZ > EpsonDevice.Robot_LIM_Z)
{
limZ = EpsonDevice.Robot_LIM_Z;
}
List<double> pointList = new List<double>();
pointList.Add(x);
pointList.Add(y);
pointList.Add(z);
pointList.Add(u);
LastSendPoint = new PointValue(x, y, u, z, hand);
string str = "move";
foreach (double dd in pointList)
{
if (str.Equals(""))
{
str += dd.ToString();
}
else
{
str = str + "," + dd.ToString();
}
}
if (IsHighSpeed)
{
str = str + ",h";
}
else
{
str = str + ",l";
}
if (hand == 2)
{
str = str + ",l";
}
else if (hand == 1)
{
str = str + ",r";
}
else
{
str = str + ",0";
}
str = str + "," + limZ;
if (IsLock == false)
{
LogUtil.error(LOGGER, "机械臂Move之前,发现没有锁定轴【" + str + "】,直接返回不处理!");
return false;
}
moveTcp.sendLine(str);
return true;
}
public static bool LockAxis()
{
try
{
IsLock = true;
moveTcp.sendLine(GetSendStr("lock"));
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "出错啦" + ex.ToString());
}
return true;
}
public static bool FreeAxis()
{
try
{
IsLock = false;
moveTcp.sendLine(GetSendStr("free"));
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "出错啦" + ex.ToString());
}
return true;
}
public static bool GetPosition()
{
try
{
moveTcp.sendLine(GetSendStr("save"));
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "出错啦" + ex.ToString());
}
return true;
}
private static void OnControlRevice(string message)
{
if (message == null || message.Equals(""))
{
return;
}
try
{
LogUtil.debug(LOGGER, "【" + EpsonIp + "】【" + ControlPort + "】收到数据:" + message);
if (message.IndexOf("#login") >= 0)
{
//Thread.Sleep(100);
controlTcp.sendLine(CMD_stop);
}
else if (message.IndexOf("#stop") >= 0)
{
//Thread.Sleep(100);
controlTcp.sendLine(CMD_reset);
}
else if (message.IndexOf("#reset") >= 0)
{
Thread.Sleep(200);
controlTcp.sendLine(CMD_start0);
}
else if (message.IndexOf("#start") >= 0)
{
LogUtil.info(LOGGER, "【" + EpsonIp + "】【" + ControlPort + "】收到数据:" + message+ ",开始StartMoveTcp");
timer.Start();
}else if (message.ToLower().IndexOf("#getstatus") >= 0)
{
StatusProcess(message);
}
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "出错啦" + ex.ToString());
}
}
private static void StatusProcess(string message)
{
try
{
//GetStatus,[状态],[错误,警告代码] 终端//例如) #GetStatus,aaaaaaaaaa,bbbb
string[] mesArray = message.Split(',');
if (mesArray.Length == 3)
{
string isOpen = "1";
// 在上例中,10 位数字“aaaaaaaaaa”用于以下 10 个标志。
//Test / Teach / Auto / Warning / SError / Safeguard / EStop / Error / Paused / Running / Ready
string statusStr = mesArray[1];
int code = Convert.ToInt32(mesArray[2]);
bool Test = statusStr.Substring(0, 1).Equals(isOpen);
bool Teach = statusStr.Substring(1, 1).Equals(isOpen);
bool Auto = statusStr.Substring(2, 1).Equals(isOpen);
bool Warning = statusStr.Substring(3, 1).Equals(isOpen);
bool SError = statusStr.Substring(4, 1).Equals(isOpen);
bool Safeguard = statusStr.Substring(5, 1).Equals(isOpen);
bool EStop = statusStr.Substring(6, 1).Equals(isOpen);
bool Error = statusStr.Substring(7, 1).Equals(isOpen);
bool Paused = statusStr.Substring(8, 1).Equals(isOpen);
bool Running = statusStr.Substring(9, 1).Equals(isOpen);
bool Ready = statusStr.Substring(10, 1).Equals(isOpen);
if (EStop)
{
WarnMsg = "机械臂急停";
LogUtil.error("机械臂状态:" + message+","+WarnMsg+",发送重置命令");
controlTcp.sendLine(CMD_reset);
}else if (Error)
{
WarnMsg = "机械臂错误码:" + code;
LogUtil.error("机械臂状态:" + message + "," + WarnMsg + ",发送重置命令");
controlTcp.sendLine(CMD_reset);
}
else
{
WarnMsg = "";
}
}
}catch(Exception ex)
{
LogUtil.error("EpsonControl解析机械臂状态【"+message+"】出错:"+ex.ToString());
}
//#
// *2 * 3
// 0(Ver.7.1) 用户指南 Rev.1 32 * 1[0 | 1] I / O 位 开:1 / 关:0
// * 2 状态
//1 为开 / 0 为关
// 如果 Teach 和 Auto 为开,则为 1100000000。
//*3 错误 / 警告代码
//以 4 位数字表示。如果没有错误和警告,则为 0000。
//例如)1: #GetStatus,0100000001,0000
// Auto 位和 Ready 位为开(1)。
//表示自动模式开启并处于准备就绪状态。已启用命令执行。
//例如)2: #GetStatus,0110000010,0517
//这意味着运行过程中发生警告。对警告代码采取适当的行动。(在这种
//情况下,警告代码为 0517)
//标志 内容
//Test 在TEST模式下打开
//Teach 在TEACH模式下打开
//Auto 在远程输入接受条件下打开标志 内容
//Warnig
//在警告条件下打开
//甚至在警告条件下也可以像往常一样执行任务。但是,应尽快采取警
//告行动。
//SError
//在严重错误状态下打开
//发生严重错误时,重新启动控制器,以便从错误状态中恢复。“Reset 输
//入”不可用。
//Safeguard 安全门打开时打开
//EStop 在紧急状态下打开
//Error 在错误状态下打开
//使用“Reset 输入”从错误状态中恢复。
//Paused 打开暂停的任务
//Running 执行任务时打开
//在“Paused 输出”为开时关闭。
//Ready 控制器完成启动且无任务执行时打开
//*4 返回要获取的编号中指定编号的值。
}
private static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
timer.Stop();
StartMoveTcp();
}
private static void OnMoveRevice(string message)
{
WarnMsg = "";
if (message == null || message.Equals(""))
{
return;
}
try
{
LogUtil.debug("【" + EpsonIp + "】【" + MovePointPort + "】收到数据:" + message.Replace("\r\n", ""));
if (message.Contains(MoveOK))
{
//LogUtil.debug(LOGGER, "【" + EpsonIp + "】【" + MovePointPort + "】收到数据:" + MoveOK);
if (LastOkMap.ContainsKey(MoveOK))
{
LastOkMap.Remove(MoveOK);
}
LastOkMap.Add(MoveOK, DateTime.Now);
//EpsonControl.OnOperateEnd?.Invoke("");
}
else if (message.Contains(FreeOK))
{
//LogUtil.debug(LOGGER, "【" + EpsonIp + "】【" + MovePointPort + "】收到数据:" + FreeOK);
if (LastOkMap.ContainsKey(FreeOK))
{
LastOkMap.Remove(FreeOK);
}
LastOkMap.Add(FreeOK, DateTime.Now);
//EpsonControl.OnOperateEnd?.Invoke("");
}
else if (message.Contains(LockOK))
{
//LogUtil.debug(LOGGER, "【" + EpsonIp + "】【" + MovePointPort + "】收到数据:" + LockOK);
if (LastOkMap.ContainsKey(LockOK))
{
LastOkMap.Remove(LockOK);
}
LastOkMap.Add(LockOK, DateTime.Now);
//EpsonControl.OnOperateEnd?.Invoke("");
}
else
{
string[] posList = message.Split(',');
if (posList.Length == 5)
{
List<double> result = new List<double>();
foreach (string str in posList)
{
result.Add(Convert.ToDouble(str));
}
LastPoint = new PointValue(result[0], result[1], result[3], result[2], Convert.ToInt32(result[4]));
}
}
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "收到数据【"+message+"】出错啦" + ex.ToString());
if (message.StartsWith("ERR"))
{
WarnMsg = "Robot " + message;
}
}
}
public static string GetSendStr(string str)
{
return str + ",0,0,0,0,0,0,0";
}
private static void stopTcp()
{
try
{
IsRun = false;
startCount--;
controlTcp.sendLine(CMD_stop);
moveTcp.close();
controlTcp.close();
}
catch (Exception ex)
{
LogUtil.error("stopTcp出错啦" + ex.ToString());
}
}
public static void StopEpson()
{
try
{
IsStartConnect = false ;
reconnectTimer.Enabled = false;
stopTcp();
}
catch (Exception ex)
{
LogUtil.error("StopEpson出错啦" + ex.ToString());
}
}
public static DateTime MoveOKTime()
{
if (LastOkMap.ContainsKey(MoveOK))
{
return LastOkMap[MoveOK];
}
return new DateTime(0);
}
}
public class PointValue
{
public PointValue(double x, double y, double u, double z, int handDir)
{
// TODO: Complete member initialization
this.X = x;
this.Y = y;
this.U = u;
this.Z = z;
this.HandDir = handDir;
this.UpdateTime = DateTime.Now;
}
/// <summary>
/// 更新的时间
/// </summary>
public DateTime UpdateTime { get; set; }
public double X { get; set; }
public double Y { get; set; }
public double U { get; set; }
public double Z { get; set; }
public int HandDir { get; set; }
}
}
using log4net;
using URSoldering.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using URSoldering.LoadCSVLibrary;
namespace URSoldering.DeviceLibrary
{
public class EpsonDevice
{
private static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static TcpClient moveTcp = new TcpClient();
private static string EpsonIp = "";
private static int MovePointPort = 2000;
public static double Robot_LIM_Z = (double)ConfigAppSettings.GetNumValue(Setting_Init.Soldering_LIM_Z);
private static string MoveOK = "point ok";
private static string FreeOK = "free ok";
private static string LockOK = "lock ok";
//最后一次从机械臂读取到的坐标位置
public static PointValue LastPoint = new PointValue(0, 0, 0, 0, 0);
//最后一次软件控制移动到的位置
public static PointValue LastSendPoint = new PointValue(0, 0, 0, 0, 0);
public delegate void OpEnd(string result);
private static event OpEnd OnMoveEnd;
public delegate void GetPoint(double x, double y, double z, double u, int hand);
private static event GetPoint WhenGetPoint;
private static object LockObj = new object();
/// <summary>
/// 是否锁住轴
/// </summary>
public static bool IsLock = true;
/// <summary>
/// 是否运行中
/// </summary>
public static bool IsRun = false;
public static void Init(string ip)
{
EpsonIp = ip;
}
/// <summary>
/// 是否有错误,(检查Ready和Alarm信号)
/// </summary>
/// <returns></returns>
public static bool HasError()
{
bool isReady = IO_VALUE.HIGH.Equals(RobotBean.KNDIOValue(IO_Type.EpsonRunning));
if (!isReady)
{
return true;
}
bool hasError = IO_VALUE.HIGH.Equals(RobotBean.KNDIOValue(IO_Type.EpsonAlarm));
return hasError;
}
public static string Start()
{
Stop();
LogUtil.info("开始连接Epson");
RobotBean.KNDIOMove(IO_Type.EpsonReset, IO_VALUE.HIGH);
Thread.Sleep(200);
RobotBean.KNDIOMove(IO_Type.EpsonReset, IO_VALUE.LOW);
Thread.Sleep(500);
//判断是否有报警
if (IO_VALUE.HIGH.Equals(RobotBean.KNDIOValue(IO_Type.EpsonAlarm)))
{
LogUtil.info("Epson有报警,进行复位");
//复位
RobotBean.KNDIOMove(IO_Type.EpsonReset, IO_VALUE.HIGH);
Thread.Sleep(200);
RobotBean.KNDIOMove(IO_Type.EpsonReset, IO_VALUE.HIGH);
Thread.Sleep(2000);
}
if (IO_VALUE.HIGH.Equals(RobotBean.KNDIOValue(IO_Type.EpsonAlarm)))
{
LogUtil.error("Epson报警无法复位");
return "Epson报警无法复位";
}
//启动程序
RobotBean.KNDIOMove(IO_Type.EpsonStart, IO_VALUE.HIGH);
Thread.Sleep(200);
RobotBean.KNDIOMove(IO_Type.EpsonStart, IO_VALUE.LOW);
try
{
//Running信号
RobotBean.WaitIo("Epson准备信号", IO_Type.EpsonRunning, IO_VALUE.HIGH, 3000);
}
catch (TimeoutException te)
{
LogUtil.error("Epson连接失败:" + te.Message);
return te.Message;
}
Thread.Sleep(200);
moveTcp = new TcpClient();
bool result = moveTcp.connect(EpsonIp, MovePointPort, new TcpClient.HandleMessage(OnMoveRevice));
if (!result)
{
LogUtil.error(LOGGER, "Epson 连接【" + EpsonIp + "】【" + MovePointPort + "】失败");
IsRun = false;
return "连接【" + EpsonIp + "】【" + MovePointPort + "】失败";
}
else
{
IsRun = true;
LogUtil.info(LOGGER, "连接【" + EpsonIp + "】【" + MovePointPort + "】成功");
return "";
}
}
public static bool LockAxis()
{
try
{
IsLock = true;
moveTcp.sendLine(GetSendStr("lock"));
bool freeResult = WaitUtil.Wait(2000, delegate ()
{
return IsLock.Equals(false);
});
IsLock = !freeResult;
return freeResult;
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "出错啦" + ex.ToString());
}
return true;
}
public static bool FreeAxis()
{
try
{
IsLock = false;
moveTcp.sendLine(GetSendStr("free"));
bool lockResult = WaitUtil.Wait(2000, delegate ()
{
return IsLock.Equals(true);
});
IsLock = lockResult;
return lockResult;
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "出错啦" + ex.ToString());
}
return false;
}
public static bool GetPosition(GetPoint AfterGet)
{
try
{
if (IsRun)
{
WhenGetPoint = AfterGet;
moveTcp.sendLine(GetSendStr("save"));
}
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "出错啦" + ex.ToString());
}
return true;
}
public static void MoveTo(double x, double y, double z, double u, bool IsHighSpeed, int hand,double limZ, OpEnd AfterMove)
{
EpsonDevice.OnMoveEnd = AfterMove;
SendMovePoint(x, y, z, u, IsHighSpeed, hand, limZ);
}
public static void MoveTo(double x, double y, double z, double u, bool IsHighSpeed, int hand, OpEnd AfterMove)
{
EpsonDevice.OnMoveEnd = AfterMove;
SendMovePoint(x, y, z, u, IsHighSpeed, hand, Robot_LIM_Z);
}
public static void Stop()
{
try
{
IsRun = false;
if (moveTcp.IsConnected())
{
moveTcp.close();
}
//关闭程序
RobotBean.KNDIOMove(IO_Type.EpsonStop, IO_VALUE.HIGH);
Thread.Sleep(500);
RobotBean.KNDIOMove(IO_Type.EpsonStop, IO_VALUE.LOW);
}
catch (Exception ex)
{
LogUtil.error("Stop Epson出错啦" + ex.ToString());
}
}
/// <summary>
/// 发送坐标移动
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="z">上下</param>
/// <param name="u">旋转</param>
/// <param name="IsHighSpeed"></param>
/// <param name="hand">1=右手,2=左手</param>
private static void SendMovePoint(double x, double y, double z, double u, bool IsHighSpeed, int hand, double limZ)
{
lock (LockObj)
{
if (z > 0)
{
OnMoveEnd?.Invoke("坐标错误:Z坐标不能小于0,当前为:" + z);
}
if (limZ > EpsonDevice.Robot_LIM_Z)
{
limZ = EpsonDevice.Robot_LIM_Z;
}
string speed = "l";
if (IsHighSpeed)
{
speed = "h";
}
string handStr = "0";
if (hand == 2)
{
handStr = "l";
}
else if (hand == 1)
{
handStr = "r";
}
string str = "move" + "," + x + "," + y + "," + z + "," + u + "," + speed + "," + handStr + "," + limZ;
LastSendPoint = new PointValue(x, y, u, z, hand);
if (IsLock == false)
{
OnMoveEnd?.Invoke("轴没有锁定");
}
if (!IsRun)
{
OnMoveEnd?.Invoke("机器人未连接");
}
moveTcp.sendLine(str);
}
}
/// <summary>
/// 记录最后一次收到OK的时间
/// </summary>
private static Dictionary<string, DateTime> LastOkMap = new Dictionary<string, DateTime>();
public static DateTime MoveOKTime()
{
if (LastOkMap.ContainsKey(MoveOK))
{
return LastOkMap[MoveOK];
}
return new DateTime(0);
}
private static void AddOkTime(string type)
{
if (LastOkMap.ContainsKey(type))
{
LastOkMap.Remove(type);
}
LastOkMap.Add(type, DateTime.Now);
}
private static void OnMoveRevice(string message)
{
if (message == null || message.Equals(""))
{
return;
}
try
{
LogUtil.debug("【" + EpsonIp + "】【" + MovePointPort + "】收到数据:" + message.Replace("\r\n", ""));
if (message.Contains(MoveOK))
{
AddOkTime(MoveOK);
OnMoveEnd?.Invoke("");
}
else if (message.Contains(FreeOK))
{
AddOkTime(FreeOK);
IsLock = false;
}
else if (message.Contains(LockOK))
{
AddOkTime(LockOK);
IsLock = true;
}
else if (message.StartsWith("ERR"))
{
LogUtil.error("收到Epson机器人错误:" + message);
}
else
{
string[] posList = message.Split(',');
if (posList.Length == 5)
{
double x = Convert.ToDouble(posList[0]);
double y = Convert.ToDouble(posList[1]);
double z = Convert.ToDouble(posList[2]);
double u = Convert.ToDouble(posList[3]);
int hand = Convert.ToInt32(posList[4]);
WhenGetPoint?.Invoke(x, y, z, u, hand);
LastPoint = new PointValue(x, y, u, z, hand);
}
}
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "收到数据【" + message + "】出错啦" + ex.ToString());
}
}
private static string GetSendStr(string str)
{
return str + ",0,0,0,0,0,0,0";
}
}
}
using log4net;
using URSoldering.Common;
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading;
namespace URSoldering.DeviceLibrary
{
/// <summary>
/// 硕科控制模块代码
/// </summary>
public class ShuoKeControls
{
public static readonly ILog LOGGER = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private static SerialBean bean = null;
public static bool isRun = false;
private static Dictionary<int, ShuoKeInfo> shuokeMap = new Dictionary<int, ShuoKeInfo>();
public static string LastMsg = "";
#region 串口操作
public static bool ResertInitPort()
{
if (isRun)
{
ClosePort();
}
return InitPort();
}
public static bool InitPort(string comPortName)
{
if (isRun)
{
return true;
}
int baduRaate = 9600;
int parity = 0;
int dataBits = 8;
StopBits bits = StopBits.One;
return InitPort(comPortName, baduRaate, parity, dataBits, bits);
}
public static bool InitPort()
{
if (isRun)
{
return true ;
}
string comPortName = WeldRobotBean.RobotConfig.ShuoKe_PortName;
int baduRaate = 9600;
int parity = 0;
int dataBits = 8;
StopBits bits = StopBits.One;
return InitPort(comPortName, baduRaate, parity, dataBits, bits);
}
public static bool ResertInitPort(string comPortName, int baudRate, int tparity, int dataBits, StopBits stopBits)
{
if (isRun)
{
ClosePort();
}
return InitPort(comPortName, baudRate, tparity, dataBits, stopBits);
}
public static bool InitPort(string comPortName, int baudRate, int tparity, int dataBits, StopBits stopBits)
{
if (isRun)
{
return true;
}
try
{
Parity parity = (Parity)tparity;
bean = new SerialBean(comPortName, baudRate, parity, 8, stopBits);
bool result = bean.openPort();
if (!result)
{
return false;
}
bean.DataReceived += DataReceived;
isRun = true;
}
catch (Exception ex)
{
isRun = false;
LogUtil.error(LOGGER, "打开步进控制器串口失败:" + ex.ToString());
return false;
}
return true;
}
public static void ClosePort()
{
isRun = false;
if (bean != null)
{
bean.closePort();
}
LogUtil.info(LOGGER, "关闭步进控制器串口完成");
}
public static void SendData(byte[] data)
{
string strSend = "";
for (int i = 0; i < data.Length; i++)
{
strSend += string.Format("{0:X2} ", data[i]);
}
if (strSend.Equals(""))
{
return;
}
if (!isRun)
{
LogUtil.error(LOGGER, "电机发送数据【" + strSend + "】,当前串口未连接上,发送失败!");
return;
}
LogUtil.debug(LOGGER, "电机发送数据【" + strSend + "】");
bean.SendData(data, 0, data.Length);
}
private static void DataReceived(string portName, object sender, SerialDataReceivedEventArgs e, byte[] bits)
{
string strSend = "";
for (int i = 0; i < bits.Length; i++)
{
strSend += string.Format("{0:X2} ", bits[i]);
}
if (strSend.Equals(""))
{
return;
}
LastMsg = "收到数据:端口号 【" + portName + "】 数据【" + strSend + "】";
//校验
ushort pChecksum = 0;
SerialBean.CalculateCRC(bits, bits.Length - 2, out pChecksum);
string checkStr = Convert.ToString(pChecksum, 16);
byte[] checkByte = SerialBean.StringToByte(checkStr);
if (checkByte.Length == 1)
{
if (!bits[bits.Length - 2].Equals(checkByte[0]))
{
bean.clearInBuffer();
LastMsg = "收到数据:端口号 【" + portName + "】 数据【" + strSend + "】,校验错误";
LogUtil.info(LOGGER, "收到数据:端口号 【" + portName + "】 数据【" + strSend + "】,校验错误");
return;
}
}
else
{
if (!bits[bits.Length - 1].Equals(checkByte[0]) || (!bits[bits.Length - 2].Equals(checkByte[1])))
{
bean.clearInBuffer();
LastMsg = "收到数据:端口号 【" + portName + "】 数据【" + strSend + "】,校验错误";
LogUtil.info(LOGGER, "收到数据:端口号 【" + portName + "】 数据【" + strSend + "】,校验错误");
return;
}
}
LogUtil.debug(LOGGER, "收到数据:端口号 【" + portName + "】 数据【" + strSend + "】");
int slvAddr = (int)bits[0];
byte cmd = bits[1];
//查询状态
if (cmd.Equals(ShuoKeCMD.SearchMoveStatus))
{
//[数据1]:1表示运动中,0表示停止
//[数据2]:LL-左限位IO状态 1表示有效 0表示无效
//[数据3]:O-原点IO状态 1表示有效 0表示无效,,=1表示原点灭,=0表示当前原点亮
// [数据4]:RL-右限位IO状态 1表示有效 0表示无效
//[数据5]:EN-使能IO状态 1表示有效 0表示无效
int isInMove = bits[3];
int isLLimit = bits[4];
int isOrg = bits[5];
int isRLimit = bits[6];
int isEn = bits[7];
try
{
ShuoKeInfo info = new ShuoKeInfo(isInMove, slvAddr, isLLimit, isOrg, isRLimit, isEn);
if (shuokeMap.ContainsKey(slvAddr))
{
shuokeMap.Remove(slvAddr);
}
shuokeMap.Add(slvAddr, info);
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "记录状态出错:" + ex.ToString());
}
LastMsg="收到驱动器【" + slvAddr + "】运动状态:运动【" + isInMove + "】左限位【" + isLLimit + "】右限位【" + isRLimit + "】原点【" + isOrg + "】使能【" + isEn + "】";
LogUtil.debug(LOGGER, "收到驱动器【" + slvAddr + "】运动状态:运动【" + isInMove + "】左限位【" + isLLimit + "】右限位【" + isRLimit + "】原点【" + isOrg + "】使能【" + isEn + "】");
}
else if (cmd.Equals(ShuoKeCMD.GetAbsPosition))
{
byte[] positionData = new byte[4];
Array.Copy(bits, 3, positionData, 0, 4);
string a = SerialBean.byteToHexStr(positionData);
int absValue = Convert.ToInt32(a, 16);
LastMsg = "收到驱动器【" + slvAddr + "】绝对位置【" + absValue + "】";
LogUtil.info(LOGGER, "收到驱动器【" + slvAddr + "】绝对位置【" + absValue + "】");
}
}
#endregion
#region 流水线逻辑判断
public static bool IsMoveEnd(int slvAddr, DateTime time)
{
if (shuokeMap.ContainsKey(slvAddr))
{
ShuoKeInfo info = shuokeMap[slvAddr];
if (info.IsInMove == 0 && info.UpdateTime > time)
{
return true;
}
}
return false;
}
public static bool IsHomeMoveEnd(int slvAddr, DateTime time)
{
if (shuokeMap.ContainsKey(slvAddr))
{
ShuoKeInfo info = shuokeMap[slvAddr];
if (info.IsInMove == 0 && info.UpdateTime > time && info.Org == 0)
{
return true;
}
}
return false;
}
#endregion
#region 驱动器操作方法
public static void GetStatus(int slvAddr)
{
byte[] sendData = WriteData(slvAddr, ShuoKeCMD.SearchMoveStatus, 0x00, 0);
}
public static void DStoop(int slvAddr)
{
byte[] sendData = WriteData(slvAddr, ShuoKeCMD.DStopMove, 0x00, 0);
}
public static void SuddownStop(int slvAddr)
{
byte[] sendData = WriteData(slvAddr, ShuoKeCMD.SuddownStopMove, 0x00, 0);
}
public static void GetABSPosition(int slvAddr)
{
byte[] sendData = WriteData(slvAddr, ShuoKeCMD.GetAbsPosition, 0x00, 0);
}
public static void HomeMove(int slvAddr, byte homeType)
{
byte[] sendData = WriteData(slvAddr, ShuoKeCMD.HomeMove, 0x01, homeType);
}
public static void VolMove(int slvAddr, int speed)
{
byte[] sendData = WriteData(slvAddr, ShuoKeCMD.VolMove, 0x04, speed);
}
public static void RelativeMove(int slvAddr, int position)
{
//1是正方向
byte fangxiang = 0x01;
if (position < 0)
{
fangxiang = 0x00;
position = Math.Abs(position);
}
byte dataLength = 0x04;
byte[] sendData = new byte[5 + dataLength];
sendData[0] = (byte)slvAddr;
sendData[1] = ShuoKeCMD.RelativeMove;
sendData[2] = dataLength;
sendData[3] = 0x00;
sendData[4] = 0x00;
sendData[5] = 0x00;
sendData[6] = 0x00;
string speed = Convert.ToString(position, 16);
byte[] speedByte = SerialBean.StringToByte(speed);
for (int i = 0; i < speedByte.Length; i++)
{
if (i >= 4)
{
break;
}
sendData[6 - (speedByte.Length - 1 - i)] = speedByte[i];
}
sendData[3] = fangxiang;
sendData = buildCheckData(sendData, 3 + dataLength);
SendData(sendData);
}
public static void AbsMove(int slvAddr, int TargetPosition)
{
// 47、设置绝对位置并开始运动:不支持广播(开环的32位脉冲统计长度)
//正负数表示绝对位置,如果已经到位置,则不做运动。(M4505S特有命令)
//发送: 应答:
//[设备地址] 0x01 [设备地址] 0x01
//[命令] 0x50 [命令] 0x50
//[数据长度] 4 [数据长度] 0
//[数据] xxxxxxxx [数据] 无
//[CRC校验1] 0xnn [CRC校验1] 0xnn
//[CRC校验2] 0xnn [CRC校验2] 0xnn
//数据:4BYTE,(支持32位有符号脉冲位置)
byte[] sendData = WriteData(slvAddr, ShuoKeCMD.AbsMove, 0x04, TargetPosition);
//byte[] sendData = new byte[9];
//sendData[0] = (byte)slvAddr;
//sendData[1] = ShuoKeCMD.AbsMove;
//sendData[2] = 0x04;
//sendData[3] = 0x00;
//sendData[4] = 0x00;
//sendData[5] = 0x00;
//sendData[6] = 0x00;
//string positionStr = Convert.ToString(TargetPosition, 16);
//byte[] positionByte = SerialBean.StringToByte(positionStr);
//for (int i = 0; i < positionByte.Length; i++)
//{
// if (i >= 4)
// {
// break;
// }
// sendData[6 - (positionByte.Length - 1 - i)] = positionByte[i];
//}
//sendData = buildCheckData(sendData, 7);
//SendData(sendData);
}
public static void PositionClear(int slvAddr, byte setCMD)
{
byte[] sendData = WriteData(slvAddr, setCMD, 0x00, 0);
}
/// <summary>
/// 设置电机的速度
/// </summary>
/// <param name="slvAddr">电机地址</param>
/// <param name="setCMD">设置速度的命令号</param>
/// <param name="speedValue">速度值</param>
public static void SetSpeed(int slvAddr, byte setCMD, int speedValue)
{
if (speedValue < 0)
{
speedValue = 0 - speedValue;
}
byte[] sendData = WriteData(slvAddr, setCMD, 0x04, speedValue);
}
private static byte[] WriteData(int slvAddr, byte cmd, byte dataLength, int dataValue)
{
byte[] sendData = new byte[5 + dataLength];
sendData[0] = (byte)slvAddr;
sendData[1] = cmd;
sendData[2] = dataLength;
if (dataLength.Equals(0x00))
{
}
else if (dataLength.Equals(0x01))
{
sendData[3] = (byte)dataValue;
}
else if (dataLength.Equals(0x04))
{
sendData[3] = 0x00;
sendData[4] = 0x00;
sendData[5] = 0x00;
sendData[6] = 0x00;
string speed = Convert.ToString(dataValue, 16);
byte[] speedByte = SerialBean.StringToByte(speed);
for (int i = 0; i < speedByte.Length; i++)
{
if (i >= 4)
{
break;
}
sendData[6 - (speedByte.Length - 1 - i)] = speedByte[i];
}
}
sendData = buildCheckData(sendData, 3 + dataLength);
SendData(sendData);
return sendData;
}
private static byte[] buildCheckData(byte[] sendData, int length)
{
ushort pChecksum = 0;
SerialBean.CalculateCRC(sendData, length, out pChecksum);
string checkStr = Convert.ToString(pChecksum, 16);
byte[] checkByte = SerialBean.StringToByte(checkStr);
if (checkByte.Length == 1)
{
sendData[length] = checkByte[0];
sendData[length + 1] = 0x00;
}
else
{
sendData[length + 1] = checkByte[0];
sendData[length] = checkByte[1];
}
return sendData;
}
#endregion
public static void SetMoveSpeed(int ShuoKe_Slv, int speed)
{
SetSpeed(ShuoKe_Slv, ShuoKeCMD.SetAddSpeed, speed);
Thread.Sleep(100);
SetSpeed(ShuoKe_Slv, ShuoKeCMD.SetDelSpeed, speed);
Thread.Sleep(100);
SetSpeed(ShuoKe_Slv, ShuoKeCMD.SetEndSpeed, speed);
Thread.Sleep(100);
SetSpeed(ShuoKe_Slv, ShuoKeCMD.SetStartSpeed, speed);
Thread.Sleep(100);
SetSpeed(ShuoKe_Slv, ShuoKeCMD.SetMaxSpeed, speed);
Thread.Sleep(100);
}
public static void SendWire(int slv, double time, int speed)
{
ShuoKeControls.SetMoveSpeed(slv, speed);
int shuokeRel = (int)(time * speed);
if (shuokeRel > 0)
{
shuokeRel = 0 - shuokeRel;
}
ShuoKeControls.RelativeMove(slv, shuokeRel);
Thread.Sleep(100);
ShuoKeControls.GetStatus(slv);
}
}
public class ShuoKeCMD
{
/// <summary>
/// 设置运动初速度://SndHex:01 25 04 00 00 00 64 FC DE
/// </summary>
public static byte SetStartSpeed = 0x25;
/// <summary>
/// 设置运动最大速度://SndHex:01 27 04 00 00 27 10 E6 EB
/// </summary>
public static byte SetMaxSpeed = 0x27;
/// <summary>
/// 设置运动末速度://SndHex:01 29 04 00 00 03 E8 FD 47
/// </summary>
public static byte SetEndSpeed = 0x29;
/// <summary>
/// 设置运动加速度://SndHex:01 2B 04 00 00 13 88 F1 4D
/// </summary>
public static byte SetAddSpeed = 0x2B;
/// <summary>
/// 设置运动减速度://SndHex:01 2D 04 00 00 03 E8 FC C3
/// </summary>
public static byte SetDelSpeed = 0x2D;
/// <summary>
/// 设置归零运动速度://SndHex:01 2F 04 00 00 27 10 E7 A3
/// </summary>
public static byte SetHomeSpeed = 0x2F;
/// <summary>
/// //查找原点命令:
//SndHex:01 3E 01 00 61 84
/// </summary>
public static byte HomeMove = 0x3E;
/// <summary>
/// 绝对位置运动//SndHex:01 50 04 FF FF D8 F0 AC 30
/// </summary>
public static byte AbsMove = 0x50;
/// <summary>
/// 急停命令://SndHex:01 3C 00 31 00
/// </summary>
public static byte SuddownStopMove = 0x3C;
/// <summary>
/// 减速停止命令://SndHex:01 3D 00 30 90
/// </summary>
public static byte DStopMove = 0x3D;
/// <summary>
/// 绝对位置清零: //SndHex:01 38 00 33 C0
/// </summary>
public static byte AbsPositionClear = 0x38;
/// <summary>
/// 相对位置清零: //SndHex:01 3A 00 32 A0
/// </summary>
public static byte RelPositionClear = 0x3A;
/// <summary>
/// 查询运动状态://SndHex:01 3B 00 33 30
/// </summary>
public static byte SearchMoveStatus = 0x3B;
/// <summary>
//查询设备地址://SndHex:00 21 00 69 90
/// </summary>
public static byte SearchSlvAddr = 0x21;
/// <summary>
/// 设置32位运动速度,并恒速运动:SndHex:01 33 04 00 00 27 10 E5 FF
/// </summary>
public static byte VolMove = 0x33;
/// <summary>
/// 查询绝对位置
/// </summary>
public static byte GetAbsPosition = 0x37;
/// <summary>
/// 相对位置运动
/// </summary>
public static byte RelativeMove = 0x32;
}
public class ShuoKeInfo
{
public ShuoKeInfo(int ismove, int slv, int ll, int org, int rl, int en)
{
this.IsInMove = ismove;
this.SlvAddr = slv;
this.LLimit = ll;
this.RLimit = rl;
this.Org = org;
this.En = en;
UpdateTime = DateTime.Now;
}
/// <summary>
/// 驱动器地址
/// </summary>
public int SlvAddr { get; set; }
/// <summary>
/// 是否在运动中
/// </summary>
public int IsInMove { get; set; }
/// <summary>
/// 左极限
/// </summary>
public int LLimit { get; set; }
/// <summary>
/// 右极限
/// </summary>
public int RLimit { get; set; }
/// <summary>
/// 原点信号是否有效
/// </summary>
public int Org { get; set; }
/// <summary>
/// 使能是否有效
/// </summary>
public int En { get; set; }
public DateTime UpdateTime { get; set; }
}
}
namespace URSoldering.Client
{
partial class FrmAutoAddBoard
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAutoAddBoard));
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.保存焊点ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.移动到此处ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.picYDel = new System.Windows.Forms.PictureBox();
this.picYAdd = new System.Windows.Forms.PictureBox();
this.picXAdd = new System.Windows.Forms.PictureBox();
this.picXDel = new System.Windows.Forms.PictureBox();
this.picZDel = new System.Windows.Forms.PictureBox();
this.picUDel = new System.Windows.Forms.PictureBox();
this.picZAdd = new System.Windows.Forms.PictureBox();
this.picUAdd = new System.Windows.Forms.PictureBox();
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.更新坐标ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.测试位置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.详情ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.删除ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.上升ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.下降ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.panel1 = new System.Windows.Forms.Panel();
this.lblaoiMsg = new System.Windows.Forms.Label();
this.panPoint = new System.Windows.Forms.Panel();
this.panVideo = new System.Windows.Forms.Panel();
this.axCKVisionCtrl1 = new AxCKVisionCtrlLib.AxCKVisionCtrl();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.panel3 = new System.Windows.Forms.Panel();
this.btnPositionTest = new System.Windows.Forms.Button();
this.lblEpsonError = new System.Windows.Forms.Label();
this.lblMsg = new System.Windows.Forms.Label();
this.cmbHand = new System.Windows.Forms.ComboBox();
this.btnSavePoint = new System.Windows.Forms.Button();
this.btnStopDown = new System.Windows.Forms.Button();
this.btnGoHome = new System.Windows.Forms.Button();
this.label23 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.txtRobotZ = new System.Windows.Forms.Label();
this.label13 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.txtSpeed = new System.Windows.Forms.TextBox();
this.lblSpeed = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.btnStopSend = new System.Windows.Forms.Button();
this.btnSendWire = new System.Windows.Forms.Button();
this.tckSpeed = new System.Windows.Forms.TrackBar();
this.txtRobotU = new System.Windows.Forms.Label();
this.txtRobotY = new System.Windows.Forms.Label();
this.btnWUp = new System.Windows.Forms.Button();
this.txtRobotX = new System.Windows.Forms.Label();
this.btnChange = new System.Windows.Forms.Button();
this.label12 = new System.Windows.Forms.Label();
this.label25 = new System.Windows.Forms.Label();
this.label24 = new System.Windows.Forms.Label();
this.dgvList = new System.Windows.Forms.DataGridView();
this.Column_pointNum = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_X = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Y = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Z = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_U = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_preheatTemperature = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_preheatTemperatureMax = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_preheatTemperatureMin = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_preheatTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_weldTemperature = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_weldTemperatureMax = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_weldTemperatureMin = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_weldTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_startSendWireSpeed = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_startSendWireTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_sendWireSpeed = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_sendWireTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_pointType = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_isClear = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Column_HandDirection = new System.Windows.Forms.DataGridViewComboBoxColumn();
this.Column_ClearTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_getPosition = new System.Windows.Forms.DataGridViewLinkColumn();
this.Column_MoveTest = new System.Windows.Forms.DataGridViewLinkColumn();
this.Column_btnDetail = new System.Windows.Forms.DataGridViewLinkColumn();
this.Column_Del = new System.Windows.Forms.DataGridViewLinkColumn();
this.Column_Up = new System.Windows.Forms.DataGridViewImageColumn();
this.Column_Down = new System.Windows.Forms.DataGridViewImageColumn();
this.txtBoardLength = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.txtCode = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.txtRobotZHighValue = new System.Windows.Forms.TextBox();
this.label9 = new System.Windows.Forms.Label();
this.txtBoardName = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.btnSave = new System.Windows.Forms.Button();
this.txtBoardWidth = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.btnOpenFile = new System.Windows.Forms.Button();
this.btnSStop = new System.Windows.Forms.Button();
this.btnWStop = new System.Windows.Forms.Button();
this.label14 = new System.Windows.Forms.Label();
this.dataGridViewImageColumn1 = new System.Windows.Forms.DataGridViewImageColumn();
this.dataGridViewImageColumn2 = new System.Windows.Forms.DataGridViewImageColumn();
this.contextMenuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.picYDel)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picYAdd)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picXAdd)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picXDel)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picZDel)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picUDel)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picZAdd)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picUAdd)).BeginInit();
this.contextMenuStrip2.SuspendLayout();
this.panel1.SuspendLayout();
this.panVideo.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.axCKVisionCtrl1)).BeginInit();
this.groupBox2.SuspendLayout();
this.panel3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.tckSpeed)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvList)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.保存焊点ToolStripMenuItem,
this.移动到此处ToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(137, 48);
//
// 保存焊点ToolStripMenuItem
//
this.保存焊点ToolStripMenuItem.Name = "保存焊点ToolStripMenuItem";
this.保存焊点ToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.保存焊点ToolStripMenuItem.Text = "新增焊点";
this.保存焊点ToolStripMenuItem.Click += new System.EventHandler(this.保存焊点ToolStripMenuItem_Click);
//
// 移动到此处ToolStripMenuItem
//
this.移动到此处ToolStripMenuItem.Name = "移动到此处ToolStripMenuItem";
this.移动到此处ToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.移动到此处ToolStripMenuItem.Text = "移动到此处";
this.移动到此处ToolStripMenuItem.Click += new System.EventHandler(this.移动到此处ToolStripMenuItem_Click);
//
// openFileDialog1
//
this.openFileDialog1.FileName = "openFileDialog1";
//
// picYDel
//
this.picYDel.BackColor = System.Drawing.Color.Transparent;
this.picYDel.Image = ((System.Drawing.Image)(resources.GetObject("picYDel.Image")));
this.picYDel.Location = new System.Drawing.Point(204, 51);
this.picYDel.Name = "picYDel";
this.picYDel.Size = new System.Drawing.Size(45, 45);
this.picYDel.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picYDel.TabIndex = 326;
this.picYDel.TabStop = false;
this.toolTip1.SetToolTip(this.picYDel, "向右");
this.picYDel.Click += new System.EventHandler(this.btnYDel_Click);
//
// picYAdd
//
this.picYAdd.BackColor = System.Drawing.Color.Transparent;
this.picYAdd.Image = ((System.Drawing.Image)(resources.GetObject("picYAdd.Image")));
this.picYAdd.Location = new System.Drawing.Point(126, 51);
this.picYAdd.Name = "picYAdd";
this.picYAdd.Size = new System.Drawing.Size(45, 45);
this.picYAdd.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picYAdd.TabIndex = 323;
this.picYAdd.TabStop = false;
this.toolTip1.SetToolTip(this.picYAdd, "向左");
this.picYAdd.Click += new System.EventHandler(this.btnYAdd_Click);
//
// picXAdd
//
this.picXAdd.BackColor = System.Drawing.Color.Transparent;
this.picXAdd.Image = ((System.Drawing.Image)(resources.GetObject("picXAdd.Image")));
this.picXAdd.Location = new System.Drawing.Point(164, 11);
this.picXAdd.Name = "picXAdd";
this.picXAdd.Size = new System.Drawing.Size(45, 45);
this.picXAdd.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picXAdd.TabIndex = 325;
this.picXAdd.TabStop = false;
this.toolTip1.SetToolTip(this.picXAdd, "向前");
this.picXAdd.Click += new System.EventHandler(this.btnXAdd_Click);
//
// picXDel
//
this.picXDel.BackColor = System.Drawing.Color.Transparent;
this.picXDel.Image = ((System.Drawing.Image)(resources.GetObject("picXDel.Image")));
this.picXDel.Location = new System.Drawing.Point(164, 91);
this.picXDel.Name = "picXDel";
this.picXDel.Size = new System.Drawing.Size(45, 45);
this.picXDel.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picXDel.TabIndex = 324;
this.picXDel.TabStop = false;
this.toolTip1.SetToolTip(this.picXDel, "向后");
this.picXDel.Click += new System.EventHandler(this.btnXDel_Click);
//
// picZDel
//
this.picZDel.BackColor = System.Drawing.Color.Transparent;
this.picZDel.Image = ((System.Drawing.Image)(resources.GetObject("picZDel.Image")));
this.picZDel.Location = new System.Drawing.Point(55, 94);
this.picZDel.Name = "picZDel";
this.picZDel.Size = new System.Drawing.Size(45, 45);
this.picZDel.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picZDel.TabIndex = 322;
this.picZDel.TabStop = false;
this.toolTip1.SetToolTip(this.picZDel, "向下");
this.picZDel.Click += new System.EventHandler(this.btnZDel_Click);
//
// picUDel
//
this.picUDel.BackColor = System.Drawing.Color.Transparent;
this.picUDel.Image = ((System.Drawing.Image)(resources.GetObject("picUDel.Image")));
this.picUDel.Location = new System.Drawing.Point(76, 3);
this.picUDel.Name = "picUDel";
this.picUDel.Size = new System.Drawing.Size(45, 45);
this.picUDel.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picUDel.TabIndex = 321;
this.picUDel.TabStop = false;
this.toolTip1.SetToolTip(this.picUDel, "逆时针旋转");
this.picUDel.Click += new System.EventHandler(this.btnUDel_Click);
//
// picZAdd
//
this.picZAdd.BackColor = System.Drawing.Color.Transparent;
this.picZAdd.Image = ((System.Drawing.Image)(resources.GetObject("picZAdd.Image")));
this.picZAdd.Location = new System.Drawing.Point(55, 49);
this.picZAdd.Name = "picZAdd";
this.picZAdd.Size = new System.Drawing.Size(45, 45);
this.picZAdd.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picZAdd.TabIndex = 320;
this.picZAdd.TabStop = false;
this.toolTip1.SetToolTip(this.picZAdd, "向上");
this.picZAdd.Click += new System.EventHandler(this.btnZAdd_Click);
//
// picUAdd
//
this.picUAdd.BackColor = System.Drawing.Color.Transparent;
this.picUAdd.Image = ((System.Drawing.Image)(resources.GetObject("picUAdd.Image")));
this.picUAdd.Location = new System.Drawing.Point(30, 3);
this.picUAdd.Name = "picUAdd";
this.picUAdd.Size = new System.Drawing.Size(45, 45);
this.picUAdd.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picUAdd.TabIndex = 319;
this.picUAdd.TabStop = false;
this.toolTip1.SetToolTip(this.picUAdd, "顺时针旋转");
this.picUAdd.Click += new System.EventHandler(this.btnUAdd_Click);
//
// contextMenuStrip2
//
this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.更新坐标ToolStripMenuItem,
this.测试位置ToolStripMenuItem,
this.详情ToolStripMenuItem,
this.删除ToolStripMenuItem,
this.上升ToolStripMenuItem,
this.下降ToolStripMenuItem});
this.contextMenuStrip2.Name = "contextMenuStrip2";
this.contextMenuStrip2.Size = new System.Drawing.Size(125, 136);
//
// 更新坐标ToolStripMenuItem
//
this.更新坐标ToolStripMenuItem.Name = "更新坐标ToolStripMenuItem";
this.更新坐标ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.更新坐标ToolStripMenuItem.Text = "更新坐标";
this.更新坐标ToolStripMenuItem.Click += new System.EventHandler(this.更新坐标ToolStripMenuItem_Click);
//
// 测试位置ToolStripMenuItem
//
this.测试位置ToolStripMenuItem.Name = "测试位置ToolStripMenuItem";
this.测试位置ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.测试位置ToolStripMenuItem.Text = "测试位置";
this.测试位置ToolStripMenuItem.Click += new System.EventHandler(this.测试位置ToolStripMenuItem_Click);
//
// 详情ToolStripMenuItem
//
this.详情ToolStripMenuItem.Name = "详情ToolStripMenuItem";
this.详情ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.详情ToolStripMenuItem.Text = "详情";
this.详情ToolStripMenuItem.Click += new System.EventHandler(this.详情ToolStripMenuItem_Click);
//
// 删除ToolStripMenuItem
//
this.删除ToolStripMenuItem.Name = "删除ToolStripMenuItem";
this.删除ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.删除ToolStripMenuItem.Text = "删除";
this.删除ToolStripMenuItem.Click += new System.EventHandler(this.删除ToolStripMenuItem_Click);
//
// 上升ToolStripMenuItem
//
this.上升ToolStripMenuItem.Name = "上升ToolStripMenuItem";
this.上升ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.上升ToolStripMenuItem.Text = "上升";
this.上升ToolStripMenuItem.Click += new System.EventHandler(this.上升ToolStripMenuItem_Click);
//
// 下降ToolStripMenuItem
//
this.下降ToolStripMenuItem.Name = "下降ToolStripMenuItem";
this.下降ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.下降ToolStripMenuItem.Text = "下降";
this.下降ToolStripMenuItem.Click += new System.EventHandler(this.下降ToolStripMenuItem_Click);
//
// panel1
//
this.panel1.AutoScroll = true;
this.panel1.Controls.Add(this.lblaoiMsg);
this.panel1.Controls.Add(this.panPoint);
this.panel1.Controls.Add(this.panVideo);
this.panel1.Controls.Add(this.groupBox2);
this.panel1.Controls.Add(this.label25);
this.panel1.Controls.Add(this.label24);
this.panel1.Controls.Add(this.dgvList);
this.panel1.Controls.Add(this.txtBoardLength);
this.panel1.Controls.Add(this.groupBox1);
this.panel1.Controls.Add(this.txtBoardWidth);
this.panel1.Controls.Add(this.label3);
this.panel1.Controls.Add(this.label4);
this.panel1.Controls.Add(this.btnOpenFile);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(1514, 634);
this.panel1.TabIndex = 0;
//
// lblaoiMsg
//
this.lblaoiMsg.AutoSize = true;
this.lblaoiMsg.Location = new System.Drawing.Point(902, 75);
this.lblaoiMsg.Name = "lblaoiMsg";
this.lblaoiMsg.Size = new System.Drawing.Size(326, 17);
this.lblaoiMsg.TabIndex = 322;
this.lblaoiMsg.Text = "请将电路板放好后,点击 \"智能检测焊点\" 按钮执行焊点检测";
//
// panPoint
//
this.panPoint.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.panPoint.Location = new System.Drawing.Point(12, 345);
this.panPoint.Name = "panPoint";
this.panPoint.Size = new System.Drawing.Size(869, 278);
this.panPoint.TabIndex = 321;
//
// panVideo
//
this.panVideo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panVideo.Controls.Add(this.axCKVisionCtrl1);
this.panVideo.Location = new System.Drawing.Point(898, 98);
this.panVideo.Name = "panVideo";
this.panVideo.Size = new System.Drawing.Size(607, 525);
this.panVideo.TabIndex = 320;
//
// axCKVisionCtrl1
//
this.axCKVisionCtrl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.axCKVisionCtrl1.Enabled = true;
this.axCKVisionCtrl1.Location = new System.Drawing.Point(3, 3);
this.axCKVisionCtrl1.Name = "axCKVisionCtrl1";
this.axCKVisionCtrl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axCKVisionCtrl1.OcxState")));
this.axCKVisionCtrl1.Size = new System.Drawing.Size(601, 521);
this.axCKVisionCtrl1.TabIndex = 307;
//
// groupBox2
//
this.groupBox2.Controls.Add(this.panel3);
this.groupBox2.Controls.Add(this.btnPositionTest);
this.groupBox2.Controls.Add(this.lblEpsonError);
this.groupBox2.Controls.Add(this.lblMsg);
this.groupBox2.Controls.Add(this.cmbHand);
this.groupBox2.Controls.Add(this.btnSavePoint);
this.groupBox2.Controls.Add(this.btnStopDown);
this.groupBox2.Controls.Add(this.btnGoHome);
this.groupBox2.Controls.Add(this.label23);
this.groupBox2.Controls.Add(this.label5);
this.groupBox2.Controls.Add(this.txtRobotZ);
this.groupBox2.Controls.Add(this.label13);
this.groupBox2.Controls.Add(this.label1);
this.groupBox2.Controls.Add(this.txtSpeed);
this.groupBox2.Controls.Add(this.lblSpeed);
this.groupBox2.Controls.Add(this.label11);
this.groupBox2.Controls.Add(this.btnStopSend);
this.groupBox2.Controls.Add(this.btnSendWire);
this.groupBox2.Controls.Add(this.tckSpeed);
this.groupBox2.Controls.Add(this.txtRobotU);
this.groupBox2.Controls.Add(this.txtRobotY);
this.groupBox2.Controls.Add(this.btnWUp);
this.groupBox2.Controls.Add(this.txtRobotX);
this.groupBox2.Controls.Add(this.btnChange);
this.groupBox2.Controls.Add(this.label12);
this.groupBox2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox2.Location = new System.Drawing.Point(12, 85);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(869, 209);
this.groupBox2.TabIndex = 22;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "机器人实时坐标";
//
// panel3
//
this.panel3.BackColor = System.Drawing.SystemColors.Control;
this.panel3.Controls.Add(this.picYDel);
this.panel3.Controls.Add(this.picYAdd);
this.panel3.Controls.Add(this.picXAdd);
this.panel3.Controls.Add(this.picXDel);
this.panel3.Controls.Add(this.picZDel);
this.panel3.Controls.Add(this.picUDel);
this.panel3.Controls.Add(this.picZAdd);
this.panel3.Controls.Add(this.picUAdd);
this.panel3.Location = new System.Drawing.Point(246, 48);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(287, 146);
this.panel3.TabIndex = 259;
//
// btnPositionTest
//
this.btnPositionTest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnPositionTest.FlatAppearance.BorderSize = 0;
this.btnPositionTest.Location = new System.Drawing.Point(564, 153);
this.btnPositionTest.Name = "btnPositionTest";
this.btnPositionTest.Size = new System.Drawing.Size(100, 35);
this.btnPositionTest.TabIndex = 318;
this.btnPositionTest.Text = "测试位置";
this.btnPositionTest.UseVisualStyleBackColor = true;
this.btnPositionTest.Click += new System.EventHandler(this.btnPositionTest_Click);
//
// lblEpsonError
//
this.lblEpsonError.AutoSize = true;
this.lblEpsonError.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblEpsonError.ForeColor = System.Drawing.Color.Red;
this.lblEpsonError.Location = new System.Drawing.Point(332, 144);
this.lblEpsonError.Name = "lblEpsonError";
this.lblEpsonError.Size = new System.Drawing.Size(0, 19);
this.lblEpsonError.TabIndex = 262;
//
// lblMsg
//
this.lblMsg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblMsg.AutoSize = true;
this.lblMsg.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblMsg.ForeColor = System.Drawing.Color.Red;
this.lblMsg.Location = new System.Drawing.Point(698, 115);
this.lblMsg.Name = "lblMsg";
this.lblMsg.Size = new System.Drawing.Size(65, 19);
this.lblMsg.TabIndex = 260;
this.lblMsg.Text = "急停未开";
//
// cmbHand
//
this.cmbHand.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbHand.FormattingEnabled = true;
this.cmbHand.Items.AddRange(new object[] {
"右臂",
"左臂"});
this.cmbHand.Location = new System.Drawing.Point(76, 106);
this.cmbHand.Name = "cmbHand";
this.cmbHand.Size = new System.Drawing.Size(70, 25);
this.cmbHand.TabIndex = 38;
//
// btnSavePoint
//
this.btnSavePoint.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSavePoint.FlatAppearance.BorderSize = 0;
this.btnSavePoint.Location = new System.Drawing.Point(769, 115);
this.btnSavePoint.Name = "btnSavePoint";
this.btnSavePoint.Size = new System.Drawing.Size(68, 32);
this.btnSavePoint.TabIndex = 30;
this.btnSavePoint.Text = "新增焊点(&N)";
this.btnSavePoint.UseVisualStyleBackColor = true;
this.btnSavePoint.Visible = false;
this.btnSavePoint.Click += new System.EventHandler(this.btnSavePoint_Click);
//
// btnStopDown
//
this.btnStopDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStopDown.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnStopDown.Location = new System.Drawing.Point(564, 65);
this.btnStopDown.Name = "btnStopDown";
this.btnStopDown.Size = new System.Drawing.Size(100, 35);
this.btnStopDown.TabIndex = 317;
this.btnStopDown.Text = "阻挡气缸上升";
this.btnStopDown.UseVisualStyleBackColor = true;
this.btnStopDown.Click += new System.EventHandler(this.btnStopDown_Click);
//
// btnGoHome
//
this.btnGoHome.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnGoHome.FlatAppearance.BorderSize = 0;
this.btnGoHome.Location = new System.Drawing.Point(564, 109);
this.btnGoHome.Name = "btnGoHome";
this.btnGoHome.Size = new System.Drawing.Size(100, 35);
this.btnGoHome.TabIndex = 35;
this.btnGoHome.Text = "回原点";
this.btnGoHome.UseVisualStyleBackColor = true;
this.btnGoHome.Click += new System.EventHandler(this.btnGoHome_Click);
//
// label23
//
this.label23.AutoSize = true;
this.label23.Location = new System.Drawing.Point(35, 111);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(35, 17);
this.label23.TabIndex = 37;
this.label23.Text = "手臂:";
//
// label5
//
this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label5.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label5.Location = new System.Drawing.Point(696, 34);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(97, 17);
this.label5.TabIndex = 276;
this.label5.Text = "送丝速度/毫米:";
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// txtRobotZ
//
this.txtRobotZ.AutoSize = true;
this.txtRobotZ.Location = new System.Drawing.Point(41, 69);
this.txtRobotZ.Name = "txtRobotZ";
this.txtRobotZ.Size = new System.Drawing.Size(15, 17);
this.txtRobotZ.TabIndex = 26;
this.txtRobotZ.Text = "0";
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(17, 69);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(27, 17);
this.label13.TabIndex = 7;
this.label13.Text = "Z:";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(15, 33);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(28, 17);
this.label1.TabIndex = 1;
this.label1.Text = "X:";
//
// txtSpeed
//
this.txtSpeed.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.txtSpeed.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtSpeed.Location = new System.Drawing.Point(797, 31);
this.txtSpeed.MaxLength = 10;
this.txtSpeed.Name = "txtSpeed";
this.txtSpeed.Size = new System.Drawing.Size(40, 23);
this.txtSpeed.TabIndex = 275;
this.txtSpeed.Text = "3";
//
// lblSpeed
//
this.lblSpeed.AutoSize = true;
this.lblSpeed.Location = new System.Drawing.Point(15, 181);
this.lblSpeed.Name = "lblSpeed";
this.lblSpeed.Size = new System.Drawing.Size(95, 17);
this.lblSpeed.TabIndex = 315;
this.lblSpeed.Text = "步进值:0.5mm";
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(113, 69);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(29, 17);
this.label11.TabIndex = 5;
this.label11.Text = "U:";
//
// btnStopSend
//
this.btnStopSend.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStopSend.Enabled = false;
this.btnStopSend.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnStopSend.Location = new System.Drawing.Point(769, 66);
this.btnStopSend.Name = "btnStopSend";
this.btnStopSend.Size = new System.Drawing.Size(71, 34);
this.btnStopSend.TabIndex = 274;
this.btnStopSend.Text = "停止送丝";
this.btnStopSend.UseVisualStyleBackColor = true;
this.btnStopSend.Click += new System.EventHandler(this.btnStopSend_Click);
//
// btnSendWire
//
this.btnSendWire.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSendWire.Enabled = false;
this.btnSendWire.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSendWire.Location = new System.Drawing.Point(695, 66);
this.btnSendWire.Name = "btnSendWire";
this.btnSendWire.Size = new System.Drawing.Size(71, 34);
this.btnSendWire.TabIndex = 273;
this.btnSendWire.Text = "开始送丝";
this.btnSendWire.UseVisualStyleBackColor = true;
this.btnSendWire.Click += new System.EventHandler(this.btnSendWire_Click);
//
// tckSpeed
//
this.tckSpeed.Location = new System.Drawing.Point(12, 141);
this.tckSpeed.Maximum = 4;
this.tckSpeed.Minimum = 1;
this.tckSpeed.Name = "tckSpeed";
this.tckSpeed.Size = new System.Drawing.Size(214, 45);
this.tckSpeed.TabIndex = 314;
this.tckSpeed.Value = 3;
this.tckSpeed.ValueChanged += new System.EventHandler(this.tckSpeed_ValueChanged);
//
// txtRobotU
//
this.txtRobotU.AutoSize = true;
this.txtRobotU.Location = new System.Drawing.Point(139, 69);
this.txtRobotU.Name = "txtRobotU";
this.txtRobotU.Size = new System.Drawing.Size(15, 17);
this.txtRobotU.TabIndex = 24;
this.txtRobotU.Text = "0";
//
// txtRobotY
//
this.txtRobotY.AutoSize = true;
this.txtRobotY.Location = new System.Drawing.Point(139, 33);
this.txtRobotY.Name = "txtRobotY";
this.txtRobotY.Size = new System.Drawing.Size(15, 17);
this.txtRobotY.TabIndex = 22;
this.txtRobotY.Text = "0";
//
// btnWUp
//
this.btnWUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnWUp.Enabled = false;
this.btnWUp.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnWUp.Location = new System.Drawing.Point(564, 21);
this.btnWUp.Name = "btnWUp";
this.btnWUp.Size = new System.Drawing.Size(100, 35);
this.btnWUp.TabIndex = 254;
this.btnWUp.Text = "送丝上升";
this.btnWUp.UseVisualStyleBackColor = true;
this.btnWUp.Click += new System.EventHandler(this.btnWUp_Click);
//
// txtRobotX
//
this.txtRobotX.AutoSize = true;
this.txtRobotX.Location = new System.Drawing.Point(41, 33);
this.txtRobotX.Name = "txtRobotX";
this.txtRobotX.Size = new System.Drawing.Size(15, 17);
this.txtRobotX.TabIndex = 20;
this.txtRobotX.Text = "0";
//
// btnChange
//
this.btnChange.FlatAppearance.BorderSize = 0;
this.btnChange.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnChange.Location = new System.Drawing.Point(246, 13);
this.btnChange.Name = "btnChange";
this.btnChange.Size = new System.Drawing.Size(287, 32);
this.btnChange.TabIndex = 31;
this.btnChange.Text = "切换到自动模式(&M)";
this.btnChange.UseVisualStyleBackColor = true;
this.btnChange.Click += new System.EventHandler(this.btnChange_Click);
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(112, 33);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(27, 17);
this.label12.TabIndex = 3;
this.label12.Text = "Y:";
//
// label25
//
this.label25.AutoSize = true;
this.label25.Location = new System.Drawing.Point(1133, 34);
this.label25.Name = "label25";
this.label25.Size = new System.Drawing.Size(30, 17);
this.label25.TabIndex = 37;
this.label25.Text = "mm";
//
// label24
//
this.label24.AutoSize = true;
this.label24.Location = new System.Drawing.Point(1003, 34);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(30, 17);
this.label24.TabIndex = 36;
this.label24.Text = "mm";
//
// dgvList
//
this.dgvList.AllowDrop = true;
this.dgvList.AllowUserToAddRows = false;
this.dgvList.AllowUserToDeleteRows = false;
this.dgvList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.dgvList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvList.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column_pointNum,
this.Column_Name,
this.Column_X,
this.Column_Y,
this.Column_Z,
this.Column_U,
this.Column_preheatTemperature,
this.Column_preheatTemperatureMax,
this.Column_preheatTemperatureMin,
this.Column_preheatTime,
this.Column_weldTemperature,
this.Column_weldTemperatureMax,
this.Column_weldTemperatureMin,
this.Column_weldTime,
this.Column_startSendWireSpeed,
this.Column_startSendWireTime,
this.Column_sendWireSpeed,
this.Column_sendWireTime,
this.Column_pointType,
this.Column_isClear,
this.Column_HandDirection,
this.Column_ClearTime,
this.Column_getPosition,
this.Column_MoveTest,
this.Column_btnDetail,
this.Column_Del,
this.Column_Up,
this.Column_Down});
this.dgvList.ContextMenuStrip = this.contextMenuStrip2;
this.dgvList.Location = new System.Drawing.Point(12, 301);
this.dgvList.MultiSelect = false;
this.dgvList.Name = "dgvList";
this.dgvList.ReadOnly = true;
this.dgvList.RowHeadersWidth = 5;
this.dgvList.RowTemplate.Height = 23;
this.dgvList.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dgvList.Size = new System.Drawing.Size(869, 327);
this.dgvList.TabIndex = 31;
this.dgvList.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick);
this.dgvList.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dgvList_CellMouseDown);
this.dgvList.CellMouseMove += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dgvList_CellMouseMove);
this.dgvList.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvList_CellValueChanged);
this.dgvList.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dgvList_RowPostPaint);
this.dgvList.RowsAdded += new System.Windows.Forms.DataGridViewRowsAddedEventHandler(this.dgvList_RowsAdded);
this.dgvList.DragDrop += new System.Windows.Forms.DragEventHandler(this.dgvList_DragDrop);
this.dgvList.DragEnter += new System.Windows.Forms.DragEventHandler(this.dgvList_DragEnter);
//
// Column_pointNum
//
this.Column_pointNum.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
this.Column_pointNum.DataPropertyName = "pointNum";
this.Column_pointNum.HeaderText = "ID";
this.Column_pointNum.Name = "Column_pointNum";
this.Column_pointNum.ReadOnly = true;
this.Column_pointNum.Width = 46;
//
// Column_Name
//
this.Column_Name.DataPropertyName = "pointName";
this.Column_Name.HeaderText = "名称";
this.Column_Name.Name = "Column_Name";
this.Column_Name.ReadOnly = true;
this.Column_Name.Width = 120;
//
// Column_X
//
this.Column_X.DataPropertyName = "PositionX";
this.Column_X.HeaderText = "X";
this.Column_X.Name = "Column_X";
this.Column_X.ReadOnly = true;
this.Column_X.Visible = false;
this.Column_X.Width = 75;
//
// Column_Y
//
this.Column_Y.DataPropertyName = "PositionY";
this.Column_Y.HeaderText = "Y";
this.Column_Y.Name = "Column_Y";
this.Column_Y.ReadOnly = true;
this.Column_Y.Visible = false;
this.Column_Y.Width = 75;
//
// Column_Z
//
this.Column_Z.DataPropertyName = "PositionZ";
this.Column_Z.HeaderText = "Z";
this.Column_Z.Name = "Column_Z";
this.Column_Z.ReadOnly = true;
this.Column_Z.Visible = false;
this.Column_Z.Width = 75;
//
// Column_U
//
this.Column_U.DataPropertyName = "PositionU";
this.Column_U.HeaderText = "角度";
this.Column_U.Name = "Column_U";
this.Column_U.ReadOnly = true;
this.Column_U.Visible = false;
this.Column_U.Width = 75;
//
// Column_preheatTemperature
//
this.Column_preheatTemperature.DataPropertyName = "preheatTemperature";
this.Column_preheatTemperature.HeaderText = "预热温度";
this.Column_preheatTemperature.Name = "Column_preheatTemperature";
this.Column_preheatTemperature.ReadOnly = true;
this.Column_preheatTemperature.Width = 80;
//
// Column_preheatTemperatureMax
//
this.Column_preheatTemperatureMax.DataPropertyName = "preheatTemperatureMax";
this.Column_preheatTemperatureMax.HeaderText = "预热上限";
this.Column_preheatTemperatureMax.Name = "Column_preheatTemperatureMax";
this.Column_preheatTemperatureMax.ReadOnly = true;
this.Column_preheatTemperatureMax.Visible = false;
this.Column_preheatTemperatureMax.Width = 80;
//
// Column_preheatTemperatureMin
//
this.Column_preheatTemperatureMin.DataPropertyName = "preheatTemperatureMin";
this.Column_preheatTemperatureMin.HeaderText = "预热下限";
this.Column_preheatTemperatureMin.Name = "Column_preheatTemperatureMin";
this.Column_preheatTemperatureMin.ReadOnly = true;
this.Column_preheatTemperatureMin.Visible = false;
this.Column_preheatTemperatureMin.Width = 80;
//
// Column_preheatTime
//
this.Column_preheatTime.DataPropertyName = "preheatTime";
this.Column_preheatTime.HeaderText = "预热时间";
this.Column_preheatTime.Name = "Column_preheatTime";
this.Column_preheatTime.ReadOnly = true;
this.Column_preheatTime.Width = 80;
//
// Column_weldTemperature
//
this.Column_weldTemperature.DataPropertyName = "weldTemperature";
this.Column_weldTemperature.HeaderText = "焊接温度";
this.Column_weldTemperature.Name = "Column_weldTemperature";
this.Column_weldTemperature.ReadOnly = true;
this.Column_weldTemperature.Width = 80;
//
// Column_weldTemperatureMax
//
this.Column_weldTemperatureMax.DataPropertyName = "weldTemperatureMax";
this.Column_weldTemperatureMax.HeaderText = "焊接上限";
this.Column_weldTemperatureMax.Name = "Column_weldTemperatureMax";
this.Column_weldTemperatureMax.ReadOnly = true;
this.Column_weldTemperatureMax.Visible = false;
this.Column_weldTemperatureMax.Width = 80;
//
// Column_weldTemperatureMin
//
this.Column_weldTemperatureMin.DataPropertyName = "weldTemperatureMin";
this.Column_weldTemperatureMin.HeaderText = "焊接下限";
this.Column_weldTemperatureMin.Name = "Column_weldTemperatureMin";
this.Column_weldTemperatureMin.ReadOnly = true;
this.Column_weldTemperatureMin.Visible = false;
this.Column_weldTemperatureMin.Width = 80;
//
// Column_weldTime
//
this.Column_weldTime.DataPropertyName = "weldTime";
this.Column_weldTime.HeaderText = "焊接时间";
this.Column_weldTime.Name = "Column_weldTime";
this.Column_weldTime.ReadOnly = true;
this.Column_weldTime.Width = 80;
//
// Column_startSendWireSpeed
//
this.Column_startSendWireSpeed.DataPropertyName = "startSendWireSpeed";
this.Column_startSendWireSpeed.HeaderText = "起始送丝速度";
this.Column_startSendWireSpeed.Name = "Column_startSendWireSpeed";
this.Column_startSendWireSpeed.ReadOnly = true;
this.Column_startSendWireSpeed.Visible = false;
this.Column_startSendWireSpeed.Width = 120;
//
// Column_startSendWireTime
//
this.Column_startSendWireTime.DataPropertyName = "startSendWireTime";
this.Column_startSendWireTime.HeaderText = "起始送丝时间";
this.Column_startSendWireTime.Name = "Column_startSendWireTime";
this.Column_startSendWireTime.ReadOnly = true;
this.Column_startSendWireTime.Visible = false;
//
// Column_sendWireSpeed
//
this.Column_sendWireSpeed.DataPropertyName = "sendWireSpeed";
this.Column_sendWireSpeed.HeaderText = "送丝速度";
this.Column_sendWireSpeed.Name = "Column_sendWireSpeed";
this.Column_sendWireSpeed.ReadOnly = true;
this.Column_sendWireSpeed.Width = 80;
//
// Column_sendWireTime
//
this.Column_sendWireTime.DataPropertyName = "sendWireTime";
this.Column_sendWireTime.HeaderText = "送丝时间";
this.Column_sendWireTime.Name = "Column_sendWireTime";
this.Column_sendWireTime.ReadOnly = true;
this.Column_sendWireTime.Visible = false;
this.Column_sendWireTime.Width = 80;
//
// Column_pointType
//
this.Column_pointType.DataPropertyName = "pointType";
this.Column_pointType.HeaderText = "焊点类型";
this.Column_pointType.Name = "Column_pointType";
this.Column_pointType.ReadOnly = true;
this.Column_pointType.Visible = false;
//
// Column_isClear
//
this.Column_isClear.DataPropertyName = "isNeedClear";
this.Column_isClear.HeaderText = "是否清洗";
this.Column_isClear.Name = "Column_isClear";
this.Column_isClear.ReadOnly = true;
this.Column_isClear.Visible = false;
//
// Column_HandDirection
//
this.Column_HandDirection.DataPropertyName = "HandDirection";
this.Column_HandDirection.HeaderText = "方向";
this.Column_HandDirection.Name = "Column_HandDirection";
this.Column_HandDirection.ReadOnly = true;
this.Column_HandDirection.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.Column_HandDirection.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.Column_HandDirection.Visible = false;
this.Column_HandDirection.Width = 80;
//
// Column_ClearTime
//
this.Column_ClearTime.DataPropertyName = "ClearTime";
this.Column_ClearTime.HeaderText = "清洗时间";
this.Column_ClearTime.Name = "Column_ClearTime";
this.Column_ClearTime.ReadOnly = true;
this.Column_ClearTime.Visible = false;
//
// Column_getPosition
//
this.Column_getPosition.HeaderText = "更新坐标";
this.Column_getPosition.Name = "Column_getPosition";
this.Column_getPosition.ReadOnly = true;
this.Column_getPosition.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.Column_getPosition.Text = "更新坐标";
this.Column_getPosition.ToolTipText = "更新坐标";
this.Column_getPosition.UseColumnTextForLinkValue = true;
this.Column_getPosition.Width = 75;
//
// Column_MoveTest
//
this.Column_MoveTest.HeaderText = "测试位置";
this.Column_MoveTest.Name = "Column_MoveTest";
this.Column_MoveTest.ReadOnly = true;
this.Column_MoveTest.Text = "测试位置";
this.Column_MoveTest.ToolTipText = "测试位置";
this.Column_MoveTest.UseColumnTextForLinkValue = true;
this.Column_MoveTest.Visible = false;
this.Column_MoveTest.Width = 80;
//
// Column_btnDetail
//
this.Column_btnDetail.FillWeight = 60F;
this.Column_btnDetail.HeaderText = "详情";
this.Column_btnDetail.Name = "Column_btnDetail";
this.Column_btnDetail.ReadOnly = true;
this.Column_btnDetail.Text = "详情";
this.Column_btnDetail.UseColumnTextForLinkValue = true;
this.Column_btnDetail.Width = 55;
//
// Column_Del
//
this.Column_Del.FillWeight = 60F;
this.Column_Del.HeaderText = "删除";
this.Column_Del.Name = "Column_Del";
this.Column_Del.ReadOnly = true;
this.Column_Del.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.Column_Del.Text = "删除";
this.Column_Del.ToolTipText = "删除";
this.Column_Del.UseColumnTextForLinkValue = true;
this.Column_Del.Width = 55;
//
// Column_Up
//
this.Column_Up.HeaderText = "上升";
this.Column_Up.Image = ((System.Drawing.Image)(resources.GetObject("Column_Up.Image")));
this.Column_Up.Name = "Column_Up";
this.Column_Up.ReadOnly = true;
this.Column_Up.Visible = false;
this.Column_Up.Width = 50;
//
// Column_Down
//
this.Column_Down.HeaderText = "下降";
this.Column_Down.Image = ((System.Drawing.Image)(resources.GetObject("Column_Down.Image")));
this.Column_Down.Name = "Column_Down";
this.Column_Down.ReadOnly = true;
this.Column_Down.Visible = false;
this.Column_Down.Width = 50;
//
// txtBoardLength
//
this.txtBoardLength.Location = new System.Drawing.Point(945, 31);
this.txtBoardLength.MaxLength = 8;
this.txtBoardLength.Name = "txtBoardLength";
this.txtBoardLength.Size = new System.Drawing.Size(53, 23);
this.txtBoardLength.TabIndex = 4;
this.txtBoardLength.TextChanged += new System.EventHandler(this.txtBoardLength_TextChanged);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.txtCode);
this.groupBox1.Controls.Add(this.label10);
this.groupBox1.Controls.Add(this.txtRobotZHighValue);
this.groupBox1.Controls.Add(this.label9);
this.groupBox1.Controls.Add(this.txtBoardName);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.btnSave);
this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(12, 11);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(869, 68);
this.groupBox1.TabIndex = 20;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "程序基本信息";
//
// txtCode
//
this.txtCode.Location = new System.Drawing.Point(295, 25);
this.txtCode.Name = "txtCode";
this.txtCode.Size = new System.Drawing.Size(155, 23);
this.txtCode.TabIndex = 268;
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(255, 28);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(32, 17);
this.label10.TabIndex = 267;
this.label10.Text = "条码";
//
// txtRobotZHighValue
//
this.txtRobotZHighValue.Location = new System.Drawing.Point(543, 26);
this.txtRobotZHighValue.Name = "txtRobotZHighValue";
this.txtRobotZHighValue.Size = new System.Drawing.Size(62, 23);
this.txtRobotZHighValue.TabIndex = 266;
this.txtRobotZHighValue.Text = "-20";
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(486, 28);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(51, 17);
this.label9.TabIndex = 265;
this.label9.Text = "高位Z轴";
//
// txtBoardName
//
this.txtBoardName.Location = new System.Drawing.Point(46, 25);
this.txtBoardName.MaxLength = 20;
this.txtBoardName.Name = "txtBoardName";
this.txtBoardName.Size = new System.Drawing.Size(180, 23);
this.txtBoardName.TabIndex = 2;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(9, 28);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(32, 17);
this.label2.TabIndex = 1;
this.label2.Text = "名称";
//
// btnSave
//
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSave.FlatAppearance.BorderSize = 0;
this.btnSave.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSave.Location = new System.Drawing.Point(746, 16);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(117, 41);
this.btnSave.TabIndex = 40;
this.btnSave.Text = "保存";
this.btnSave.UseVisualStyleBackColor = true;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
//
// txtBoardWidth
//
this.txtBoardWidth.Location = new System.Drawing.Point(1075, 31);
this.txtBoardWidth.MaxLength = 8;
this.txtBoardWidth.Name = "txtBoardWidth";
this.txtBoardWidth.Size = new System.Drawing.Size(53, 23);
this.txtBoardWidth.TabIndex = 6;
this.txtBoardWidth.TextChanged += new System.EventHandler(this.txtBoardWidth_TextChanged);
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(919, 34);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(20, 17);
this.label3.TabIndex = 3;
this.label3.Text = "高";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(1053, 34);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(20, 17);
this.label4.TabIndex = 5;
this.label4.Text = "宽";
//
// btnOpenFile
//
this.btnOpenFile.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnOpenFile.FlatAppearance.BorderSize = 0;
this.btnOpenFile.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOpenFile.Location = new System.Drawing.Point(1343, 28);
this.btnOpenFile.Name = "btnOpenFile";
this.btnOpenFile.Size = new System.Drawing.Size(150, 41);
this.btnOpenFile.TabIndex = 260;
this.btnOpenFile.Text = "智能检测焊点";
this.btnOpenFile.UseVisualStyleBackColor = true;
this.btnOpenFile.Click += new System.EventHandler(this.btnOpenFile_Click);
//
// btnSStop
//
this.btnSStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSStop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSStop.Location = new System.Drawing.Point(1386, 9);
this.btnSStop.Name = "btnSStop";
this.btnSStop.Size = new System.Drawing.Size(117, 23);
this.btnSStop.TabIndex = 256;
this.btnSStop.Text = "烙铁停止移动";
this.btnSStop.UseVisualStyleBackColor = true;
this.btnSStop.Visible = false;
//
// btnWStop
//
this.btnWStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnWStop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnWStop.Location = new System.Drawing.Point(1386, 37);
this.btnWStop.Name = "btnWStop";
this.btnWStop.Size = new System.Drawing.Size(117, 23);
this.btnWStop.TabIndex = 257;
this.btnWStop.Text = "送丝停止移动";
this.btnWStop.UseVisualStyleBackColor = true;
this.btnWStop.Visible = false;
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(195, 34);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(44, 17);
this.label14.TabIndex = 9;
this.label14.Text = "条形码";
this.label14.Visible = false;
//
// dataGridViewImageColumn1
//
this.dataGridViewImageColumn1.HeaderText = "上升";
this.dataGridViewImageColumn1.Image = ((System.Drawing.Image)(resources.GetObject("dataGridViewImageColumn1.Image")));
this.dataGridViewImageColumn1.Name = "dataGridViewImageColumn1";
this.dataGridViewImageColumn1.Visible = false;
this.dataGridViewImageColumn1.Width = 50;
//
// dataGridViewImageColumn2
//
this.dataGridViewImageColumn2.HeaderText = "下降";
this.dataGridViewImageColumn2.Image = ((System.Drawing.Image)(resources.GetObject("dataGridViewImageColumn2.Image")));
this.dataGridViewImageColumn2.Name = "dataGridViewImageColumn2";
this.dataGridViewImageColumn2.Visible = false;
this.dataGridViewImageColumn2.Width = 50;
//
// FrmAutoAddBoard
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1514, 634);
this.Controls.Add(this.panel1);
this.Controls.Add(this.btnSStop);
this.Controls.Add(this.btnWStop);
this.Controls.Add(this.label14);
this.Name = "FrmAutoAddBoard";
this.Text = "新增程序";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmBoardInfo_FormClosing);
this.Load += new System.EventHandler(this.FrmBoardInfo_Load);
this.Shown += new System.EventHandler(this.FrmBoardInfo_Shown);
this.contextMenuStrip1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.picYDel)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picYAdd)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picXAdd)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picXDel)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picZDel)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picUDel)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picZAdd)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picUAdd)).EndInit();
this.contextMenuStrip2.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.panVideo.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.axCKVisionCtrl1)).EndInit();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.panel3.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.tckSpeed)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvList)).EndInit();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox txtBoardWidth;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtBoardLength;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtBoardName;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.DataGridView dgvList;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label txtRobotY;
private System.Windows.Forms.Label txtRobotX;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label txtRobotU;
private System.Windows.Forms.Label txtRobotZ;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.Button btnSavePoint;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.Button btnWStop;
private System.Windows.Forms.Button btnSStop;
private System.Windows.Forms.Button btnWUp;
private System.Windows.Forms.Button btnChange;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Button btnOpenFile;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private System.Windows.Forms.Button btnGoHome;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
private System.Windows.Forms.ToolStripMenuItem 保存焊点ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 移动到此处ToolStripMenuItem;
private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip2;
private System.Windows.Forms.ToolStripMenuItem 上升ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 下降ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 删除ToolStripMenuItem;
private System.Windows.Forms.Label lblMsg;
private System.Windows.Forms.Label label23;
private System.Windows.Forms.ComboBox cmbHand;
private System.Windows.Forms.Label label25;
private System.Windows.Forms.Label label24;
private System.Windows.Forms.DataGridViewImageColumn dataGridViewImageColumn1;
private System.Windows.Forms.DataGridViewImageColumn dataGridViewImageColumn2;
private System.Windows.Forms.ToolStripMenuItem 更新坐标ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 测试位置ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 详情ToolStripMenuItem;
private System.Windows.Forms.Button btnStopSend;
private System.Windows.Forms.Button btnSendWire;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox txtSpeed;
private System.Windows.Forms.TextBox txtRobotZHighValue;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TrackBar tckSpeed;
private System.Windows.Forms.Label lblSpeed;
private System.Windows.Forms.Label lblEpsonError;
private System.Windows.Forms.Button btnStopDown;
private System.Windows.Forms.Panel panVideo;
private System.Windows.Forms.TextBox txtCode;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Button btnPositionTest;
private System.Windows.Forms.Panel panPoint;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_pointNum;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Name;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_X;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Y;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Z;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_U;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_preheatTemperature;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_preheatTemperatureMax;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_preheatTemperatureMin;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_preheatTime;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_weldTemperature;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_weldTemperatureMax;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_weldTemperatureMin;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_weldTime;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_startSendWireSpeed;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_startSendWireTime;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_sendWireSpeed;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_sendWireTime;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_pointType;
private System.Windows.Forms.DataGridViewCheckBoxColumn Column_isClear;
private System.Windows.Forms.DataGridViewComboBoxColumn Column_HandDirection;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_ClearTime;
private System.Windows.Forms.DataGridViewLinkColumn Column_getPosition;
private System.Windows.Forms.DataGridViewLinkColumn Column_MoveTest;
private System.Windows.Forms.DataGridViewLinkColumn Column_btnDetail;
private System.Windows.Forms.DataGridViewLinkColumn Column_Del;
private System.Windows.Forms.DataGridViewImageColumn Column_Up;
private System.Windows.Forms.DataGridViewImageColumn Column_Down;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.PictureBox picYDel;
private System.Windows.Forms.PictureBox picYAdd;
private System.Windows.Forms.PictureBox picXAdd;
private System.Windows.Forms.PictureBox picXDel;
private System.Windows.Forms.PictureBox picZDel;
private System.Windows.Forms.PictureBox picUDel;
private System.Windows.Forms.PictureBox picZAdd;
private System.Windows.Forms.PictureBox picUAdd;
private AxCKVisionCtrlLib.AxCKVisionCtrl axCKVisionCtrl1;
private System.Windows.Forms.Label lblaoiMsg;
}
}
\ No newline at end of file

using log4net;
using URSoldering.Common;
using URSoldering.DeviceLibrary;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using URSoldering.Common.util;
using System.IO;
using System.Drawing.Drawing2D;
using URSoldering.LoadCSVLibrary;
using System.Threading.Tasks;
using System.Timers;
using HalconDotNet;
using System.Runtime.InteropServices;
namespace URSoldering.Client
{
public partial class FrmAutoAddBoard : FrmBase
{
private bool isSave = false;
private bool isNew = false;
private BoardInfo updateBoardInfo = null;
private bool isAuto = false;
private bool isConnect = false;
private bool isFinishLoad = false;
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public FrmAutoAddBoard(BoardInfo board)
{
if (board != null)
{
updateBoardInfo = board;
this.isNew = false;
}
else
{
this.isNew = true;
}
InitializeComponent();
if (isNew)
{
this.Text = "智能编辑程序";
}
else
{
this.Text = "智能编辑程序【" + board.boardName + "】";
}
}
private System.Timers.Timer timer1 = new System.Timers.Timer();
private void FrmBoardInfo_Load(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
StepValue = 0.5;
tckSpeed.Value = 3;
isFinishLoad = false;
//LoadProgram();
if (isNew == false)
{
LoadBoardInfo();
}
loadPictureBoxSize();
txtBoardName.Focus();
//此界面打开时,不能打开自动焊接
if (WeldRobotBean.ISRun)
{
LogUtil.error("进入焊接界面,发现WeldRobotBean自动运行中,关闭自动运行");
WeldRobotBean.StopRun();
}
if (EpsonDevice.IsRun)
{
EpsonDevice.FreeAxis();
isConnect = true;
btnChange.Text = "切换到自动模式(&M)(当前手动)";
RobotStatus(true);
System.Threading.Thread.Sleep(100);
EpsonDevice.GetPosition(AfterGet);
}
else
{
btnChange.Text = "机器人连接中......";
RobotStatus(false);
}
isAuto = false;
timer1.Interval = 1000;
timer1.AutoReset = true;
timer1.Elapsed += timer_Elapsed;
timer1.Start();
//timer2.Start();
if (RobotBean.ShuddenOK().Equals(false))
{
// MessageBox.Show("急停未开!");
}
else
{
//this.btnWDown.Enabled = true;
this.btnWUp.Enabled = true;
}
if (!SendWireManager.IsRun)
{
SendWireManager.Init(WeldRobotBean.RobotConfig.JBC_SendWire_Port);
}
if (SendWireManager.IsRun)
{
btnSendWire.Enabled = true;
btnStopSend.Enabled = true;
}
else
{
btnSendWire.Enabled = false;
btnStopSend.Enabled = false;
}
loadHand();
LoadAOI();
isFinishLoad = true;
}
private void LoadAOI()
{
//位置配置到文件中
string appPath = Application.StartupPath;
string strFilePathName = ConfigAppSettings.GetValue(Setting_Init.AOICheckPointFile);
//string filePath = appPath + strFilePathName;
string file = appPath + strFilePathName;
LoadAOIFile(file);
}
private bool LoadAOIFile(string filePath)
{
if (File.Exists(filePath))
{
this.axCKVisionCtrl1.UnloadConfigure();
Thread.Sleep(100);
try
{
this.axCKVisionCtrl1.LoadConfigure(filePath);
this.axCKVisionCtrl1.ZoomView(2);
LogUtil.info("成功加载程序:" + filePath);
return true;
}
catch (Exception ex)
{
LogUtil.error("加载程序【" + filePath + "】出错:" + ex.ToString());
}
}
else
{
LogUtil.error("未找到AOI程序文件:" + filePath);
MessageBox.Show("请先配置焊点检测程序!");
this.Close();
}
return false;
}
private void loadPictureBoxSize()
{
}
private void AfterMove(string result)
{
}
private void AfterGet(double x, double y, double z, double u, int hand)
{
PointValue point = new PointValue(x, y, u, z, hand);
//PointValue point = EpsonDevice.LastPoint;
this.txtRobotX.Text = point.X.ToString();
this.txtRobotY.Text = point.Y.ToString();
this.txtRobotU.Text = point.U.ToString();
this.txtRobotZ.Text = point.Z.ToString();
string msg = WeldRobotBean.CheckEpsonPoint(point);
lblEpsonError.Text = msg;
if (point.HandDir.Equals(1))
{
cmbHand.SelectedIndex = 0;
}
else
{
cmbHand.SelectedIndex = 1;
}
if (point.X != 0 && isConnect == false)
{
EpsonDevice.FreeAxis();
isConnect = true;
btnChange.Text = "切换到自动模式(&M)(当前手动)";
RobotStatus(true);
}
}
private void loadHand()
{
List<WeldPointInfo> point = new List<WeldPointInfo>();
point.Add(new WeldPointInfo(0));
point.Add(new WeldPointInfo(1));
point.Add(new WeldPointInfo(2));
this.Column_HandDirection.DataSource = point;
this.Column_HandDirection.ValueMember = "HandDirection";
this.Column_HandDirection.DisplayMember = "HandValue";
}
private void RobotStatus(bool isConnect)
{
btnChange.Enabled = isConnect;
picXAdd.Enabled = isConnect;
picXDel.Enabled = isConnect;
picYAdd.Enabled = isConnect;
picYDel.Enabled = isConnect;
picUAdd.Enabled = isConnect;
picUDel.Enabled = isConnect;
picZAdd.Enabled = isConnect;
picZDel.Enabled = isConnect;
}
private void LoadBoardInfo()
{
txtBoardName.Text = updateBoardInfo.boardName;
txtCode.Text = updateBoardInfo.WareCode;
txtBoardLength.Text = updateBoardInfo.boardLength.ToString();
txtBoardWidth.Text = updateBoardInfo.boardWidth.ToString();
//txtOriginX.Text = updateBoardInfo.originX.ToString();
//txtOriginY.Text = updateBoardInfo.originY.ToString();
txtRobotZHighValue.Text = updateBoardInfo.ZHighValue.ToString();
int index = -1;
if (updateBoardInfo.orgType >= 1 && updateBoardInfo.orgType <= 4)
{
//cmbOrgType.SelectedIndex = updateBoardInfo.orgType - 1;
}
//picBoard.Image = updateBoardInfo.GetImage();
//picBoard.Tag = false;
foreach (WeldPointInfo point in updateBoardInfo.pointList)
{
if (point != null)
{
dgvList.Rows.Add(setPointInfo(null, point));
}
}
}
private DataGridViewRow setPointInfo(DataGridViewRow view, WeldPointInfo point)
{
if (view == null)
{
view = new DataGridViewRow();
view.CreateCells(dgvList);
}
view.Cells[0].Value = point.pointNum.ToString();
view.Cells[1].Value = point.pointName;
view.Cells[2].Value = point.PositionX.ToString();
view.Cells[3].Value = point.PositionY.ToString();
view.Cells[4].Value = point.PositionZ.ToString();
view.Cells[5].Value = point.PositionU.ToString();
view.Cells[6].Value = point.preheatTemperature.ToString();
view.Cells[7].Value = point.preheatTemperatureMax.ToString();
view.Cells[8].Value = point.preheatTemperatureMin.ToString();
view.Cells[9].Value = point.preheatTime.ToString();
view.Cells[10].Value = point.weldTemperature.ToString();
view.Cells[11].Value = point.weldTemperatureMax.ToString();
view.Cells[12].Value = point.weldTemperatureMin.ToString();
view.Cells[13].Value = point.weldTime.ToString();
view.Cells[14].Value = point.startSendWireSpeed.ToString();
view.Cells[15].Value = point.startSendWireTime.ToString();
view.Cells[16].Value = point.sendWireSpeed.ToString();
view.Cells[17].Value = point.sendWireTime.ToString();
view.Cells[18].Value = point.pointType.ToString();
view.Cells[19].Value = point.isNeedClear.ToString();
view.Cells[20].Value = point.HandDirection;
view.Cells[21].Value = point.ClearTime;
return view;
}
private bool isRun = false;
private void timer_Elapsed(object sender, EventArgs e)
{
lblMsg.Text = "";
if (this.btnWUp.Enabled == false)
{
//this.btnWDown.Enabled = true;
this.btnWUp.Enabled = true;
}
if (!EpsonDevice.IsRun && isRun.Equals(false))
{
Task.Factory.StartNew(delegate ()
{
string result = EpsonDevice.Start();
if (result != "")
{
LogUtil.info("连接失败:" + result);
}
else
{
EpsonDevice.FreeAxis();
isAuto = false;
}
});
isRun = true;
}
else
{
//EpsonControl.FreeAxis();
EpsonDevice.GetPosition(AfterGet);
}
}
private void FrmBoardInfo_FormClosing(object sender, FormClosingEventArgs e)
{
if (!isSave)
{
DialogResult result = MessageBox.Show("是否放弃保存,直接退出?", "提示",MessageBoxButtons.OKCancel);
if (!result.Equals(DialogResult.OK))
{
e.Cancel = true;
}
}
EpsonDevice.LockAxis();
//timer2.Stop();
timer1.Stop();
this.axCKVisionCtrl1.UnloadConfigure();
}
private void btnSavePoint_Click(object sender, EventArgs e)
{
double x = FormUtil.getDoubleValue(txtRobotX);
double y = FormUtil.getDoubleValue(txtRobotY);
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand =GetHand();
//判断原点的Z轴
if (z > EpsonDevice.Robot_LIM_Z)
{
MessageBox.Show("保存失败,焊点Z坐标(" + z + ")不能高于最高Z点(" + EpsonDevice.Robot_LIM_Z + ")");
return;
}
AddNewPoint(x, y, u, z, hand);
liUpdateTime_LinkClicked(null, null);
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex != -1 && e.ColumnIndex >= 0)
{
string name = this.dgvList.Columns[e.ColumnIndex].Name;
if (name.Equals(this.Column_Del.Name))
{
DeleteRow(e.RowIndex);
}
else if (name.Equals(this.Column_getPosition.Name))
{
UpdateRow(e.RowIndex);
}
else if (name.Equals(this.Column_MoveTest.Name))
{
MoveTest(e.RowIndex);
}
else if (name.Equals(this.Column_btnDetail.Name))
{
showDetail(e.RowIndex);
}
else if (name.Equals(this.Column_Down.Name))
{
RowDown(e.RowIndex);
}
else if (name.Equals(this.Column_Up.Name))
{
RowUp(e.RowIndex);
}
}
}
private void RowDown(int rowIndex)
{
try
{
if (rowIndex >= dgvList.Rows.Count - 1)
{
return;
}
DataGridViewRow row = dgvList.Rows[rowIndex];
if (rowIndex < 0)
{
return;
}
dgvList.Rows.Remove(dgvList.Rows[rowIndex]);
if (rowIndex >= dgvList.Rows.Count - 1)
{
dgvList.Rows.Add(row);
}
else
{
dgvList.Rows.Insert(rowIndex + 1, row);
}
}
catch (Exception ex)
{
LogUtil.error("行下降出错:" + ex.ToString());
}
}
private void RowUp(int rowIndex)
{
try
{
DataGridViewRow row = dgvList.Rows[rowIndex];
if (rowIndex <= 0)
{
return;
}
dgvList.Rows.Remove(dgvList.Rows[rowIndex]);
dgvList.Rows.Insert(rowIndex - 1, row);
}
catch (Exception ex)
{
LogUtil.error("行上升出错:" + ex.ToString());
}
}
/// <summary>
/// 移动测试
/// </summary>
private bool isfast = false;
private void MoveTest(int rowIndex)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
double x = Double.Parse(dgvList.Rows[rowIndex].Cells[this.Column_X.Name].Value.ToString());
double y = Double.Parse(dgvList.Rows[rowIndex].Cells[this.Column_Y.Name].Value.ToString());
double z = Double.Parse(dgvList.Rows[rowIndex].Cells[this.Column_Z.Name].Value.ToString());
double u = Double.Parse(dgvList.Rows[rowIndex].Cells[this.Column_U.Name].Value.ToString());
int hand = Int32.Parse(dgvList.Rows[rowIndex].Cells[this.Column_HandDirection.Name].Value.ToString());
EpsonDevice.MoveTo(x, y, z, u, isfast, hand,AfterMove);
}
private void UpdateRow(int rowIndex)
{
int x_colIndex = dgvList.Columns[this.Column_X.Name].Index;
int y_colIndex = dgvList.Columns[Column_Y.Name].Index;
int u_colIndex = dgvList.Columns[this.Column_U.Name].Index;
int z_colIndex = dgvList.Columns[Column_Z.Name].Index;
int handIndex = dgvList.Columns[Column_HandDirection.Name].Index;
dgvList.Rows[rowIndex].Cells[this.Column_X.Name].Value = txtRobotX.Text.ToString();
dgvList.Rows[rowIndex].Cells[this.Column_Y.Name].Value = txtRobotY.Text.ToString();
dgvList.Rows[rowIndex].Cells[this.Column_Z.Name].Value = txtRobotZ.Text;
dgvList.Rows[rowIndex].Cells[this.Column_U.Name].Value = txtRobotU.Text;
dgvList.Rows[rowIndex].Cells[this.Column_HandDirection.Name].Value =GetHand();
dgvList.UpdateCellValue(x_colIndex, rowIndex);
dgvList.UpdateCellValue(y_colIndex, rowIndex);
dgvList.UpdateCellValue(u_colIndex, rowIndex);
dgvList.UpdateCellValue(z_colIndex, rowIndex);
dgvList.UpdateCellValue(handIndex, rowIndex);
}
private void DeleteRow(int rowIndex)
{
if (MessageBox.Show("确认要删除该行数据吗?", "删除确认",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
else
{
this.dgvList.Rows.RemoveAt(rowIndex);
if (isFinishLoad && this.txtBoardLength.Text.Trim() != "" && this.txtBoardWidth.Text.Trim() != "")
{
loadPictureBoxSize();
liUpdateTime_LinkClicked(null, null);
}
}
}
public string getConfigFilePath()
{
string appPath = Application.StartupPath;
string filePath = appPath + ConfigAppSettings.GetValue(Setting_Init.Component_ConfigPath);
return filePath;
}
private void btnSave_Click(object sender, EventArgs e)
{
BoardInfo board = new BoardInfo();
if (isNew)
{
board = new BoardInfo();
board.boardId = BoardManager.GetNextId();
}
else
{
board = this.updateBoardInfo;
}
board.boardName = FormUtil.getValue(txtBoardName);
board.boardLength = FormUtil.GetIntValue(txtBoardLength);
board.boardWidth = FormUtil.GetIntValue(txtBoardWidth);
//board.originX = FormUtil.getDoubleValue(txtOriginX);
//board.originY = FormUtil.getDoubleValue(txtOriginY);
//board.boardCode = FormUtil.getValue(txtWareCode);
board.ZHighValue = FormUtil.getDoubleValue(txtRobotZHighValue);
board.WareCode = FormUtil.getValue(txtCode);
if (board.boardName.Equals(""))
{
MessageBox.Show("请输入程序名称");
txtBoardName.Focus();
return;
}
if (board.WareCode.Equals(""))
{
MessageBox.Show("请输入程序条码");
txtCode.Focus();
return;
}
//if (cmbOrgType.SelectedIndex < 0)
//{
// MessageBox.Show("请选择固定点位置!");
// cmbOrgType.Focus();
// return;
//}
//board.orgType = cmbOrgType.SelectedIndex + 1;
//验证名字是否重复
foreach (BoardInfo obj in BoardManager.boardList)
{
if (obj.boardId.Equals(board.boardId))
{
continue;
}
else if (obj.boardName.Equals(board.boardName))
{
MessageBox.Show("程序【" + board.boardName + "】已存在,请重新输入程序名称!");
return;
}
}
//验证条码是否重复
foreach (BoardInfo obj in BoardManager.boardList)
{
if (obj.boardId.Equals(board.boardId))
{
continue;
}
else if (obj.WareCode.Equals(board.WareCode))
{
MessageBox.Show("程序条码【" + board.WareCode + "】已存在,请重新输入条码!");
return;
}
}
if (board.boardLength <= 0)
{
MessageBox.Show("请输入长度");
txtBoardLength.Focus();
return;
}
if (board.boardWidth <= 0)
{
MessageBox.Show("请输入宽度");
txtBoardWidth.Focus();
return;
}
else
{
if (openFileDialog1.FileName != "openFileDialog1")
{
string imagePath = Path.GetFullPath(openFileDialog1.FileName);
ProcessPictures.copyImage(Application.StartupPath, board.boardName, imagePath);
board.imgName = board.boardName + Path.GetExtension(openFileDialog1.FileName);
}
if (isNew.Equals(false))
{
if (!board.imgName.Contains(board.boardName))
{
try
{
string oldName = board.imgName;
string newName = board.boardName + Path.GetExtension(oldName);
string configPath = ConfigAppSettings.GetValue(Setting_Init.BOARD_IMAGE_PATH);
string oldPath = Application.StartupPath + "/" + configPath + "/" + oldName;
string newPath = Application.StartupPath + "/" + configPath + "/" + newName;
if (File.Exists(oldPath))
{
File.Copy(oldPath, newPath, true);
}
board.imgName = newName;
board.myImage = null;
}
catch (Exception ex)
{
LogUtil.error("更新程序名时更改图片出错:"+ex.ToString());
}
}
}
}
board.pointList = new List<WeldPointInfo>();
List<WeldPointInfo> pointList = allPointInfo();
//UpdateTime(pointList);
//判断名称是否重复
List<string> nameList = new List<string>();
foreach (WeldPointInfo point in pointList)
{
if (nameList.Contains(point.pointName))
{
MessageBox.Show("焊点名称【" + point.pointName + "】重复!");
return;
}
nameList.Add(point.pointName);
//判断温度是否正确
if (!(point.preheatTemperatureMin <= point.preheatTemperature && point.preheatTemperature <= point.preheatTemperatureMax))
{
MessageBox.Show("焊点[" + point.pointName + "]的预设温度必须满足:预设下限<=预设温度<=预设上限!");
return;
}
if (!(point.weldTemperatureMin <= point.weldTemperature && point.weldTemperature <= point.weldTemperatureMax))
{
MessageBox.Show("焊点[" + point.pointName + "]的焊接温度必须满足:焊接下限<=焊接温度<=焊接上限!");
return;
}
}
if (pointList != null)
{
board.pointList = pointList;
}
else
{
return;
}
if (isNew)
{
BoardManager.Add(board);
}
else
{
board.solderingCount = 0;
board.solderingTime = 0;
BoardManager.Update(board);
}
MessageBox.Show("保存成功!");
isSave = true;
this.Close();
}
/// <summary>
/// 获取dataGridView里所有点信息
/// </summary>
/// <returns></returns>
private List<WeldPointInfo> allPointInfo()
{
List<WeldPointInfo> pointList = new List<WeldPointInfo>();
foreach (DataGridViewRow row in dgvList.Rows)
{
if (row != null)
{
WeldPointInfo point = getRowPointInfo(row);
if (point != null)
{
pointList.Add(point);
}
}
}
return pointList;
}
private WeldPointInfo getRowPointInfo(DataGridViewRow row)
{
WeldPointInfo point = new WeldPointInfo();
try
{
if (row.Cells[Column_Name.Name].Value == null)
{
return null;
}
point.pointName = row.Cells[Column_Name.Name].Value.ToString();
point.pointNum = Convert.ToInt32(row.Cells[this.Column_pointNum.Name].Value.ToString());
point.PositionX = Convert.ToDouble(row.Cells[this.Column_X.Name].Value.ToString());
point.PositionY = Convert.ToDouble(row.Cells[this.Column_Y.Name].Value.ToString());
point.PositionU = Convert.ToDouble(row.Cells[this.Column_U.Name].Value.ToString());
point.PositionZ = Convert.ToDouble(row.Cells[this.Column_Z.Name].Value.ToString());
point.weldTemperature = Convert.ToInt32(row.Cells[this.Column_weldTemperature.Name].Value.ToString());
point.weldTime = Convert.ToDouble(row.Cells[this.Column_weldTime.Name].Value.ToString());
point.sendWireSpeed = Convert.ToDouble(row.Cells[this.Column_sendWireSpeed.Name].Value.ToString());
point.sendWireTime = Convert.ToDouble(row.Cells[this.Column_sendWireTime.Name].Value.ToString());
point.startSendWireSpeed = Convert.ToDouble(row.Cells[this.Column_startSendWireSpeed.Name].Value.ToString());
point.startSendWireTime = Convert.ToDouble(row.Cells[this.Column_startSendWireTime.Name].Value.ToString());
point.preheatTemperature = Convert.ToInt32(row.Cells[this.Column_preheatTemperature.Name].Value.ToString());
point.preheatTime = Convert.ToDouble(row.Cells[this.Column_preheatTime.Name].Value.ToString());
point.preheatTemperatureMax = Convert.ToInt32(row.Cells[this.Column_preheatTemperatureMax.Name].Value.ToString());
point.preheatTemperatureMin = Convert.ToInt32(row.Cells[this.Column_preheatTemperatureMin.Name].Value.ToString());
point.weldTemperatureMax = Convert.ToInt32(row.Cells[this.Column_weldTemperatureMax.Name].Value.ToString());
point.weldTemperatureMin = Convert.ToInt32(row.Cells[this.Column_weldTemperatureMin.Name].Value.ToString());
point.isNeedClear = Convert.ToBoolean(row.Cells[this.Column_isClear.Name].Value.ToString());
point.pointType = Convert.ToInt32(row.Cells[this.Column_pointType.Name].Value.ToString());
point.HandDirection = Convert.ToInt32(row.Cells[this.Column_HandDirection.Name].Value);
point.ClearTime=Convert.ToInt32(row.Cells[this.Column_ClearTime.Name].Value.ToString());
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "保存数据出错:" + ex.ToString());
MessageBox.Show("请检查焊点数据是否正确!");
return null;
}
return point;
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnChange_Click(object sender, EventArgs e)
{
if (isAuto)
{
EpsonDevice.FreeAxis();
isAuto = false;
btnChange.Text = "切换到自动模式(&M)(当前手动)";
//timer1.Enabled = true;
}
else
{
DialogResult result = MessageBox.Show("确定修改为自动模式?", "提示", MessageBoxButtons.YesNo);
if (result.Equals(DialogResult.Yes))
{
result = MessageBox.Show("切换为自动模式之前,请确保所有人员远离机器人!", "提示", MessageBoxButtons.OKCancel);
if (result.Equals(DialogResult.OK))
{
EpsonDevice.LockAxis();
isAuto = true;
btnChange.Text = "切换到手动模式(&M)(当前自动)";
//timer1.Enabled = false;
}
}
}
}
private void btnRead_Click(object sender, EventArgs e)
{
EpsonDevice.GetPosition(AfterGet);
}
protected override void OnVisibleChanged(EventArgs e)
{
base.OnVisibleChanged(e);
if (this.IsDisposed)
{
this.Close();
}
}
/// <summary>
/// 单元格数据改变时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgvList_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
/**
* 当单元格数据改变时(XY值)
* 调用改变图片上的点方法
*/
if (this.txtBoardWidth.Text.Trim() != "" && this.txtBoardLength.Text.Trim() != "")
{
loadPictureBoxSize();
}
}
private void txtOriginX_TextChanged(object sender, EventArgs e)
{
loadPictureBoxSize();
}
private void txtOriginY_TextChanged(object sender, EventArgs e)
{
loadPictureBoxSize();
}
private void txtBoardLength_TextChanged(object sender, EventArgs e)
{
if (isFinishLoad && this.txtBoardLength.Text.Trim() != "" && this.txtBoardWidth.Text.Trim() != "")
{
loadPictureBoxSize();
}
}
private void txtBoardWidth_TextChanged(object sender, EventArgs e)
{
if (isFinishLoad && this.txtBoardWidth.Text.Trim() != "" && this.txtBoardLength.Text.Trim() != "")
{
loadPictureBoxSize();
}
}
private void FrmBoardInfo_Shown(object sender, EventArgs e)
{
this.panPoint.Visible = false;
this.panPoint.Size = dgvList.Size;
this.panPoint.Location = dgvList.Location;
loadPictureBoxSize();
}
DataGridViewRow PreRow = null;
private void showDetail(int rowIndex)
{
DataGridViewRow row = dgvList.Rows[rowIndex];
WeldPointInfo weldPointInfo = getRowPointInfo(row);
PreRow = row;
if (weldPointInfo == null)
{
MessageBox.Show("未找到焊点信息!");
return;
}
FrmWeldPointInfo fwpi = new FrmWeldPointInfo(weldPointInfo);
fwpi.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
fwpi.FormBorderStyle = FormBorderStyle.None;
fwpi.StartPosition = FormStartPosition.CenterParent;
fwpi.OnCloseEnd += PointClosePorcess;
fwpi.TopLevel = false;
fwpi.Parent = this.panPoint;
panPoint.Visible = true;
fwpi.Location = new Point(0, 0);
fwpi.Size = panPoint.Size;
this.dgvList.Visible = false;
fwpi.Show();
}
private void PointClosePorcess(DialogResult result,WeldPointInfo point)
{
if (result.Equals(DialogResult.OK))
{
if (PreRow != null&&point!=null)
{
setPointInfo(PreRow, point);
liUpdateTime_LinkClicked(null, null);
}
}
panPoint.Visible = false;
this.dgvList.Visible = true;
}
private void btnGoHome_Click(object sender, EventArgs e)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
RobotBean.KNDIOMove(IO_Type.SendWire_Down, IO_VALUE.LOW);
RobotBean.KNDIOMove(IO_Type.SendWire_Up, IO_VALUE.HIGH);
double x = WeldRobotBean.EpsonOrgX;
double y = WeldRobotBean.EpsonOrgY;
double z = WeldRobotBean.EpsonOrgZ;
double u = WeldRobotBean.EpsonOrgU;
int hand = WeldRobotBean.EpsonOrgHandDir;
if (x != 0 && y != 0 && z != 0 && u != 0)
{
EpsonDevice.MoveTo(x, y, z, u, false, hand,AfterMove);
}
else
{
MessageBox.Show("原点坐标无效!");
}
}
private void btnSaveHome_Click(object sender, EventArgs e)
{
double orgx = FormUtil.getDoubleValue(txtRobotX);
double orgy = FormUtil.getDoubleValue(txtRobotY);
double orgu = FormUtil.getDoubleValue(txtRobotU);
double orgz = FormUtil.getDoubleValue(txtRobotZ);
//判断原点的Z轴
if (orgz > EpsonDevice.Robot_LIM_Z)
{
MessageBox.Show("保存失败,原点Z坐标(" + orgz + ")不能高于最高Z点(" + EpsonDevice.Robot_LIM_Z + ")");
return;
}
int hand =GetHand();
DialogResult result = MessageBox.Show("是否将当前位置X:" + orgx + ",Y:" + orgy + ",U:" + orgu + ",Z:" + orgz + "," + cmbHand.Text + "保存为原点?", "提示", MessageBoxButtons.YesNo);
if (result.Equals(DialogResult.Yes))
{
WeldRobotBean.UpdateOrgPoint(orgx, orgy, orgu, orgz, hand);
MessageBox.Show("保存原点成功!");
}
}
private void 保存焊点ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (m_MouseDownPoint == null || m_MouseDownPoint.X == 0 || m_MouseDownPoint.Y == 0)
{
MessageBox.Show("请点击要保存的焊点");
return;
}
double x = 0;
double y = 0;
//GetPicPoint(out x, out y);
LogUtil.info("新增焊点:X【" + m_MouseDownPoint.X + "】Y【" + m_MouseDownPoint.Y + "】,坐标X【" + x + "】坐标Y【" + y + "】");
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand = GetHand();
//判断原点的Z轴
if (z > EpsonDevice.Robot_LIM_Z)
{
MessageBox.Show("保存失败,焊点Z坐标("+z+")不能高于最高Z点(" + EpsonDevice.Robot_LIM_Z + ")");
return;
}
AddNewPoint(x, y, u, z, hand);
liUpdateTime_LinkClicked(null, null);
}
private int GetHand()
{
if (cmbHand.SelectedIndex >= 0)
{
return cmbHand.SelectedIndex + 1;
}
else
{
return 0;
}
}
private void AddNewPoint(double x, double y, double u, double z, int hand)
{
WeldPointInfo weldPointInfo = new WeldPointInfo();
string name = "P" + (dgvList.Rows.Count + 1);
FrmWeldPointInfo fwpi = new FrmWeldPointInfo(name,x,y,u,z,hand);
DialogResult result = fwpi.ShowDialog();
if (result.Equals(DialogResult.OK))
{
weldPointInfo = fwpi.weldPointInfo;
DataGridViewRow view = new DataGridViewRow();
view.CreateCells(dgvList);
view.Cells[0].Value = dgvList.Rows.Count.ToString();
view.Cells[1].Value = weldPointInfo.pointName;
//view.Cells[2].Value = x.ToString();
//view.Cells[3].Value = y.ToString();
//view.Cells[4].Value = z;
//view.Cells[5].Value = u;
view.Cells[2].Value = weldPointInfo.PositionX.ToString();
view.Cells[3].Value = weldPointInfo.PositionY.ToString();
view.Cells[4].Value = weldPointInfo.PositionZ;
view.Cells[5].Value = weldPointInfo.PositionU;
view.Cells[6].Value = weldPointInfo.preheatTemperature;
view.Cells[7].Value = weldPointInfo.preheatTemperatureMax;
view.Cells[8].Value = weldPointInfo.preheatTemperatureMin;
view.Cells[9].Value = weldPointInfo.preheatTime;
view.Cells[10].Value = weldPointInfo.weldTemperature;
view.Cells[11].Value = weldPointInfo.weldTemperatureMax;
view.Cells[12].Value = weldPointInfo.weldTemperatureMin;
view.Cells[13].Value = weldPointInfo.weldTime;
view.Cells[14].Value = weldPointInfo.startSendWireSpeed;
view.Cells[15].Value = weldPointInfo.startSendWireTime;
view.Cells[16].Value = weldPointInfo.sendWireSpeed;
view.Cells[17].Value = weldPointInfo.sendWireTime;
view.Cells[18].Value = weldPointInfo.pointType;
view.Cells[19].Value = weldPointInfo.isNeedClear;
view.Cells[20].Value = weldPointInfo.HandDirection;
view.Cells[21].Value = weldPointInfo.ClearTime;
dgvList.Rows.Add(view);
//if (isFinishLoad && this.txtBoardLength.Text.Trim() != "" && this.txtBoardWidth.Text.Trim() != "")
//{
// loadPictureBoxSize();
//}
}
}
Point m_MouseDownPoint = new Point(0);
private void picBoard_MouseDown(object sender, MouseEventArgs e)
{
}
private void 移动到此处ToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void btnXAdd_Click(object sender, EventArgs e)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
double x = FormUtil.getDoubleValue(txtRobotX);
double y = FormUtil.getDoubleValue(txtRobotY);
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand =GetHand();
y+=StepValue;
EpsonDevice.MoveTo(x, y, z, u, isfast, hand,AfterMove);
}
private void btnXDel_Click(object sender, EventArgs e)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
double x = FormUtil.getDoubleValue(txtRobotX);
double y = FormUtil.getDoubleValue(txtRobotY);
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand =GetHand();
y-=StepValue;
EpsonDevice.MoveTo(x, y, z, u, isfast, hand,AfterMove);
}
private void btnYDel_Click(object sender, EventArgs e)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
double x = FormUtil.getDoubleValue(txtRobotX);
double y = FormUtil.getDoubleValue(txtRobotY);
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand =GetHand();
x-=StepValue;
EpsonDevice.MoveTo(x, y, z, u, isfast, hand,AfterMove);
}
private void btnYAdd_Click(object sender, EventArgs e)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
double x = FormUtil.getDoubleValue(txtRobotX);
double y = FormUtil.getDoubleValue(txtRobotY);
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand =GetHand();
x+=StepValue;
EpsonDevice.MoveTo(x, y, z, u, isfast, hand,AfterMove);
}
private void btnZAdd_Click(object sender, EventArgs e)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
double x = FormUtil.getDoubleValue(txtRobotX);
double y = FormUtil.getDoubleValue(txtRobotY);
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand =GetHand();
z+=StepValue;
EpsonDevice.MoveTo(x, y, z, u, isfast, hand,AfterMove);
}
private void btnZDel_Click(object sender, EventArgs e)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
double x = FormUtil.getDoubleValue(txtRobotX);
double y = FormUtil.getDoubleValue(txtRobotY);
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand =GetHand();
z-=StepValue;
EpsonDevice.MoveTo(x, y, z, u, isfast, hand,AfterMove);
}
private void btnUAdd_Click(object sender, EventArgs e)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
double x = FormUtil.getDoubleValue(txtRobotX);
double y = FormUtil.getDoubleValue(txtRobotY);
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand =GetHand();
u+=StepValue;
EpsonDevice.MoveTo(x, y, z, u, isfast, hand,AfterMove);
}
private void btnUDel_Click(object sender, EventArgs e)
{
if (isAuto == false)
{
MessageBox.Show("请先切换到自动模式!");
return;
}
double x = FormUtil.getDoubleValue(txtRobotX);
double y = FormUtil.getDoubleValue(txtRobotY);
double u = FormUtil.getDoubleValue(txtRobotU);
double z = FormUtil.getDoubleValue(txtRobotZ);
int hand =GetHand();
u-=StepValue;
EpsonDevice.MoveTo(x, y, z, u, isfast, hand,AfterMove);
}
private void dgvList_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void dgvList_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)
{
if ((e.Clicks < 2) && (e.Button == MouseButtons.Left))
{
if ((e.ColumnIndex == -1) && (e.RowIndex > -1))
this.dgvList.DoDragDrop(dgvList.Rows[e.RowIndex], DragDropEffects.Move);
}
}
int selectionIdx = -1;
private void dgvList_DragDrop(object sender, DragEventArgs e)
{
try
{
int idx = GetRowFromPoint(e.X, e.Y);
if (idx < 0)
{
return;
}
if (e.Data.GetDataPresent(typeof(DataGridViewRow)))
{
DataGridViewRow row = (DataGridViewRow)e.Data.GetData(typeof(DataGridViewRow));
dgvList.Rows.Remove(row);
selectionIdx = idx;
if (idx >= dgvList.Rows.Count - 1)
{
dgvList.Rows.Add(row);
}
else
{
dgvList.Rows.Insert(idx, row);
}
}
}
catch (Exception ex)
{
LogUtil.error("拖拽出错:" + ex.ToString());
}
}
private int GetRowFromPoint(int x, int y)
{
for (int i = 0; i < dgvList.RowCount; i++)
{
Rectangle rec = dgvList.GetRowDisplayRectangle(i, false);
if (dgvList.RectangleToScreen(rec).Contains(x, y))
return i;
}
return -1;
}
private void dgvList_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
if (selectionIdx > -1)
{
dgvList.Rows[selectionIdx].Selected = true;
dgvList.CurrentCell = dgvList.Rows[selectionIdx].Cells[0];
selectionIdx = -1;
}
}
private void dgvList_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
for (int i = 0; i < dgvList.Rows.Count; i++)
{
DataGridViewRow row = dgvList.Rows[i];
if (row.Cells[this.Column_Name.Name].Value != null)
{
string name = row.Cells[this.Column_Name.Name].Value.ToString();
int nameIndex = 0;
try
{
nameIndex = Convert.ToInt32(name.Substring(1, name.Length - 1));
}
catch (Exception ex)
{
}
string start = name.Substring(0, 1).ToUpper();
if (start.Equals("P") && nameIndex > 0)
{
dgvList.Rows[i].Cells[this.Column_Name.Name].Value = "P" + (i + 1).ToString();
} dgvList.Rows[i].Cells[this.Column_pointNum.Name].Value = (i + 1).ToString();
}
}
}
private void dgvList_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (e.RowIndex >= 0)
{
this.dgvList.ClearSelection();
dgvList.Rows[e.RowIndex].Selected = true;
dgvList.CurrentCell = dgvList.Rows[e.RowIndex].Cells[e.ColumnIndex];
contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
}
}
}
private void 上升ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
RowUp(dgvList.SelectedRows[0].Index);
}
}
private void 下降ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
RowDown(dgvList.SelectedRows[0].Index);
}
}
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
DeleteRow(dgvList.SelectedRows[0].Index);
liUpdateTime_LinkClicked(null, null);
}
}
private void liUpdateTime_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
//List<WeldPointInfo> pointList = allPointInfo();
//UpdateTime(pointList);
}
private void 更新坐标ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
UpdateRow(dgvList.SelectedRows[0].Index);
}
}
private void 测试位置ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
MoveTest(dgvList.SelectedRows[0].Index);
}
}
private void 详情ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
showDetail(dgvList.SelectedRows[0].Index);
}
}
private void btnSendWire_Click(object sender, EventArgs e)
{
//匀速运动
int speed = FormUtil.GetIntValue(txtSpeed) * WeldRobotBean.SendWireXiShu;
//SendWireManager.VolMove(WeldRobotBean.RobotConfig.SendWire_Slv, speed);
}
private void btnStopSend_Click(object sender, EventArgs e)
{
SendWireManager.StopSend();
}
private void btnWUp_Click(object sender, EventArgs e)
{
if (btnWUp.Text.Equals("送丝上升"))
{
RobotBean.KNDIOMove(IO_Type.SendWire_Up, IO_VALUE.HIGH);
RobotBean.KNDIOMove(IO_Type.SendWire_Down, IO_VALUE.LOW);
btnWUp.Text = "送丝下降";
}
else
{
RobotBean.KNDIOMove(IO_Type.SendWire_Up, IO_VALUE.LOW);
RobotBean.KNDIOMove(IO_Type.SendWire_Down, IO_VALUE.HIGH);
btnWUp.Text = "送丝上升";
}
}
private void btnWDown_Click(object sender, EventArgs e)
{
RobotBean.KNDIOMove(IO_Type.SendWire_Up, IO_VALUE.LOW);
RobotBean.KNDIOMove(IO_Type.SendWire_Down, IO_VALUE.HIGH);
}
private void btnSetClear1_Click(object sender, EventArgs e)
{
double clearx = FormUtil.getDoubleValue(txtRobotX);
double cleary = FormUtil.getDoubleValue(txtRobotY);
double clearu = FormUtil.getDoubleValue(txtRobotU);
double clearz = FormUtil.getDoubleValue(txtRobotZ);
//判断原点的Z轴
if (clearz > EpsonDevice.Robot_LIM_Z)
{
MessageBox.Show("保存失败,清洗点1的Z坐标(" + clearz + ")不能高于最高Z点(" + EpsonDevice.Robot_LIM_Z + ")");
return;
}
int hand = GetHand();
DialogResult result = MessageBox.Show("是否将当前位置X:" + clearx + ",Y:" + cleary + ",U:" + clearu + ",Z:" + clearz + "," + cmbHand.Text + "保存为清洗点1?", "提示", MessageBoxButtons.YesNo);
if (result.Equals(DialogResult.Yes))
{
WeldRobotBean.UpdateClear1Point(clearx, cleary, clearu, clearz, hand);
MessageBox.Show("保存清洗点1成功!");
}
}
private void btnSetClear2_Click(object sender, EventArgs e)
{
double clearx = FormUtil.getDoubleValue(txtRobotX);
double cleary = FormUtil.getDoubleValue(txtRobotY);
double clearu = FormUtil.getDoubleValue(txtRobotU);
double clearz = FormUtil.getDoubleValue(txtRobotZ);
//判断原点的Z轴
if (clearz > EpsonDevice.Robot_LIM_Z)
{
MessageBox.Show("保存失败,清洗点2的Z坐标(" + clearz + ")不能高于最高Z点(" + EpsonDevice.Robot_LIM_Z + ")");
return;
}
int hand = GetHand();
DialogResult result = MessageBox.Show("是否将当前位置X:" + clearx + ",Y:" + cleary + ",U:" + clearu + ",Z:" + clearz + "," + cmbHand.Text + "保存为清洗点2?", "提示", MessageBoxButtons.YesNo);
if (result.Equals(DialogResult.Yes))
{
WeldRobotBean.UpdateClear2Point(clearx, cleary, clearu, clearz, hand);
MessageBox.Show("保存清洗点2成功!");
}
}
private double StepValue = 0.5;
private void tckSpeed_ValueChanged(object sender, EventArgs e)
{
int value = tckSpeed.Value;
if (value.Equals(1))
{
StepValue = 0.1;
}
else if (value.Equals(2))
{
StepValue = 0.2;
}
else if (value.Equals(3))
{
StepValue = 0.5;
}
else if (value.Equals(4))
{
StepValue = 1;
}
lblSpeed.Text = "步进值:" + StepValue + "mm";
}
private void btnStopDown_Click(object sender, EventArgs e)
{
if (btnStopDown.Text.Equals("阻挡气缸下降"))
{
RobotBean.KNDIOMove(IO_Type.StopCylinder_Down, IO_VALUE.HIGH);
RobotBean.KNDIOMove(IO_Type.StopCylinder_Up, IO_VALUE.LOW);
btnStopDown.Text = "阻挡气缸上升";
}
else
{
RobotBean.KNDIOMove(IO_Type.StopCylinder_Down, IO_VALUE.LOW);
RobotBean.KNDIOMove(IO_Type.StopCylinder_Up, IO_VALUE.HIGH);
btnStopDown.Text = "阻挡气缸下降";
}
}
private void btnStopUp_Click(object sender, EventArgs e)
{
RobotBean.KNDIOMove(IO_Type.StopCylinder_Down, IO_VALUE.LOW);
RobotBean.KNDIOMove(IO_Type.StopCylinder_Up, IO_VALUE.HIGH);
}
private void btnPositionTest_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
MoveTest(dgvList.SelectedRows[0].Index);
}
}
private bool RunAOI(int num)
{
try
{
axCKVisionCtrl1.Execute(num);
axCKVisionCtrl1.ZoomView(2);
axCKVisionCtrl1.Redraw();
//Thread.Sleep(1000);
//axCKVisionCtrl1.Execute(num);
//axCKVisionCtrl1.ZoomView(2);
//axCKVisionCtrl1.Redraw();
return true;
}
catch (Exception ex)
{
LogUtil.error("Error: Could not extcute proc. Original error: " + ex.Message);
return false;
}
}
private int CKResult(string name, int dataId)
{
string result = "";
try
{
int idTool = axCKVisionCtrl1.GetTool(name);
double value = 0.0;
object objValue = "";
if (axCKVisionCtrl1.GetValue(idTool, dataId, 0, ref objValue) == true)
{
result = objValue.ToString();
}
LogUtil.info("获取【" + name + "】:" + result);
}
catch (Exception ex)
{
LogUtil.error("获取【" + name + "】出错:" + ex.ToString());
}
if (result.ToLower().Equals("true"))
{
return 1;
}
else if (result.ToLower().Equals("false"))
{
return 2;
}
else
{
return 0;
}
}
private void btnOpenFile_Click(object sender, EventArgs e)
{
btnOpenFile.Enabled = false;
lblaoiMsg.Text = "开始检测焊点,请稍后............";
RunAOI(0);
//int result = 1;
bool hasResult = RobotBean.KNDIOValue(IO_Type.LineWeldCheck).Equals(IO_VALUE.HIGH);
//int result = CKResult("Result",10);
if (hasResult)
{
List<WeldPointInfo> PointList = GetPointList();
lblaoiMsg.Text = "检测完成,共检测到【" + PointList.Count + "】个焊点,请调整工艺参数后点击 \"保存\" 按钮保存程序";
LogUtil.info(lblaoiMsg.Text);
dgvList.Rows.Clear();
foreach (WeldPointInfo point in PointList)
{
if (point != null)
{
dgvList.Rows.Add(setPointInfo(null, point));
}
}
}
else
{
lblaoiMsg.Text = "未检测到焊点, 请调整电路板位置后,重新点击 \"智能检测焊点\" 按钮执行焊点检测";
LogUtil.info(lblaoiMsg.Text);
}
btnOpenFile.Enabled = true;
}
private List<WeldPointInfo> GetPointList()
{
List<WeldPointInfo> PointList = new List<WeldPointInfo>();
try
{
string[] array = {"{\"pointNum\":1,\"pointName\":\"P1\",\"PositionX\":-139.107,\"PositionY\":264.566,\"PositionU\":32.2339,\"PositionZ\":-105.762,\"HandDirection\":2,\"preheatTemperature\":360,\"preheatTemperatureMax\":380,\"preheatTemperatureMin\":340,\"preheatTime\":1.0,\"weldTemperature\":360,\"weldTemperatureMax\":380,\"weldTemperatureMin\":340,\"weldTime\":1.0,\"startSendWireSpeed\":1.0,\"startSendWireTime\":0.0,\"sendWireSpeed\":1.0,\"sendWireTime\":0.0,\"pointType\":0,\"isNeedClear\":false,\"ClearTime\":3000,\"HandValue\":\"左臂\"}\r\n" ,
"{\"pointNum\":2,\"pointName\":\"P2\",\"PositionX\":-137.652,\"PositionY\":215.817,\"PositionU\":32.9741,\"PositionZ\":-105.762,\"HandDirection\":2,\"preheatTemperature\":360,\"preheatTemperatureMax\":380,\"preheatTemperatureMin\":340,\"preheatTime\":1.0,\"weldTemperature\":360,\"weldTemperatureMax\":380,\"weldTemperatureMin\":340,\"weldTime\":1.0,\"startSendWireSpeed\":1.0,\"startSendWireTime\":0.0,\"sendWireSpeed\":1.0,\"sendWireTime\":0.0,\"pointType\":0,\"isNeedClear\":false,\"ClearTime\":3000,\"HandValue\":\"左臂\"}\r\n" ,
"{\"pointNum\":3,\"pointName\":\"P3\",\"PositionX\":-142.84,\"PositionY\":163.777,\"PositionU\":77.6469,\"PositionZ\":-98.8411,\"HandDirection\":2,\"preheatTemperature\":360,\"preheatTemperatureMax\":380,\"preheatTemperatureMin\":340,\"preheatTime\":1.0,\"weldTemperature\":360,\"weldTemperatureMax\":380,\"weldTemperatureMin\":340,\"weldTime\":1.0,\"startSendWireSpeed\":1.0,\"startSendWireTime\":0.0,\"sendWireSpeed\":10.0,\"sendWireTime\":0.0,\"pointType\":0,\"isNeedClear\":false,\"ClearTime\":3000,\"HandValue\":\"左臂\"}"
};
foreach (string obj in array)
{
WeldPointInfo point = JsonHelper.DeserializeJsonToObject<WeldPointInfo>(obj);
PointList.Add(point);
}
}
catch (Exception ex)
{
LogUtil.error("获取焊点出错:" + ex.ToString());
}
return PointList;
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>345, 17</value>
</metadata>
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>197, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>510, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="picYDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
lxtedUYYAAAAAElFTkSuQmCC
</value>
</data>
<data name="picYAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAByZJREFUeF7tnb+LJEUUx+c/NFYwEjUSFQORu0TUi07QYA3kZJIDJ1puTURcWZBl
PfAWFja4ZRFhQINVOJBTg0v021TTU/ud7uqq6qp6b6br8Unudrp+vG/3q9evenoWz56/UMv1+ubs/Gq5
+vZgefj+Rwfg5TfuvvTqew7wAfNJHIIDcTgaoWZVoU4A43EfX/tjVDF6UHfiqBAAJ+nq6AQ+IsdlAh2h
OyVXhqQAxu9vfXCfHFQMdC2uhIwAx6cXH97/itwhCAaDIdEgy1BUgN/++Atn3Gtvf0zzVwIGhuFhkDTs
rBQSALPCGphwXc0HBomhFpMhuwA75HqbYjLkFQCBVW3A8QGDz7025BIAqUWxtDI3mEi+TCmLALh4aQ57
ACZF00xCYgFwpgjm9bnB1JJfCikF+Ob7n3ZusQ0FE8Q0aeJTSCbAwfKQxrrHYLI0/WgSCIBcbY/DzhCY
cpIkdaoAF0/XO51oTgETx/TJIaFMEgDd733Qd4PpT9QgXoDqfcNEDSIFQCZA45g50alRjAAQnLqvgLjr
IFiAGnmGiItFYQJU77uJ0CBAAKS9s804/YGLgu4PAgSY4d1WHHAUuc6BrwCzqjRMx79W4SVATToj8ExM
xwW4Xt/UhTcCOM2ndj0ugP7Q/8qbd78+/O7y6S/ghx9/xj/pA1L4LAYjAujf23rw8NHf//z7n2W/rn+n
zwgyuo/mEgBXEDWnCpzpON9br9+2z79c0YcFcQcilwCad9XfufMpzvTW31v2+MklfV4QuJEcazMowPHp
BTWkh3ufLSnskGExoENkcTzb0i+A5pterLetm4ft5s9ndJQsjtvjfgF0rr0I+ji1Wx+PGR0rztBq3CMA
tFKY+CPo47xuvethdLg4cGnvRdAjgMLTH1mNO+hvG7Wggd6LgAVQePoP5Zpuo0Y00HsRsACroxM6TBAE
fUeu6TZqSglwLzmcBdCT/Ny590Vo2LGNWlMC3EsOvyWAntz/wcNHrSNjjRrUA90T3BJAw/e2HAWGIKNm
9QAn2z7fCKCh8uMuMAQZtawKuzq0EUB8+R0tMAQZNa4KeyneCCBb9/cpMAQZta8Ke5+gFUAw/gQVGPyN
etFGF4VaAaTiT2iBwd+oI210UagVQKT0H1Fg8DfqSxvdJkErAP25AElyTYdRdwrZCHB2fkV/y8qUAoO/
UacKMe/OaQQoWf5E0M8XdmyjfhViiqONAMUWgOkFBn+jrhViloFGgAL151QFBn+jASgEbm8EKHAH8Pq7
nxQI+mQ0Bp3A+YvcK3DaAoO/0TB0Aucvsq7AyQsM/kYj0Qmcv8j03DmC/uMnl60zJIzGoxM4f5EjBcpX
YPA3GpJO4Pz0AmQtMPgbjUonjQBpc1B4v3WAtNHAdALnL+i/poCEp529AqOxqSWZAFh1xeO+bTQ8tSQT
QE/wMUbDU0syAWSTzm2j4aklmQA5thWnGA1PLVUAYWoIEqYuwsIkE6CmoXEkEwDUG7EIailCkqYUUYtx
gmSphoJajvakEaBuyAjSbMjULUlBmi3JuikvSLMpXx9LEaR5LKU+mCUF3N4+GZcjEeqlPppoA7e3AmRd
h4n6cG4H3N4KkHsdJhCO6uPpAG5vBQD0twLUL2gYz7cCFFsGbLIWLagvbZgFYCNA/ZJeYfhLegXuBobA
klC/ptpQv6hdjJ4vagOpKNQx91cVCEahDiwJ831ZB6ivqynA4OtqQH1hUwFcL2wC9ZVlWRl5ZRkQX4pt
phQtqCkl2MuvgQWor63MBxw7/tpKULI46klE0YJa0IApfxI9Aii8CEBo0YIOF6f39Ac9AgCFFwEIKlrQ
seL0nv6gXwBopScdImbx+nqg555gm9GiBS4UOkQWyv1tBgUAIpsEnriLFvvwEyZAQ3XIgaNogayJPiyI
XfnZxiUA0Lka2+zzz1gZZPcJfMClgJUZcR/gmsA/6QNS2HX/IcYFwBWk8LZAP3CaO/gYxgUA9cc8I0j2
Y56GTE+x7ytwFzlwCF8BgP7FQAk+ob8jQADNt8d6cNz09hIgAKg/6u8Gzsn4o/6GqsEQEd4HwQIAdEN9
V0CE90GMAKAmpoRn0rlNpACgxiJDXOTpiBcAVA0meh9MEgCg+9nmppj4RO+DqQIApL0zvEfDlIPy/SES
CGCYVa3Cv9IwSjIBADKBvV8SMMHohKeXlAKA6/XNHocjTM2nwhxEYgEM+vfRIhjd24ojiwAAZ4rmPf0g
MJHkJ35HLgEMx6cXO52kYvCOJ0qSkFcAgFwNF+/OLc4YMIadJNF0k10Aww7JUMz1hkICGDCr1dGJ2qCE
gWF4xVxvKCpABwKrhu+jdWAwuWP9EDICGJBa4IwTvG9A1xhAvgzHB0kBOowSxdJWdCTu9w4VAticnV9h
DYSPEq7YaAoNolnzhhhVqBPABiep0eNgeQgP+qhifA1wiPG4kjO9n+cv/gd8y5cbPUSgCAAAAABJRU5E
rkJggg==
</value>
</data>
<data name="picXAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
G11JqiIAAAAASUVORK5CYII=
</value>
</data>
<data name="picXDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
8xf/A9T6lxuOo1EAAAAAAElFTkSuQmCC
</value>
</data>
<data name="picZDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="picUDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="picZAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="picUAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<metadata name="contextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>611, 17</value>
</metadata>
<data name="axCKVisionCtrl1.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAJQAAAAIB
AAAAAQAAAAAAAAAAAAAAABAAAAAAAAEAHT4AANk1AAAAAAAACw==
</value>
</data>
<metadata name="Column_pointNum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Name.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_X.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Y.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Z.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_U.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_preheatTemperature.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_preheatTemperatureMax.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_preheatTemperatureMin.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_preheatTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_weldTemperature.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_weldTemperatureMax.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_weldTemperatureMin.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_weldTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_startSendWireSpeed.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_startSendWireTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_sendWireSpeed.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_sendWireTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_pointType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_isClear.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_HandDirection.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_ClearTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_getPosition.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_MoveTest.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_btnDetail.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Del.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Up.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="Column_Up.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAANRJREFUSEvtk8ENhSAMQBnAgHplD/c/w8UN1Dkg4adESJWKlsM/8ZIm0FIekCDC
n+iiZtgia20MLizRvu9BCBEDxhw+i7CkRfZJdBxHIUkBtS+8irZty5tqrckxrHmjKsLPNc9zzKU5ME1T
nr8946MIS5RSZ/YqAqCWcjUZKcISODUm5THjOOb8k6wQGWNyE75JItXuSClzDfa4U3TAZ4TF0EjxJAKG
YYg16kOTHeu6Bu/9ObtSEznnYi8F3VGhJqrRRV2UYXcsyxKDC/9ojXRRIyH8ACKfopRlVag2AAAAAElF
TkSuQmCC
</value>
</data>
<metadata name="Column_Down.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="Column_Down.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAONJREFUSEvtk00OhCAMRlkb49/We3j/tS70BuI1TAwzH8FOVQTrYla8pIkttg9I
UOZPJNFrxKKu62xIEYuUUjakJFESEd6OcRzNuq4uOxISbdtmpmly2ZFLR9/3dlCWZa5yJCQqy9KuYcaZ
S8cwDDQsz3NX/XEnqqqK1jDjjHdrWmtqwi45e51T1zXV0evDfwdfuKwoCle9ivhJ7iTgVgS4DLsGew6a
pqE8JAFBEZjnmYa1bev9xj8xoiKwLAsNPQfWnvBIBPg17hG7Ls5jEeAyiQSIRABvxPdOYohFb0milxjz
AeLDoohrNFdzAAAAAElFTkSuQmCC
</value>
</data>
<data name="dataGridViewImageColumn1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAANRJREFUSEvtk8ENhSAMQBnAgHplD/c/w8UN1Dkg4adESJWKlsM/8ZIm0FIekCDC
n+iiZtgia20MLizRvu9BCBEDxhw+i7CkRfZJdBxHIUkBtS+8irZty5tqrckxrHmjKsLPNc9zzKU5ME1T
nr8946MIS5RSZ/YqAqCWcjUZKcISODUm5THjOOb8k6wQGWNyE75JItXuSClzDfa4U3TAZ4TF0EjxJAKG
YYg16kOTHeu6Bu/9ObtSEznnYi8F3VGhJqrRRV2UYXcsyxKDC/9ojXRRIyH8ACKfopRlVag2AAAAAElF
TkSuQmCC
</value>
</data>
<data name="dataGridViewImageColumn2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAONJREFUSEvtk00OhCAMRlkb49/We3j/tS70BuI1TAwzH8FOVQTrYla8pIkttg9I
UOZPJNFrxKKu62xIEYuUUjakJFESEd6OcRzNuq4uOxISbdtmpmly2ZFLR9/3dlCWZa5yJCQqy9KuYcaZ
S8cwDDQsz3NX/XEnqqqK1jDjjHdrWmtqwi45e51T1zXV0evDfwdfuKwoCle9ivhJ7iTgVgS4DLsGew6a
pqE8JAFBEZjnmYa1bev9xj8xoiKwLAsNPQfWnvBIBPg17hG7Ls5jEeAyiQSIRABvxPdOYohFb0milxjz
AeLDoohrNFdzAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>35</value>
</metadata>
</root>
\ No newline at end of file
......@@ -955,7 +955,7 @@ namespace URSoldering.Client
MessageBox.Show("未找到焊点信息!");
return;
}
FrmWeldPointInfo fwpi = new FrmWeldPointInfo(weldPointInfo);
FrmPointInfo fwpi = new FrmPointInfo(weldPointInfo);
fwpi.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
......@@ -1049,7 +1049,7 @@ namespace URSoldering.Client
{
WeldPointInfo point = new WeldPointInfo();
string name = "P" + (dgvList.Rows.Count + 1);
FrmWeldPointInfo fwpi = new FrmWeldPointInfo(name,robotP);
FrmPointInfo fwpi = new FrmPointInfo(name,robotP);
DialogResult result = fwpi.ShowDialog();
if (result.Equals(DialogResult.OK))
{
......
namespace URSoldering.Client
{
partial class FrmCodeLearn
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.btnStop = new System.Windows.Forms.Button();
this.btnOpen = new System.Windows.Forms.Button();
this.hWindowControl1 = new HalconDotNet.HWindowControl();
this.btnExit = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.cmbCameraList = new System.Windows.Forms.ComboBox();
this.cmbCodeType = new System.Windows.Forms.ComboBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.txtParamPath = new System.Windows.Forms.TextBox();
this.lblCount = new System.Windows.Forms.Label();
this.cmbCount = new System.Windows.Forms.ComboBox();
this.richTextBox2 = new System.Windows.Forms.RichTextBox();
this.btnClearLog = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// timer1
//
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// btnStop
//
this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStop.Location = new System.Drawing.Point(707, 68);
this.btnStop.Name = "btnStop";
this.btnStop.Size = new System.Drawing.Size(106, 35);
this.btnStop.TabIndex = 3;
this.btnStop.Text = "结束学习";
this.btnStop.UseVisualStyleBackColor = true;
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
//
// btnOpen
//
this.btnOpen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnOpen.Location = new System.Drawing.Point(707, 27);
this.btnOpen.Name = "btnOpen";
this.btnOpen.Size = new System.Drawing.Size(106, 35);
this.btnOpen.TabIndex = 1;
this.btnOpen.Text = "开始学习";
this.btnOpen.UseVisualStyleBackColor = true;
this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click);
//
// hWindowControl1
//
this.hWindowControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.hWindowControl1.BackColor = System.Drawing.Color.Black;
this.hWindowControl1.BorderColor = System.Drawing.Color.Black;
this.hWindowControl1.ImagePart = new System.Drawing.Rectangle(0, 0, 640, 480);
this.hWindowControl1.Location = new System.Drawing.Point(6, 126);
this.hWindowControl1.Name = "hWindowControl1";
this.hWindowControl1.Size = new System.Drawing.Size(524, 449);
this.hWindowControl1.TabIndex = 5;
this.hWindowControl1.WindowSize = new System.Drawing.Size(524, 449);
//
// btnExit
//
this.btnExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExit.Location = new System.Drawing.Point(819, 26);
this.btnExit.Name = "btnExit";
this.btnExit.Size = new System.Drawing.Size(106, 35);
this.btnExit.TabIndex = 6;
this.btnExit.Text = "退出";
this.btnExit.UseVisualStyleBackColor = true;
this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(25, 15);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(56, 17);
this.label1.TabIndex = 7;
this.label1.Text = "摄像头:";
//
// cmbCameraList
//
this.cmbCameraList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbCameraList.FormattingEnabled = true;
this.cmbCameraList.Location = new System.Drawing.Point(88, 11);
this.cmbCameraList.Name = "cmbCameraList";
this.cmbCameraList.Size = new System.Drawing.Size(121, 25);
this.cmbCameraList.TabIndex = 8;
//
// cmbCodeType
//
this.cmbCodeType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbCodeType.FormattingEnabled = true;
this.cmbCodeType.Location = new System.Drawing.Point(316, 11);
this.cmbCodeType.Name = "cmbCodeType";
this.cmbCodeType.Size = new System.Drawing.Size(121, 25);
this.cmbCodeType.TabIndex = 10;
this.cmbCodeType.SelectedIndexChanged += new System.EventHandler(this.cmbCodeType_SelectedIndexChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(229, 15);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(80, 17);
this.label2.TabIndex = 9;
this.label2.Text = "条码类型:";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(15, 58);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(68, 17);
this.label3.TabIndex = 11;
this.label3.Text = "参数路径:";
//
// txtParamPath
//
this.txtParamPath.Location = new System.Drawing.Point(77, 55);
this.txtParamPath.Multiline = true;
this.txtParamPath.Name = "txtParamPath";
this.txtParamPath.Size = new System.Drawing.Size(603, 56);
this.txtParamPath.TabIndex = 12;
//
// lblCount
//
this.lblCount.AutoSize = true;
this.lblCount.Location = new System.Drawing.Point(461, 15);
this.lblCount.Name = "lblCount";
this.lblCount.Size = new System.Drawing.Size(80, 17);
this.lblCount.TabIndex = 13;
this.lblCount.Text = "条码数量:";
//
// cmbCount
//
this.cmbCount.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbCount.FormattingEnabled = true;
this.cmbCount.Items.AddRange(new object[] {
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"});
this.cmbCount.Location = new System.Drawing.Point(536, 11);
this.cmbCount.Name = "cmbCount";
this.cmbCount.Size = new System.Drawing.Size(87, 25);
this.cmbCount.TabIndex = 14;
//
// richTextBox2
//
this.richTextBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.richTextBox2.Location = new System.Drawing.Point(536, 126);
this.richTextBox2.Name = "richTextBox2";
this.richTextBox2.Size = new System.Drawing.Size(391, 449);
this.richTextBox2.TabIndex = 15;
this.richTextBox2.Text = "";
//
// btnClearLog
//
this.btnClearLog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnClearLog.Location = new System.Drawing.Point(819, 68);
this.btnClearLog.Name = "btnClearLog";
this.btnClearLog.Size = new System.Drawing.Size(106, 35);
this.btnClearLog.TabIndex = 16;
this.btnClearLog.Text = "清理日志";
this.btnClearLog.UseVisualStyleBackColor = true;
this.btnClearLog.Click += new System.EventHandler(this.btnClearLog_Click);
//
// FrmCodeLearn
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(935, 585);
this.Controls.Add(this.btnClearLog);
this.Controls.Add(this.richTextBox2);
this.Controls.Add(this.cmbCount);
this.Controls.Add(this.lblCount);
this.Controls.Add(this.txtParamPath);
this.Controls.Add(this.label3);
this.Controls.Add(this.cmbCodeType);
this.Controls.Add(this.label2);
this.Controls.Add(this.cmbCameraList);
this.Controls.Add(this.label1);
this.Controls.Add(this.btnExit);
this.Controls.Add(this.hWindowControl1);
this.Controls.Add(this.btnStop);
this.Controls.Add(this.btnOpen);
this.MaximizeBox = true;
this.Name = "FrmCodeLearn";
this.Text = "条码参数学习";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FrmCamera_FormClosed);
this.Load += new System.EventHandler(this.FrmCamera_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnOpen;
private System.Windows.Forms.Button btnStop;
private System.Windows.Forms.Timer timer1;
private HalconDotNet.HWindowControl hWindowControl1;
private System.Windows.Forms.Button btnExit;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox cmbCameraList;
private System.Windows.Forms.ComboBox cmbCodeType;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtParamPath;
private System.Windows.Forms.Label lblCount;
private System.Windows.Forms.ComboBox cmbCount;
private System.Windows.Forms.RichTextBox richTextBox2;
private System.Windows.Forms.Button btnClearLog;
}
}
\ No newline at end of file

using URSoldering.Common;
using URSoldering.DeviceLibrary;
using System;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace URSoldering.Client
{
public partial class FrmCodeLearn : FrmBase
{
private static string appPath = Application.StartupPath;
private static string path = appPath + ConfigAppSettings.GetValue(Setting_Init.CodeParamPath);
public FrmCodeLearn()
{
InitializeComponent();
}
private void btnOpen_Click(object sender, EventArgs e)
{
string filePath = FormUtil.getValue(txtParamPath);
if (File.Exists(filePath))
{
}
else
{
try
{
File.Create(filePath);
}
catch (Exception ex)
{
LogUtil.error("创建文件:" + filePath + " 失败");
MessageBox.Show("创建文件失败!");
txtParamPath.SelectAll();
txtParamPath.Focus();
return;
}
}
//File.Delete(filePath);
string cameraName = cmbCameraList.Text;
string codeType = this.cmbCodeType.Text;
int count = cmbCount.SelectedIndex + 1;
Task.Factory.StartNew(delegate ()
{
HDevelopCodeLearn.RunHalcon(this.hWindowControl1.HalconWindow, cameraName, codeType, filePath, count);
});
FormStatus(true);
}
private void FormStatus(bool open)
{
btnOpen.Enabled = !open;
btnStop.Enabled = open;
//timer1.Enabled = open;
//cmbCount.Enabled = !open;
//cmbCodeType.Enabled = !open;
//cmbCameraList.Enabled = !open;
}
private void btnStop_Click(object sender, EventArgs e)
{
HDevelopCodeLearn.StopLearn();
FormStatus(false);
}
private void FrmCamera_Load(object sender, EventArgs e)
{
LogUtil.logBox = this.richTextBox2;
HDevelopExport.LoadConfig(ConfigAppSettings.GetValue(Setting_Init.CameraName),ConfigAppSettings.GetValue(Setting_Init.CodeType));
FormStatus(false);
cmbCameraList.DataSource = HDevelopExport.cameraNameList;
if (HDevelopExport.cameraNameList.Count > 0)
{
cmbCameraList.SelectedIndex = 0;
}
cmbCodeType.DataSource = HDevelopExport.codeTypeList;
if (HDevelopExport.codeTypeList.Count > 0)
{
cmbCodeType.SelectedIndex = 0;
}
else
{
cmbCodeType.Items.Add("QR Code");
cmbCodeType.SelectedIndex = 0;
}
string filePath = path + cmbCodeType.Text + ".dcm";
txtParamPath.Text = filePath;
cmbCount.SelectedIndex = 0;
timer1.Start();
}
private void FrmCamera_FormClosed(object sender, FormClosedEventArgs e)
{
if (btnStop.Enabled.Equals(true))
{
btnStop_Click(null, null);
LogUtil.logBox = null;
FormStatus(false);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
if (HDevelopCodeLearn.IsRun)
{
if (btnOpen.Enabled)
{
btnOpen.Enabled = false ;
}
}
else
{
if (btnOpen.Enabled.Equals(false))
{
btnOpen.Enabled = true;
}
}
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void cmbCodeType_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbCodeType.SelectedIndex >= 0)
{
string filePath = path + cmbCodeType.Text + ".dcm";
txtParamPath.Text = filePath;
}
}
private void btnClearLog_Click(object sender, EventArgs e)
{
LogUtil.ClearLog();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
</root>
\ No newline at end of file
namespace LineSoldering.Client
{
partial class FrmProgramList
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnAdd = new System.Windows.Forms.Button();
this.groupInfo = new System.Windows.Forms.GroupBox();
this.cmbAoiFile = new System.Windows.Forms.ComboBox();
this.label3 = new System.Windows.Forms.Label();
this.chbStation2Check2 = new System.Windows.Forms.CheckBox();
this.chbStation2Check1 = new System.Windows.Forms.CheckBox();
this.cmbFixtureType = new System.Windows.Forms.ComboBox();
this.chbMaterialCheck2 = new System.Windows.Forms.CheckBox();
this.label10 = new System.Windows.Forms.Label();
this.chbMaterialCheck1 = new System.Windows.Forms.CheckBox();
this.txtId = new System.Windows.Forms.TextBox();
this.txtDetial = new System.Windows.Forms.TextBox();
this.chbCoverPlate = new System.Windows.Forms.CheckBox();
this.label9 = new System.Windows.Forms.Label();
this.txtPartNumber = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.label25 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label24 = new System.Windows.Forms.Label();
this.txtWareCode = new System.Windows.Forms.TextBox();
this.txtLength = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.txtWidth = new System.Windows.Forms.TextBox();
this.btnSave = new System.Windows.Forms.Button();
this.dgvList = new System.Windows.Forms.DataGridView();
this.Column_Id = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_AoiFile = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_boardCode = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Length = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Width = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_FixtureType = new System.Windows.Forms.DataGridViewComboBoxColumn();
this.Column_Check1 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Column_Check2 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Column_CoverPlate = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Column_Station2Check1 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Column_Station2Check2 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Column_Del = new System.Windows.Forms.DataGridViewLinkColumn();
this.btnBack = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.groupInfo.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvList)).BeginInit();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.btnAdd);
this.groupBox1.Controls.Add(this.groupInfo);
this.groupBox1.Controls.Add(this.btnSave);
this.groupBox1.Controls.Add(this.dgvList);
this.groupBox1.Controls.Add(this.btnBack);
this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(10, 5);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(986, 537);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "程序列表";
//
// btnAdd
//
this.btnAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnAdd.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnAdd.Location = new System.Drawing.Point(858, 37);
this.btnAdd.Name = "btnAdd";
this.btnAdd.Size = new System.Drawing.Size(120, 40);
this.btnAdd.TabIndex = 71;
this.btnAdd.Text = "新增";
this.btnAdd.UseVisualStyleBackColor = true;
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
//
// groupInfo
//
this.groupInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupInfo.Controls.Add(this.cmbAoiFile);
this.groupInfo.Controls.Add(this.label3);
this.groupInfo.Controls.Add(this.chbStation2Check2);
this.groupInfo.Controls.Add(this.chbStation2Check1);
this.groupInfo.Controls.Add(this.cmbFixtureType);
this.groupInfo.Controls.Add(this.chbMaterialCheck2);
this.groupInfo.Controls.Add(this.label10);
this.groupInfo.Controls.Add(this.chbMaterialCheck1);
this.groupInfo.Controls.Add(this.txtId);
this.groupInfo.Controls.Add(this.txtDetial);
this.groupInfo.Controls.Add(this.chbCoverPlate);
this.groupInfo.Controls.Add(this.label9);
this.groupInfo.Controls.Add(this.txtPartNumber);
this.groupInfo.Controls.Add(this.label6);
this.groupInfo.Controls.Add(this.label25);
this.groupInfo.Controls.Add(this.label1);
this.groupInfo.Controls.Add(this.label24);
this.groupInfo.Controls.Add(this.txtWareCode);
this.groupInfo.Controls.Add(this.txtLength);
this.groupInfo.Controls.Add(this.label5);
this.groupInfo.Controls.Add(this.label2);
this.groupInfo.Controls.Add(this.txtWidth);
this.groupInfo.Location = new System.Drawing.Point(10, 22);
this.groupInfo.Name = "groupInfo";
this.groupInfo.Size = new System.Drawing.Size(842, 154);
this.groupInfo.TabIndex = 68;
this.groupInfo.TabStop = false;
this.groupInfo.Text = "新增";
//
// cmbAoiFile
//
this.cmbAoiFile.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbAoiFile.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cmbAoiFile.FormattingEnabled = true;
this.cmbAoiFile.Location = new System.Drawing.Point(99, 62);
this.cmbAoiFile.Name = "cmbAoiFile";
this.cmbAoiFile.Size = new System.Drawing.Size(201, 25);
this.cmbAoiFile.TabIndex = 7;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(15, 67);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(78, 17);
this.label3.TabIndex = 272;
this.label3.Text = "AOI检测程序";
//
// chbStation2Check2
//
this.chbStation2Check2.AutoSize = true;
this.chbStation2Check2.Location = new System.Drawing.Point(470, 115);
this.chbStation2Check2.Name = "chbStation2Check2";
this.chbStation2Check2.Size = new System.Drawing.Size(118, 21);
this.chbStation2Check2.TabIndex = 269;
this.chbStation2Check2.Text = "检测2工位物料右";
this.chbStation2Check2.UseVisualStyleBackColor = true;
//
// chbStation2Check1
//
this.chbStation2Check1.AutoSize = true;
this.chbStation2Check1.Location = new System.Drawing.Point(333, 115);
this.chbStation2Check1.Name = "chbStation2Check1";
this.chbStation2Check1.Size = new System.Drawing.Size(118, 21);
this.chbStation2Check1.TabIndex = 260;
this.chbStation2Check1.Text = "检测2工位物料左";
this.chbStation2Check1.UseVisualStyleBackColor = true;
//
// cmbFixtureType
//
this.cmbFixtureType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbFixtureType.FormattingEnabled = true;
this.cmbFixtureType.Items.AddRange(new object[] {
"夹具A",
"夹具B",
"夹具C"});
this.cmbFixtureType.Location = new System.Drawing.Point(391, 62);
this.cmbFixtureType.Name = "cmbFixtureType";
this.cmbFixtureType.Size = new System.Drawing.Size(95, 25);
this.cmbFixtureType.TabIndex = 271;
//
// chbMaterialCheck2
//
this.chbMaterialCheck2.AutoSize = true;
this.chbMaterialCheck2.Location = new System.Drawing.Point(133, 115);
this.chbMaterialCheck2.Name = "chbMaterialCheck2";
this.chbMaterialCheck2.Size = new System.Drawing.Size(87, 21);
this.chbMaterialCheck2.TabIndex = 268;
this.chbMaterialCheck2.Text = "检测物料右";
this.chbMaterialCheck2.UseVisualStyleBackColor = true;
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(330, 67);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(56, 17);
this.label10.TabIndex = 270;
this.label10.Text = "夹具类型";
//
// chbMaterialCheck1
//
this.chbMaterialCheck1.AutoSize = true;
this.chbMaterialCheck1.Location = new System.Drawing.Point(27, 115);
this.chbMaterialCheck1.Name = "chbMaterialCheck1";
this.chbMaterialCheck1.Size = new System.Drawing.Size(87, 21);
this.chbMaterialCheck1.TabIndex = 267;
this.chbMaterialCheck1.Text = "检测物料左";
this.chbMaterialCheck1.UseVisualStyleBackColor = true;
//
// txtId
//
this.txtId.Enabled = false;
this.txtId.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtId.Location = new System.Drawing.Point(734, 17);
this.txtId.MaxLength = 30;
this.txtId.Name = "txtId";
this.txtId.Size = new System.Drawing.Size(12, 29);
this.txtId.TabIndex = 74;
this.txtId.Visible = false;
//
// txtDetial
//
this.txtDetial.Location = new System.Drawing.Point(549, 64);
this.txtDetial.Name = "txtDetial";
this.txtDetial.Size = new System.Drawing.Size(226, 23);
this.txtDetial.TabIndex = 266;
//
// chbCoverPlate
//
this.chbCoverPlate.AutoSize = true;
this.chbCoverPlate.Location = new System.Drawing.Point(239, 115);
this.chbCoverPlate.Name = "chbCoverPlate";
this.chbCoverPlate.Size = new System.Drawing.Size(75, 21);
this.chbCoverPlate.TabIndex = 258;
this.chbCoverPlate.Text = "检测盖板";
this.chbCoverPlate.UseVisualStyleBackColor = true;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(513, 67);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(32, 17);
this.label9.TabIndex = 265;
this.label9.Text = "备注";
//
// txtPartNumber
//
this.txtPartNumber.Location = new System.Drawing.Point(101, 25);
this.txtPartNumber.MaxLength = 20;
this.txtPartNumber.Name = "txtPartNumber";
this.txtPartNumber.Size = new System.Drawing.Size(199, 23);
this.txtPartNumber.TabIndex = 259;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(37, 28);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(56, 17);
this.label6.TabIndex = 258;
this.label6.Text = "程序名称";
//
// label25
//
this.label25.AutoSize = true;
this.label25.Location = new System.Drawing.Point(626, 28);
this.label25.Name = "label25";
this.label25.Size = new System.Drawing.Size(30, 17);
this.label25.TabIndex = 37;
this.label25.Text = "mm";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(752, 25);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(44, 17);
this.label1.TabIndex = 261;
this.label1.Text = "二维码";
this.label1.Visible = false;
//
// label24
//
this.label24.AutoSize = true;
this.label24.Location = new System.Drawing.Point(467, 28);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(30, 17);
this.label24.TabIndex = 36;
this.label24.Text = "mm";
//
// txtWareCode
//
this.txtWareCode.Location = new System.Drawing.Point(799, 25);
this.txtWareCode.MaxLength = 20;
this.txtWareCode.Name = "txtWareCode";
this.txtWareCode.Size = new System.Drawing.Size(10, 23);
this.txtWareCode.TabIndex = 262;
this.txtWareCode.Visible = false;
//
// txtLength
//
this.txtLength.Location = new System.Drawing.Point(391, 25);
this.txtLength.MaxLength = 8;
this.txtLength.Name = "txtLength";
this.txtLength.Size = new System.Drawing.Size(72, 23);
this.txtLength.TabIndex = 4;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(513, 28);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(32, 17);
this.label5.TabIndex = 5;
this.label5.Text = "宽度";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(354, 28);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(32, 17);
this.label2.TabIndex = 3;
this.label2.Text = "长度";
//
// txtWidth
//
this.txtWidth.Location = new System.Drawing.Point(549, 25);
this.txtWidth.MaxLength = 8;
this.txtWidth.Name = "txtWidth";
this.txtWidth.Size = new System.Drawing.Size(72, 23);
this.txtWidth.TabIndex = 6;
//
// btnSave
//
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSave.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSave.Location = new System.Drawing.Point(858, 83);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(120, 40);
this.btnSave.TabIndex = 36;
this.btnSave.Text = "保存";
this.btnSave.UseVisualStyleBackColor = true;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
//
// dgvList
//
this.dgvList.AllowUserToAddRows = false;
this.dgvList.AllowUserToDeleteRows = false;
this.dgvList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dgvList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvList.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column_Id,
this.Column_Name,
this.Column_AoiFile,
this.Column_boardCode,
this.Column_Length,
this.Column_Width,
this.Column_FixtureType,
this.Column_Check1,
this.Column_Check2,
this.Column_CoverPlate,
this.Column_Station2Check1,
this.Column_Station2Check2,
this.Column_Del});
this.dgvList.Location = new System.Drawing.Point(10, 194);
this.dgvList.MultiSelect = false;
this.dgvList.Name = "dgvList";
this.dgvList.ReadOnly = true;
this.dgvList.RowHeadersWidth = 5;
this.dgvList.RowTemplate.Height = 23;
this.dgvList.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dgvList.Size = new System.Drawing.Size(968, 329);
this.dgvList.TabIndex = 32;
this.dgvList.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvList_CellContentClick);
this.dgvList.SelectionChanged += new System.EventHandler(this.dgvList_SelectionChanged);
//
// Column_Id
//
this.Column_Id.DataPropertyName = "Id";
this.Column_Id.HeaderText = "Id";
this.Column_Id.Name = "Column_Id";
this.Column_Id.ReadOnly = true;
this.Column_Id.Visible = false;
this.Column_Id.Width = 80;
//
// Column_Name
//
this.Column_Name.DataPropertyName = "PartNumber";
this.Column_Name.HeaderText = "名称";
this.Column_Name.Name = "Column_Name";
this.Column_Name.ReadOnly = true;
this.Column_Name.Width = 160;
//
// Column_AoiFile
//
this.Column_AoiFile.DataPropertyName = "AoiFile";
this.Column_AoiFile.HeaderText = "AOI检测程序文件";
this.Column_AoiFile.Name = "Column_AoiFile";
this.Column_AoiFile.ReadOnly = true;
this.Column_AoiFile.Width = 190;
//
// Column_boardCode
//
this.Column_boardCode.DataPropertyName = "boardCode";
this.Column_boardCode.HeaderText = "条形码";
this.Column_boardCode.Name = "Column_boardCode";
this.Column_boardCode.ReadOnly = true;
this.Column_boardCode.Visible = false;
//
// Column_Length
//
this.Column_Length.DataPropertyName = "Length";
this.Column_Length.HeaderText = "长度";
this.Column_Length.Name = "Column_Length";
this.Column_Length.ReadOnly = true;
this.Column_Length.Width = 55;
//
// Column_Width
//
this.Column_Width.DataPropertyName = "Width";
this.Column_Width.HeaderText = "宽度";
this.Column_Width.Name = "Column_Width";
this.Column_Width.ReadOnly = true;
this.Column_Width.Width = 55;
//
// Column_FixtureType
//
this.Column_FixtureType.DataPropertyName = "FixtureType";
this.Column_FixtureType.HeaderText = "夹具类型";
this.Column_FixtureType.Name = "Column_FixtureType";
this.Column_FixtureType.ReadOnly = true;
this.Column_FixtureType.Width = 75;
//
// Column_Check1
//
this.Column_Check1.DataPropertyName = "IsMaterialCheck1";
this.Column_Check1.HeaderText = "物料左";
this.Column_Check1.Name = "Column_Check1";
this.Column_Check1.ReadOnly = true;
this.Column_Check1.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.Column_Check1.Width = 60;
//
// Column_Check2
//
this.Column_Check2.DataPropertyName = "IsMaterialCheck2";
this.Column_Check2.HeaderText = "物料右";
this.Column_Check2.Name = "Column_Check2";
this.Column_Check2.ReadOnly = true;
this.Column_Check2.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.Column_Check2.Width = 60;
//
// Column_CoverPlate
//
this.Column_CoverPlate.DataPropertyName = "IsCoverPlate";
this.Column_CoverPlate.HeaderText = "盖板";
this.Column_CoverPlate.Name = "Column_CoverPlate";
this.Column_CoverPlate.ReadOnly = true;
this.Column_CoverPlate.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.Column_CoverPlate.Width = 50;
//
// Column_Station2Check1
//
this.Column_Station2Check1.DataPropertyName = "IsStation2Check1";
this.Column_Station2Check1.HeaderText = "2工位物料左";
this.Column_Station2Check1.Name = "Column_Station2Check1";
this.Column_Station2Check1.ReadOnly = true;
this.Column_Station2Check1.Width = 90;
//
// Column_Station2Check2
//
this.Column_Station2Check2.DataPropertyName = "IsStation2Check2";
this.Column_Station2Check2.HeaderText = "2工位物料右";
this.Column_Station2Check2.Name = "Column_Station2Check2";
this.Column_Station2Check2.ReadOnly = true;
this.Column_Station2Check2.Width = 90;
//
// Column_Del
//
this.Column_Del.HeaderText = "删除";
this.Column_Del.Name = "Column_Del";
this.Column_Del.ReadOnly = true;
this.Column_Del.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.Column_Del.Text = "删除";
this.Column_Del.ToolTipText = "删除";
this.Column_Del.UseColumnTextForLinkValue = true;
this.Column_Del.Width = 50;
//
// btnBack
//
this.btnBack.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnBack.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnBack.Location = new System.Drawing.Point(858, 129);
this.btnBack.Name = "btnBack";
this.btnBack.Size = new System.Drawing.Size(120, 40);
this.btnBack.TabIndex = 6;
this.btnBack.Text = "返回(&B)";
this.btnBack.UseVisualStyleBackColor = true;
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
//
// FrmProgramList
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1006, 551);
this.Controls.Add(this.groupBox1);
this.Name = "FrmProgramList";
this.Text = "程序列表编辑";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmComponentList_FormClosing);
this.Load += new System.EventHandler(this.FrmPointType_Load);
this.groupBox1.ResumeLayout(false);
this.groupInfo.ResumeLayout(false);
this.groupInfo.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvList)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button btnBack;
private System.Windows.Forms.DataGridView dgvList;
private System.Windows.Forms.GroupBox groupInfo;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.TextBox txtId;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Num;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Detial;
private System.Windows.Forms.Button btnAdd;
private System.Windows.Forms.ComboBox cmbFixtureType;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.CheckBox chbStation2Check2;
private System.Windows.Forms.CheckBox chbMaterialCheck2;
private System.Windows.Forms.CheckBox chbMaterialCheck1;
private System.Windows.Forms.CheckBox chbStation2Check1;
private System.Windows.Forms.CheckBox chbCoverPlate;
private System.Windows.Forms.TextBox txtPartNumber;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label25;
private System.Windows.Forms.Label label24;
private System.Windows.Forms.TextBox txtLength;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtWidth;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtWareCode;
private System.Windows.Forms.TextBox txtDetial;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.ComboBox cmbAoiFile;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Id;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Name;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_AoiFile;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_boardCode;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Length;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Width;
private System.Windows.Forms.DataGridViewComboBoxColumn Column_FixtureType;
private System.Windows.Forms.DataGridViewCheckBoxColumn Column_Check1;
private System.Windows.Forms.DataGridViewCheckBoxColumn Column_Check2;
private System.Windows.Forms.DataGridViewCheckBoxColumn Column_CoverPlate;
private System.Windows.Forms.DataGridViewCheckBoxColumn Column_Station2Check1;
private System.Windows.Forms.DataGridViewCheckBoxColumn Column_Station2Check2;
private System.Windows.Forms.DataGridViewLinkColumn Column_Del;
}
}
\ No newline at end of file
......@@ -38,7 +38,7 @@ namespace URSoldering.Client
private void btnConfig_Click(object sender, EventArgs e)
{
FrmSolderingSetting setting = new FrmSolderingSetting();
FrmSetting setting = new FrmSetting();
this.Visible = false;
setting.ShowDialog();
this.Visible = true;
......@@ -53,15 +53,6 @@ namespace URSoldering.Client
FrmAOISetting frm = new FrmAOISetting(this);
this.Visible = false;
frm.Show();
}
private void btnCamera_Click(object sender, EventArgs e)
{
FrmCamera frm = new FrmCamera();
//FrmCodeLearn frm = new FrmCodeLearn();
this.Visible = false;
frm.ShowDialog();
this.Visible = true;
}
}
}
}
namespace LineSoldering.Client
{
partial class FrmMesConfig
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnClose = new System.Windows.Forms.Button();
this.btnSaveSetting = new System.Windows.Forms.Button();
this.gbEpsonSetting = new System.Windows.Forms.GroupBox();
this.chbIsConnect = new System.Windows.Forms.CheckBox();
this.txtPort = new System.Windows.Forms.TextBox();
this.txtEMSIP = new System.Windows.Forms.TextBox();
this.lblControlPort = new System.Windows.Forms.Label();
this.lblEpsonIP = new System.Windows.Forms.Label();
this.btnStop = new System.Windows.Forms.Button();
this.btnConnect = new System.Windows.Forms.Button();
this.txtCode = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.btnCheckCode = new System.Windows.Forms.Button();
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.btnSendResult = new System.Windows.Forms.Button();
this.txtPressValue = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.txtResult = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.btnClear = new System.Windows.Forms.Button();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.txtSCode2 = new System.Windows.Forms.TextBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.btnSConnect = new System.Windows.Forms.Button();
this.btnSCheck = new System.Windows.Forms.Button();
this.btnSSend = new System.Windows.Forms.Button();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.btnScrewConnect = new System.Windows.Forms.Button();
this.btnScrewCheck = new System.Windows.Forms.Button();
this.btnScrewSend = new System.Windows.Forms.Button();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.gbEpsonSetting.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox4.SuspendLayout();
this.SuspendLayout();
//
// btnClose
//
this.btnClose.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnClose.Location = new System.Drawing.Point(337, 22);
this.btnClose.Name = "btnClose";
this.btnClose.Size = new System.Drawing.Size(113, 34);
this.btnClose.TabIndex = 7;
this.btnClose.Text = "返回(&B)";
this.btnClose.UseVisualStyleBackColor = true;
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
//
// btnSaveSetting
//
this.btnSaveSetting.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSaveSetting.Location = new System.Drawing.Point(337, 72);
this.btnSaveSetting.Name = "btnSaveSetting";
this.btnSaveSetting.Size = new System.Drawing.Size(113, 34);
this.btnSaveSetting.TabIndex = 6;
this.btnSaveSetting.Text = "保存(&S)";
this.btnSaveSetting.UseVisualStyleBackColor = true;
this.btnSaveSetting.Click += new System.EventHandler(this.btnSaveSetting_Click);
//
// gbEpsonSetting
//
this.gbEpsonSetting.Controls.Add(this.chbIsConnect);
this.gbEpsonSetting.Controls.Add(this.txtPort);
this.gbEpsonSetting.Controls.Add(this.txtEMSIP);
this.gbEpsonSetting.Controls.Add(this.lblControlPort);
this.gbEpsonSetting.Controls.Add(this.lblEpsonIP);
this.gbEpsonSetting.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.gbEpsonSetting.Location = new System.Drawing.Point(12, 13);
this.gbEpsonSetting.Name = "gbEpsonSetting";
this.gbEpsonSetting.Size = new System.Drawing.Size(304, 154);
this.gbEpsonSetting.TabIndex = 1;
this.gbEpsonSetting.TabStop = false;
this.gbEpsonSetting.Text = "MES配置";
//
// chbIsConnect
//
this.chbIsConnect.AutoSize = true;
this.chbIsConnect.Location = new System.Drawing.Point(105, 110);
this.chbIsConnect.Name = "chbIsConnect";
this.chbIsConnect.Size = new System.Drawing.Size(160, 21);
this.chbIsConnect.TabIndex = 22;
this.chbIsConnect.Text = "工作过程中需要连接Mes";
this.chbIsConnect.UseVisualStyleBackColor = true;
//
// txtPort
//
this.txtPort.Location = new System.Drawing.Point(107, 61);
this.txtPort.Name = "txtPort";
this.txtPort.Size = new System.Drawing.Size(133, 23);
this.txtPort.TabIndex = 4;
//
// txtEMSIP
//
this.txtEMSIP.Location = new System.Drawing.Point(107, 22);
this.txtEMSIP.Name = "txtEMSIP";
this.txtEMSIP.Size = new System.Drawing.Size(133, 23);
this.txtEMSIP.TabIndex = 3;
//
// lblControlPort
//
this.lblControlPort.AutoSize = true;
this.lblControlPort.Location = new System.Drawing.Point(17, 65);
this.lblControlPort.Name = "lblControlPort";
this.lblControlPort.Size = new System.Drawing.Size(56, 17);
this.lblControlPort.TabIndex = 1;
this.lblControlPort.Text = "端口号:";
//
// lblEpsonIP
//
this.lblEpsonIP.AutoSize = true;
this.lblEpsonIP.Location = new System.Drawing.Point(17, 26);
this.lblEpsonIP.Name = "lblEpsonIP";
this.lblEpsonIP.Size = new System.Drawing.Size(55, 17);
this.lblEpsonIP.TabIndex = 0;
this.lblEpsonIP.Text = "IP地址:";
//
// btnStop
//
this.btnStop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnStop.Location = new System.Drawing.Point(325, 88);
this.btnStop.Name = "btnStop";
this.btnStop.Size = new System.Drawing.Size(113, 34);
this.btnStop.TabIndex = 9;
this.btnStop.Text = "断开";
this.btnStop.UseVisualStyleBackColor = true;
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
//
// btnConnect
//
this.btnConnect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnConnect.Location = new System.Drawing.Point(31, 30);
this.btnConnect.Name = "btnConnect";
this.btnConnect.Size = new System.Drawing.Size(113, 34);
this.btnConnect.TabIndex = 8;
this.btnConnect.Text = "连接";
this.btnConnect.UseVisualStyleBackColor = true;
this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);
//
// txtCode
//
this.txtCode.Location = new System.Drawing.Point(90, 27);
this.txtCode.MaxLength = 50;
this.txtCode.Name = "txtCode";
this.txtCode.Size = new System.Drawing.Size(133, 23);
this.txtCode.TabIndex = 11;
this.txtCode.Text = "888888";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(18, 30);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(56, 17);
this.label1.TabIndex = 10;
this.label1.Text = "二维码:";
//
// btnCheckCode
//
this.btnCheckCode.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCheckCode.Location = new System.Drawing.Point(162, 30);
this.btnCheckCode.Name = "btnCheckCode";
this.btnCheckCode.Size = new System.Drawing.Size(113, 34);
this.btnCheckCode.TabIndex = 12;
this.btnCheckCode.Text = "验证";
this.btnCheckCode.UseVisualStyleBackColor = true;
this.btnCheckCode.Click += new System.EventHandler(this.btnCheckCode_Click);
//
// richTextBox1
//
this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.richTextBox1.Location = new System.Drawing.Point(478, 12);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(452, 635);
this.richTextBox1.TabIndex = 13;
this.richTextBox1.Text = "";
//
// btnSendResult
//
this.btnSendResult.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSendResult.Location = new System.Drawing.Point(291, 30);
this.btnSendResult.Name = "btnSendResult";
this.btnSendResult.Size = new System.Drawing.Size(113, 34);
this.btnSendResult.TabIndex = 16;
this.btnSendResult.Text = "上传结果";
this.btnSendResult.UseVisualStyleBackColor = true;
this.btnSendResult.Click += new System.EventHandler(this.btnSendResult_Click);
//
// txtPressValue
//
this.txtPressValue.Location = new System.Drawing.Point(90, 107);
this.txtPressValue.MaxLength = 50;
this.txtPressValue.Name = "txtPressValue";
this.txtPressValue.Size = new System.Drawing.Size(133, 23);
this.txtPressValue.TabIndex = 15;
this.txtPressValue.Text = "3000";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(18, 110);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(56, 17);
this.label2.TabIndex = 14;
this.label2.Text = "压力值:";
//
// txtResult
//
this.txtResult.Location = new System.Drawing.Point(89, 67);
this.txtResult.MaxLength = 50;
this.txtResult.Name = "txtResult";
this.txtResult.Size = new System.Drawing.Size(133, 23);
this.txtResult.TabIndex = 18;
this.txtResult.Text = "0";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(30, 70);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(44, 17);
this.label3.TabIndex = 17;
this.label3.Text = "结果:";
//
// btnClear
//
this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnClear.Location = new System.Drawing.Point(337, 122);
this.btnClear.Name = "btnClear";
this.btnClear.Size = new System.Drawing.Size(113, 34);
this.btnClear.TabIndex = 19;
this.btnClear.Text = "清理日志";
this.btnClear.UseVisualStyleBackColor = true;
this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.txtSCode2);
this.groupBox1.Controls.Add(this.btnStop);
this.groupBox1.Controls.Add(this.txtResult);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Controls.Add(this.txtCode);
this.groupBox1.Controls.Add(this.txtPressValue);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Location = new System.Drawing.Point(12, 181);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(450, 149);
this.groupBox1.TabIndex = 20;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "调试参数";
//
// txtSCode2
//
this.txtSCode2.Location = new System.Drawing.Point(229, 27);
this.txtSCode2.MaxLength = 50;
this.txtSCode2.Name = "txtSCode2";
this.txtSCode2.Size = new System.Drawing.Size(133, 23);
this.txtSCode2.TabIndex = 19;
this.txtSCode2.Text = "888888";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.btnSConnect);
this.groupBox2.Controls.Add(this.btnSCheck);
this.groupBox2.Controls.Add(this.btnSSend);
this.groupBox2.Location = new System.Drawing.Point(12, 452);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(450, 82);
this.groupBox2.TabIndex = 21;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "焊接";
//
// btnSConnect
//
this.btnSConnect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSConnect.Location = new System.Drawing.Point(31, 30);
this.btnSConnect.Name = "btnSConnect";
this.btnSConnect.Size = new System.Drawing.Size(113, 34);
this.btnSConnect.TabIndex = 8;
this.btnSConnect.Text = "连接";
this.btnSConnect.UseVisualStyleBackColor = true;
this.btnSConnect.Click += new System.EventHandler(this.btnSConnect_Click);
//
// btnSCheck
//
this.btnSCheck.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSCheck.Location = new System.Drawing.Point(162, 30);
this.btnSCheck.Name = "btnSCheck";
this.btnSCheck.Size = new System.Drawing.Size(113, 34);
this.btnSCheck.TabIndex = 12;
this.btnSCheck.Text = "验证";
this.btnSCheck.UseVisualStyleBackColor = true;
this.btnSCheck.Click += new System.EventHandler(this.btnSCheck_Click);
//
// btnSSend
//
this.btnSSend.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSSend.Location = new System.Drawing.Point(291, 30);
this.btnSSend.Name = "btnSSend";
this.btnSSend.Size = new System.Drawing.Size(113, 34);
this.btnSSend.TabIndex = 16;
this.btnSSend.Text = "上传结果";
this.btnSSend.UseVisualStyleBackColor = true;
this.btnSSend.Click += new System.EventHandler(this.btnSSend_Click);
//
// groupBox3
//
this.groupBox3.Controls.Add(this.btnScrewConnect);
this.groupBox3.Controls.Add(this.btnScrewCheck);
this.groupBox3.Controls.Add(this.btnScrewSend);
this.groupBox3.Location = new System.Drawing.Point(12, 554);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(450, 88);
this.groupBox3.TabIndex = 21;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "锁付";
//
// btnScrewConnect
//
this.btnScrewConnect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnScrewConnect.Location = new System.Drawing.Point(31, 24);
this.btnScrewConnect.Name = "btnScrewConnect";
this.btnScrewConnect.Size = new System.Drawing.Size(113, 34);
this.btnScrewConnect.TabIndex = 8;
this.btnScrewConnect.Text = "连接";
this.btnScrewConnect.UseVisualStyleBackColor = true;
this.btnScrewConnect.Click += new System.EventHandler(this.btnScrewConnect_Click);
//
// btnScrewCheck
//
this.btnScrewCheck.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnScrewCheck.Location = new System.Drawing.Point(162, 24);
this.btnScrewCheck.Name = "btnScrewCheck";
this.btnScrewCheck.Size = new System.Drawing.Size(113, 34);
this.btnScrewCheck.TabIndex = 12;
this.btnScrewCheck.Text = "验证";
this.btnScrewCheck.UseVisualStyleBackColor = true;
this.btnScrewCheck.Click += new System.EventHandler(this.btnScrewCheck_Click);
//
// btnScrewSend
//
this.btnScrewSend.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnScrewSend.Location = new System.Drawing.Point(291, 24);
this.btnScrewSend.Name = "btnScrewSend";
this.btnScrewSend.Size = new System.Drawing.Size(113, 34);
this.btnScrewSend.TabIndex = 16;
this.btnScrewSend.Text = "上传结果";
this.btnScrewSend.UseVisualStyleBackColor = true;
this.btnScrewSend.Click += new System.EventHandler(this.btnScrewSend_Click);
//
// groupBox4
//
this.groupBox4.Controls.Add(this.btnConnect);
this.groupBox4.Controls.Add(this.btnCheckCode);
this.groupBox4.Controls.Add(this.btnSendResult);
this.groupBox4.Location = new System.Drawing.Point(12, 350);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(450, 82);
this.groupBox4.TabIndex = 22;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "铆压";
//
// FrmMesConfig
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(942, 664);
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.btnClear);
this.Controls.Add(this.richTextBox1);
this.Controls.Add(this.btnClose);
this.Controls.Add(this.btnSaveSetting);
this.Controls.Add(this.gbEpsonSetting);
this.Name = "FrmMesConfig";
this.Text = "MES配置";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FrmConfig_FormClosed);
this.Load += new System.EventHandler(this.FrmRobotSetting_Load);
this.gbEpsonSetting.ResumeLayout(false);
this.gbEpsonSetting.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox3.ResumeLayout(false);
this.groupBox4.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox gbEpsonSetting;
private System.Windows.Forms.TextBox txtPort;
private System.Windows.Forms.TextBox txtEMSIP;
private System.Windows.Forms.Label lblControlPort;
private System.Windows.Forms.Label lblEpsonIP;
private System.Windows.Forms.Button btnSaveSetting;
private System.Windows.Forms.Button btnClose;
private System.Windows.Forms.Button btnStop;
private System.Windows.Forms.Button btnConnect;
private System.Windows.Forms.TextBox txtCode;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button btnCheckCode;
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.Button btnSendResult;
private System.Windows.Forms.TextBox txtPressValue;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtResult;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button btnClear;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Button btnSConnect;
private System.Windows.Forms.Button btnSCheck;
private System.Windows.Forms.Button btnSSend;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.Button btnScrewConnect;
private System.Windows.Forms.Button btnScrewCheck;
private System.Windows.Forms.Button btnScrewSend;
private System.Windows.Forms.TextBox txtSCode2;
private System.Windows.Forms.CheckBox chbIsConnect;
private System.Windows.Forms.GroupBox groupBox4;
}
}
\ No newline at end of file

using LineSoldering.Common;
using LineSoldering.DeviceLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace LineSoldering.Client
{
public partial class FrmMesConfig : FrmBase
{
public FrmMesConfig()
{
InitializeComponent();
}
private void btnSaveSetting_Click(object sender, EventArgs e)
{
saveValue();
}
private void getValue()
{
this.txtEMSIP.Text = RobotManager.SolderingRobot.MesIp.ToString();
this.txtPort.Text = RobotManager.SolderingRobot.MesPort.ToString();
}
private void saveValue()
{
try
{
int port = FormUtil.GetIntValue(txtPort);
string ip = FormUtil.getValue(txtEMSIP);
if (!FormUtil.IsIp(ip))
{
MessageBox.Show("请输入正确IP");
txtEMSIP.Focus();
txtEMSIP.SelectAll();
return;
}
if (port <= 0)
{
MessageBox.Show("请输入正确端口号");
txtPort.Focus();
txtPort.SelectAll();
return;
}
ConfigAppSettings.SaveValue(Setting_Init.Mes_IP, ip);
ConfigAppSettings.SaveValue(Setting_Init.Mes_Port, port);
ConfigAppSettings.SaveValue(Setting_Init.Mes_IsConnect, chbIsConnect.Checked);
MesUtil.NeedConnect = chbIsConnect.Checked;
RobotManager.SolderingRobot.MesIp = ip;
RobotManager.SolderingRobot.MesPort = port;
MessageBox.Show("保存成功!");
this.Close();
}
catch
{
MessageBox.Show("保存失败!");
}
}
private void FrmRobotSetting_Load(object sender, EventArgs e)
{
LogUtil.logBox = this.richTextBox1;
this.chbIsConnect.Checked = MesUtil.NeedConnect;
getValue();
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnConnect_Click(object sender, EventArgs e)
{
MesUtil.RivetInit(RobotManager.SolderingRobot.MesIp, RobotManager.SolderingRobot.MesPort);
}
private void btnStop_Click(object sender, EventArgs e)
{
MesUtil.Close();
}
private void FrmConfig_FormClosed(object sender, FormClosedEventArgs e)
{
MesUtil.Close();
LogUtil.logBox = null;
}
string preCode = "";
private void btnCheckCode_Click(object sender, EventArgs e)
{
string code = FormUtil.getValue(txtCode);
LogUtil.info("铆压发送二维码验证: 【" + code + "】 ");
MesUtil.ConfirmCode(code, CodeResult);
preCode = code;
}
private void CodeResult(string code1, string result1, string code2, string result2)
{
LogUtil.info( "收到验证结果, 【" + code1 + "】【" + result1 + "】【" + code2 + "】【" + result2 + "】 ");
preCode = code1;
}
private void btnSendResult_Click(object sender, EventArgs e)
{
int result = FormUtil.GetIntValue(txtResult);
double value = FormUtil.getDoubleValue(txtPressValue);
MesUtil.UploadRivetResult(preCode, result, value);
LogUtil.info("上传铆压结果, 二维码【" + preCode + "】结果【" + result + "】压力值【"+value+"】 ");
}
private void btnClear_Click(object sender, EventArgs e)
{
this.richTextBox1.Clear();
}
private void btnSConnect_Click(object sender, EventArgs e)
{
MesUtil.SolderInit(RobotManager.SolderingRobot.MesIp, RobotManager.SolderingRobot.MesPort);
}
private void btnSStop_Click(object sender, EventArgs e)
{
MesUtil.Close();
}
private void btnSCheck_Click(object sender, EventArgs e)
{
string code = FormUtil.getValue(txtCode);
string code2 = FormUtil.getValue(txtSCode2);
LogUtil.info("焊接发送二维码验证: 【" + code + "】【"+code2+"】 ");
MesUtil.ConfirmSolderCode(code,code2, CodeResult);
preCode = code2;
}
private void btnSSend_Click(object sender, EventArgs e)
{
int result = FormUtil.GetIntValue(txtResult );
MesUtil.UploadSolderResult(FormUtil.getValue(txtCode), FormUtil.getValue(txtSCode2), result);
LogUtil.info("上传焊接结果, 二维码【" + preCode + "】结果【" + result + "】 ");
}
private void btnScrewStop_Click(object sender, EventArgs e)
{
MesUtil.Close();
}
private void btnScrewConnect_Click(object sender, EventArgs e)
{
MesUtil.ScrewInit(RobotManager.SolderingRobot.MesIp, RobotManager.SolderingRobot.MesPort);
}
private void btnScrewCheck_Click(object sender, EventArgs e)
{
string code = FormUtil.getValue(txtCode);
LogUtil.info("锁付发送二维码验证: 【" + code + "】 ");
MesUtil.ConfirmCode(code, CodeResult);
preCode = code;
}
private void btnScrewSend_Click(object sender, EventArgs e)
{
int result = FormUtil.GetIntValue(txtResult);
MesUtil.UploadScrewResult(preCode, RESULT.OK, new List<double> { 11.1, 22.2, 33.3, 44.4, 55.5 });
LogUtil.info("上传焊接结果, 二维码【" + preCode + "】结果【" + result + "】 ");
}
}
}
namespace URSoldering.Client
{
partial class FrmWeldPointInfo
partial class FrmPointInfo
{
/// <summary>
/// Required designer variable.
......
......@@ -12,19 +12,19 @@ using URSoldering.Common;
namespace URSoldering.Client
{
public partial class FrmWeldPointInfo : FrmBase
public partial class FrmPointInfo : FrmBase
{
public delegate void OpClose(DialogResult result,WeldPointInfo point);
public event OpClose OnCloseEnd;
public WeldPointInfo weldPointInfo = new WeldPointInfo();
public FrmWeldPointInfo()
public FrmPointInfo()
{
InitializeComponent();
this.Text = "新增焊点";
cmbPointType.SelectedIndex = 0;
groupPoint.Text = "新增焊点";
}
public FrmWeldPointInfo(string name,URPointValue point)
public FrmPointInfo(string name,URPointValue point)
{
InitializeComponent();
this.Text = "新增焊点";
......@@ -34,7 +34,7 @@ namespace URSoldering.Client
ShowPoint(point);
this.txtClearTime.Text = WeldRobotBean.RobotConfig.ClearMSenconds.ToString();
}
public FrmWeldPointInfo(WeldPointInfo weldPointInfo)
public FrmPointInfo(WeldPointInfo weldPointInfo)
{
InitializeComponent();
if (weldPointInfo == null)
......
using LineSoldering.Common;
using LineSoldering.DeviceLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using LineSoldering.LoadCSVLibrary;
namespace LineSoldering.Client
{
public partial class FrmProgramList : FrmBase
{
public FrmProgramList()
{
InitializeComponent();
}
private void FrmPointType_Load(object sender, EventArgs e)
{
LoadCom();
LoadList();
loadFixtureType();
}
List<string> FileList = new List<string>();
private void LoadCom()
{
try
{
cmbAoiFile.Items.Clear();
FileList = new List<string>();
string appPath = Application.StartupPath;
string pathName = ConfigAppSettings.GetValue(Setting_Init.AOIFileConfig);
string filePath = appPath + pathName;
string path = Path.GetDirectoryName(filePath);
string suffix = Path.GetExtension(filePath);
string[] files = Directory.GetFiles(path);
foreach (string f in files)
{
if (Path.GetExtension(f).Equals(suffix))
{
string fileName = Path.GetFileName(f);
FileList.Add(fileName);
cmbAoiFile.Items.Add(fileName);
}
}
if (FileList.Count > 0)
{
cmbAoiFile.SelectedIndex = 0;
}
}
catch (Exception ex)
{
LogUtil.error("加载出错:" + ex.ToString());
}
}
private void LoadList()
{
cmbFixtureType.SelectedIndex = 0;
dgvList.Rows.Clear();
foreach (SProgramInfo obj in SProgramManager.programList)
{
dgvList.Rows.Add(SetRowInfo(null, obj));
}
}
private void loadFixtureType()
{
List<SProgramInfo> point = new List<SProgramInfo>();
point.Add(new SProgramInfo(1));
point.Add(new SProgramInfo(2));
point.Add(new SProgramInfo(3));
this.Column_FixtureType.DataSource = point;
this.Column_FixtureType.ValueMember = "FixtureType";
this.Column_FixtureType.DisplayMember = "FixtureName";
}
private DataGridViewRow SetRowInfo(DataGridViewRow view, SProgramInfo com)
{
if (view == null)
{
view = new DataGridViewRow();
view.CreateCells(dgvList);
}
view.Cells[Column_Name.Index].Value = com.PartNumber.ToString();
view.Cells[Column_boardCode.Index].Value = com.Code.ToString();
view.Cells[Column_FixtureType.Index].Value = com.FixtureType;
view.Cells[this.Column_Id.Index].Value = com.Id;
view.Cells[Column_Width.Index].Value = com.Width;
view.Cells[Column_Length.Index].Value = com.Length;
view.Cells[Column_CoverPlate.Index].Value = com.IsCoverPlate;
view.Cells[Column_Check1.Index].Value = com.IsMaterialCheck1;
view.Cells[Column_Check2.Index].Value = com.IsMaterialCheck2;
view.Cells[Column_Station2Check1.Index].Value = com.IsStation2Check1;
view.Cells[Column_Station2Check2.Index].Value = com.IsStation2Check2;
view.Cells[Column_AoiFile.Index].Value = com.AoiFile;
return view;
}
private void btnSave_Click(object sender, EventArgs e)
{
if (groupInfo.Text.StartsWith("新增"))
{
AddProgram();
LoadList();
}
else
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
int rowIndex = dgvList.SelectedRows[0].Index;
DataGridViewRow row = dgvList.Rows[rowIndex];
SProgramInfo obj = getRowPointInfo(row);
if (obj == null)
{
MessageBox.Show( "请选择程序!");
return;
}
obj.PartNumber = FormUtil.getValue(txtPartNumber);
//obj.ProgramDetial = FormUtil.getValue(txtDes);
obj.Length = FormUtil.GetIntValue(txtLength);
obj.Width = FormUtil.GetIntValue(txtWidth);
obj.FixtureType = cmbFixtureType.SelectedIndex + 1;
obj.Code = FormUtil.getValue(txtWareCode);
obj.ProgramDetial = FormUtil.getValue(txtDetial);
obj.IsCoverPlate = chbCoverPlate.Checked;
obj.IsMaterialCheck1 = chbMaterialCheck1.Checked;
obj.IsMaterialCheck2 = chbMaterialCheck2.Checked;
obj.IsStation2Check1 = chbStation2Check1.Checked;
obj.IsStation2Check2 = chbStation2Check2.Checked;
obj.AoiFile = cmbAoiFile.Text;
if (obj.PartNumber.Equals(""))
{
MessageBox.Show("请输入程序名称!");
txtPartNumber.Focus();
return;
}
if (obj.Length <= 0)
{
MessageBox.Show("请输入程序长度!");
txtLength.Focus();
return;
}
if (obj.Width <= 0)
{
MessageBox.Show("请输入程序宽度!");
txtWidth.Focus();
return;
}
if (obj.AoiFile.Equals(""))
{
MessageBox.Show("请选择AOI程序!");
txtWidth.Focus();
return;
}
SProgramInfo o = SProgramManager.getByPartNum(obj.PartNumber);
if (o != null&&(!obj.Id.Equals(o.Id)))
{
MessageBox.Show("程序名称【" + obj.PartNumber + "】已存在!");
txtPartNumber.Focus();
return;
}
SProgramManager.Update(obj);
SetRowInfo(dgvList.Rows[rowIndex], obj);
MessageBox.Show("程序【"+obj.PartNumber+"】保存成功!");
groupInfo.Text = "程序【" + obj.PartNumber + "】的基本信息";
LoadList();
}
}
}
private void AddProgram()
{
SProgramInfo obj = new SProgramInfo();
obj.PartNumber = FormUtil.getValue(txtPartNumber);
//obj.ProgramDetial = FormUtil.getValue(txtDes);
obj.Length = FormUtil.GetIntValue(txtLength);
obj.Width = FormUtil.GetIntValue(txtWidth);
obj.Id = SProgramManager.GetNextId();
obj.FixtureType = cmbFixtureType.SelectedIndex + 1;
obj.Code = FormUtil.getValue(txtWareCode);
obj.ProgramDetial = FormUtil.getValue(txtDetial);
obj.IsCoverPlate = chbCoverPlate.Checked;
obj.IsMaterialCheck1 = chbMaterialCheck1.Checked;
obj.IsMaterialCheck2 = chbMaterialCheck2.Checked;
obj.IsStation2Check1 = chbStation2Check1.Checked;
obj.IsStation2Check2 = chbStation2Check2.Checked;
obj.AoiFile = cmbAoiFile.Text;
if (obj.PartNumber.Equals(""))
{
MessageBox.Show("请输入程序名称!");
txtPartNumber.Focus();
return;
}
if (obj.Length <= 0)
{
MessageBox.Show("请输入程序长度!");
txtLength.Focus();
return;
}
if (obj.Width <= 0)
{
MessageBox.Show("请输入程序宽度!");
txtWidth.Focus();
return;
}
if (obj.AoiFile.Equals(""))
{
MessageBox.Show("请选择AOI程序!");
txtWidth.Focus();
return;
}
if (SProgramManager.getByPartNum(obj.PartNumber) != null)
{
MessageBox.Show("程序名称【"+obj.PartNumber+"】已存在!");
txtPartNumber.Focus();
return;
}
SProgramManager.Add(obj);
MessageBox.Show("程序【" + obj.PartNumber + "】保存成功!");
groupInfo.Text = "程序【" + obj.PartNumber + "】的基本信息";
}
private void btnDel_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
int rowIndex = dgvList.SelectedRows[0].Index;
DeleteCom(rowIndex);
}
}
private SProgramInfo getRowPointInfo(DataGridViewRow row)
{
SProgramInfo point = new SProgramInfo();
try
{
if (row.Cells[Column_Name.Name].Value == null)
{
return null;
}
int id = Convert.ToInt32( row.Cells[this.Column_Id.Name].Value.ToString());
point = SProgramManager.getById(id);
}
catch (Exception ex)
{
LogUtil.error( "保存数据出错:" + ex.ToString());
MessageBox.Show("请检查程序数据是否正确!");
return null;
}
return point;
}
private void showDetail(int rowIndex)
{
DataGridViewRow row = dgvList.Rows[rowIndex];
SProgramInfo obj = getRowPointInfo(row);
if (obj == null)
{
MessageBox.Show("请选择程序!");
return;
}
txtId.Tag = obj;
txtPartNumber.Text = obj.PartNumber;
txtWareCode.Text = obj.Code;
txtLength.Text = obj.Length.ToString();
txtWidth.Text = obj.Width.ToString();
chbCoverPlate.Checked = obj.IsCoverPlate;
chbMaterialCheck1.Checked = obj.IsMaterialCheck1;
chbMaterialCheck2.Checked = obj.IsMaterialCheck2;
chbStation2Check1.Checked = obj.IsStation2Check1;
chbStation2Check2.Checked = obj.IsStation2Check2;
cmbFixtureType.SelectedIndex = obj.FixtureType - 1;
txtId.Text = obj.Id.ToString();
//判断索引
int index = FileList.IndexOf(obj.AoiFile);
if (index >= 0)
{
cmbAoiFile.SelectedIndex = index;
}
groupInfo.Text = "程序【" + obj.PartNumber + "】的基本信息";
}
private void DeleteCom(int rowIndex)
{
DataGridViewRow row = dgvList.Rows[rowIndex];
SProgramInfo obj = getRowPointInfo(row);
if (obj.GetBoardMap().Count > 0)
{
MessageBox.Show("程序【"+obj.PartNumber+"】已经配置了产品,无法删除");
return;
}
if (MessageBox.Show(
"确认要删除程序【" + obj.PartNumber + "】吗?","提示",MessageBoxButtons.OKCancel,
MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
else
{
SProgramManager.Delete(obj);
this.dgvList.Rows.RemoveAt(rowIndex);
MessageBox.Show("程序【" + obj.PartNumber + "】删除成功!");
LoadList();
}
}
private void btnBack_Click(object sender, EventArgs e)
{
this.Close();
}
private void dgvList_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex != -1 && e.ColumnIndex >= 0)
{
string name = this.dgvList.Columns[e.ColumnIndex].Name;
if (name.Equals(this.Column_Del.Name))
{
DeleteCom(e.RowIndex);
}
}
}
private void dgvList_SelectionChanged(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
int rowIndex = dgvList.SelectedRows[0].Index;
showDetail(rowIndex);
}
}
private void FrmComponentList_FormClosing(object sender, FormClosingEventArgs e)
{
}
private void btnAdd_Click(object sender, EventArgs e)
{
groupInfo.Text = "新增";
txtId.Text = "";
txtPartNumber.Text = "";
txtLength.Text = "";
txtWidth.Text = "";
txtDetial.Text = "";
txtWareCode.Text = "";
chbCoverPlate.Checked = false;
chbMaterialCheck1.Checked = false;
chbMaterialCheck2.Checked = false;
chbStation2Check1.Checked = false;
chbStation2Check2.Checked = false;
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="Column_AoiFile.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Length.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Width.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_FixtureType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Check1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Check2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_CoverPlate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Station2Check1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Station2Check2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
\ No newline at end of file
namespace URSoldering.Client
{
partial class FrmSolderingSetting
partial class FrmSetting
{
/// <summary>
/// Required designer variable.
......
......@@ -14,9 +14,9 @@ using System.Windows.Forms;
namespace URSoldering.Client
{
public partial class FrmSolderingSetting : FrmBase
public partial class FrmSetting : FrmBase
{
public FrmSolderingSetting()
public FrmSetting()
{
InitializeComponent();
}
......
namespace URSoldering.Client
{
partial class FrmShuoKeDebug
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.btnLineAbsMove = new System.Windows.Forms.Button();
this.btnClearPosition = new System.Windows.Forms.Button();
this.btnCloseForm = new System.Windows.Forms.Button();
this.btnHomeMove = new System.Windows.Forms.Button();
this.label15 = new System.Windows.Forms.Label();
this.btnGetPosition = new System.Windows.Forms.Button();
this.btnSetSpeed = new System.Windows.Forms.Button();
this.txtDelSpeed = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.txtAddSpeed = new System.Windows.Forms.TextBox();
this.cmbHomeType = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.txtMaxSpeed = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.txtTargetSpeed = new System.Windows.Forms.TextBox();
this.lblShuoKeAdd = new System.Windows.Forms.Label();
this.txtBeginSpeed = new System.Windows.Forms.TextBox();
this.lblShuoKePort = new System.Windows.Forms.Label();
this.btnClose = new System.Windows.Forms.Button();
this.btnOpen = new System.Windows.Forms.Button();
this.label12 = new System.Windows.Forms.Label();
this.comboBoxPortName = new System.Windows.Forms.ComboBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnLineSetSpeed = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.btnLineRelMove = new System.Windows.Forms.Button();
this.txtLineAddr = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.txtLineSpeed = new System.Windows.Forms.TextBox();
this.btnLineSpeedMove = new System.Windows.Forms.Button();
this.lblPosition = new System.Windows.Forms.Label();
this.txtLinePosition = new System.Windows.Forms.TextBox();
this.btnLineStop = new System.Windows.Forms.Button();
this.btnStop = new System.Windows.Forms.Button();
this.txtWirePosition = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.btnVolMove = new System.Windows.Forms.Button();
this.txtWireSpeed = new System.Windows.Forms.TextBox();
this.label13 = new System.Windows.Forms.Label();
this.label18 = new System.Windows.Forms.Label();
this.txtWireAddr = new System.Windows.Forms.TextBox();
this.btnRelMove = new System.Windows.Forms.Button();
this.lblMsg = new System.Windows.Forms.Label();
this.btnStatusSearch = new System.Windows.Forms.Button();
this.btnSet = new System.Windows.Forms.Button();
this.groupBox6 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label7 = new System.Windows.Forms.Label();
this.txtPosition = new System.Windows.Forms.TextBox();
this.radioButton2 = new System.Windows.Forms.RadioButton();
this.radioButton1 = new System.Windows.Forms.RadioButton();
this.groupBox1.SuspendLayout();
this.groupBox6.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
//
// timer1
//
this.timer1.Interval = 500;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// btnLineAbsMove
//
this.btnLineAbsMove.Location = new System.Drawing.Point(103, 266);
this.btnLineAbsMove.Name = "btnLineAbsMove";
this.btnLineAbsMove.Size = new System.Drawing.Size(85, 25);
this.btnLineAbsMove.TabIndex = 9;
this.btnLineAbsMove.Text = "绝对运动";
this.btnLineAbsMove.UseVisualStyleBackColor = true;
this.btnLineAbsMove.Click += new System.EventHandler(this.btnLineAbsMove_Click_1);
//
// btnClearPosition
//
this.btnClearPosition.Location = new System.Drawing.Point(103, 295);
this.btnClearPosition.Name = "btnClearPosition";
this.btnClearPosition.Size = new System.Drawing.Size(85, 25);
this.btnClearPosition.TabIndex = 11;
this.btnClearPosition.Text = "清理位置";
this.btnClearPosition.UseVisualStyleBackColor = true;
this.btnClearPosition.Click += new System.EventHandler(this.btnClearPosition_Click);
//
// btnCloseForm
//
this.btnCloseForm.Location = new System.Drawing.Point(630, 22);
this.btnCloseForm.Name = "btnCloseForm";
this.btnCloseForm.Size = new System.Drawing.Size(117, 35);
this.btnCloseForm.TabIndex = 109;
this.btnCloseForm.Text = "返回(&B)";
this.btnCloseForm.UseVisualStyleBackColor = true;
this.btnCloseForm.Click += new System.EventHandler(this.button1_Click);
//
// btnHomeMove
//
this.btnHomeMove.Location = new System.Drawing.Point(12, 266);
this.btnHomeMove.Name = "btnHomeMove";
this.btnHomeMove.Size = new System.Drawing.Size(85, 25);
this.btnHomeMove.TabIndex = 12;
this.btnHomeMove.Text = "原点返回";
this.btnHomeMove.UseVisualStyleBackColor = true;
this.btnHomeMove.Click += new System.EventHandler(this.btnHomeMove_Click);
//
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(14, 214);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(68, 17);
this.label15.TabIndex = 91;
this.label15.Text = "原点方向:";
//
// btnGetPosition
//
this.btnGetPosition.Location = new System.Drawing.Point(12, 295);
this.btnGetPosition.Name = "btnGetPosition";
this.btnGetPosition.Size = new System.Drawing.Size(85, 25);
this.btnGetPosition.TabIndex = 93;
this.btnGetPosition.Text = "查询位置";
this.btnGetPosition.UseVisualStyleBackColor = true;
this.btnGetPosition.Click += new System.EventHandler(this.btnGetPosition_Click);
//
// btnSetSpeed
//
this.btnSetSpeed.Location = new System.Drawing.Point(90, 183);
this.btnSetSpeed.Name = "btnSetSpeed";
this.btnSetSpeed.Size = new System.Drawing.Size(100, 23);
this.btnSetSpeed.TabIndex = 108;
this.btnSetSpeed.Text = "设置速度";
this.btnSetSpeed.UseVisualStyleBackColor = true;
this.btnSetSpeed.Click += new System.EventHandler(this.btnSetSpeed_Click);
//
// txtDelSpeed
//
this.txtDelSpeed.Location = new System.Drawing.Point(90, 156);
this.txtDelSpeed.Name = "txtDelSpeed";
this.txtDelSpeed.Size = new System.Drawing.Size(100, 23);
this.txtDelSpeed.TabIndex = 107;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(28, 159);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(56, 17);
this.label4.TabIndex = 106;
this.label4.Text = "减速度:";
//
// txtAddSpeed
//
this.txtAddSpeed.Location = new System.Drawing.Point(90, 129);
this.txtAddSpeed.Name = "txtAddSpeed";
this.txtAddSpeed.Size = new System.Drawing.Size(100, 23);
this.txtAddSpeed.TabIndex = 105;
//
// cmbHomeType
//
this.cmbHomeType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbHomeType.FormattingEnabled = true;
this.cmbHomeType.Items.AddRange(new object[] {
"0",
"1"});
this.cmbHomeType.Location = new System.Drawing.Point(90, 210);
this.cmbHomeType.Name = "cmbHomeType";
this.cmbHomeType.Size = new System.Drawing.Size(100, 25);
this.cmbHomeType.TabIndex = 92;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(28, 132);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(56, 17);
this.label1.TabIndex = 104;
this.label1.Text = "加速度:";
//
// txtMaxSpeed
//
this.txtMaxSpeed.Location = new System.Drawing.Point(90, 102);
this.txtMaxSpeed.Name = "txtMaxSpeed";
this.txtMaxSpeed.Size = new System.Drawing.Size(100, 23);
this.txtMaxSpeed.TabIndex = 103;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(16, 105);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(68, 17);
this.label2.TabIndex = 102;
this.label2.Text = "最大速度:";
//
// txtTargetSpeed
//
this.txtTargetSpeed.Location = new System.Drawing.Point(90, 75);
this.txtTargetSpeed.Name = "txtTargetSpeed";
this.txtTargetSpeed.Size = new System.Drawing.Size(100, 23);
this.txtTargetSpeed.TabIndex = 101;
//
// lblShuoKeAdd
//
this.lblShuoKeAdd.AutoSize = true;
this.lblShuoKeAdd.Location = new System.Drawing.Point(16, 78);
this.lblShuoKeAdd.Name = "lblShuoKeAdd";
this.lblShuoKeAdd.Size = new System.Drawing.Size(68, 17);
this.lblShuoKeAdd.TabIndex = 100;
this.lblShuoKeAdd.Text = "目标速度:";
//
// txtBeginSpeed
//
this.txtBeginSpeed.Location = new System.Drawing.Point(90, 48);
this.txtBeginSpeed.Name = "txtBeginSpeed";
this.txtBeginSpeed.Size = new System.Drawing.Size(100, 23);
this.txtBeginSpeed.TabIndex = 99;
//
// lblShuoKePort
//
this.lblShuoKePort.AutoSize = true;
this.lblShuoKePort.Location = new System.Drawing.Point(16, 51);
this.lblShuoKePort.Name = "lblShuoKePort";
this.lblShuoKePort.Size = new System.Drawing.Size(68, 17);
this.lblShuoKePort.TabIndex = 98;
this.lblShuoKePort.Text = "起始速度:";
//
// btnClose
//
this.btnClose.Location = new System.Drawing.Point(387, 23);
this.btnClose.Name = "btnClose";
this.btnClose.Size = new System.Drawing.Size(117, 35);
this.btnClose.TabIndex = 87;
this.btnClose.Text = "关闭串口";
this.btnClose.UseVisualStyleBackColor = true;
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
//
// btnOpen
//
this.btnOpen.Location = new System.Drawing.Point(236, 23);
this.btnOpen.Name = "btnOpen";
this.btnOpen.Size = new System.Drawing.Size(117, 35);
this.btnOpen.TabIndex = 86;
this.btnOpen.Text = "打开串口";
this.btnOpen.UseVisualStyleBackColor = true;
this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click);
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(37, 32);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(56, 17);
this.label12.TabIndex = 1;
this.label12.Text = "端口号:";
//
// comboBoxPortName
//
this.comboBoxPortName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxPortName.FormattingEnabled = true;
this.comboBoxPortName.Location = new System.Drawing.Point(98, 28);
this.comboBoxPortName.Name = "comboBoxPortName";
this.comboBoxPortName.Size = new System.Drawing.Size(103, 25);
this.comboBoxPortName.TabIndex = 0;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.btnLineSetSpeed);
this.groupBox1.Controls.Add(this.button2);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.btnLineRelMove);
this.groupBox1.Controls.Add(this.txtLineAddr);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.txtLineSpeed);
this.groupBox1.Controls.Add(this.btnLineSpeedMove);
this.groupBox1.Controls.Add(this.lblPosition);
this.groupBox1.Controls.Add(this.txtLinePosition);
this.groupBox1.Controls.Add(this.btnLineStop);
this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(32, 244);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(507, 157);
this.groupBox1.TabIndex = 251;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "流水线调试";
//
// btnLineSetSpeed
//
this.btnLineSetSpeed.Location = new System.Drawing.Point(365, 25);
this.btnLineSetSpeed.Name = "btnLineSetSpeed";
this.btnLineSetSpeed.Size = new System.Drawing.Size(117, 35);
this.btnLineSetSpeed.TabIndex = 110;
this.btnLineSetSpeed.Text = "设置速度";
this.btnLineSetSpeed.UseVisualStyleBackColor = true;
this.btnLineSetSpeed.Click += new System.EventHandler(this.btnLineSetSpeed_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(365, 108);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(117, 35);
this.button2.TabIndex = 85;
this.button2.Text = "查询运动状态";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// label3
//
this.label3.AutoSize = true;
this.label3.ForeColor = System.Drawing.Color.Red;
this.label3.Location = new System.Drawing.Point(31, 387);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(92, 17);
this.label3.TabIndex = 97;
this.label3.Text = "未收到反馈数据";
//
// btnLineRelMove
//
this.btnLineRelMove.Location = new System.Drawing.Point(242, 26);
this.btnLineRelMove.Name = "btnLineRelMove";
this.btnLineRelMove.Size = new System.Drawing.Size(117, 35);
this.btnLineRelMove.TabIndex = 96;
this.btnLineRelMove.Text = "相对运动";
this.btnLineRelMove.UseVisualStyleBackColor = true;
this.btnLineRelMove.Click += new System.EventHandler(this.btnLineRelMove_Click);
//
// txtLineAddr
//
this.txtLineAddr.Enabled = false;
this.txtLineAddr.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtLineAddr.Location = new System.Drawing.Point(120, 24);
this.txtLineAddr.Name = "txtLineAddr";
this.txtLineAddr.Size = new System.Drawing.Size(103, 26);
this.txtLineAddr.TabIndex = 95;
this.txtLineAddr.Text = "1";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(34, 26);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(80, 17);
this.label5.TabIndex = 94;
this.label5.Text = "流水线地址:";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(70, 108);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(44, 17);
this.label6.TabIndex = 90;
this.label6.Text = "速度:";
//
// txtLineSpeed
//
this.txtLineSpeed.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtLineSpeed.Location = new System.Drawing.Point(120, 102);
this.txtLineSpeed.Name = "txtLineSpeed";
this.txtLineSpeed.Size = new System.Drawing.Size(103, 26);
this.txtLineSpeed.TabIndex = 89;
this.txtLineSpeed.Text = "3";
//
// btnLineSpeedMove
//
this.btnLineSpeedMove.Location = new System.Drawing.Point(242, 69);
this.btnLineSpeedMove.Name = "btnLineSpeedMove";
this.btnLineSpeedMove.Size = new System.Drawing.Size(117, 35);
this.btnLineSpeedMove.TabIndex = 88;
this.btnLineSpeedMove.Text = "匀速运动";
this.btnLineSpeedMove.UseVisualStyleBackColor = true;
this.btnLineSpeedMove.Click += new System.EventHandler(this.btnLineSpeedMove_Click);
//
// lblPosition
//
this.lblPosition.AutoSize = true;
this.lblPosition.Location = new System.Drawing.Point(70, 67);
this.lblPosition.Name = "lblPosition";
this.lblPosition.Size = new System.Drawing.Size(44, 17);
this.lblPosition.TabIndex = 84;
this.lblPosition.Text = "位置:";
//
// txtLinePosition
//
this.txtLinePosition.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtLinePosition.Location = new System.Drawing.Point(120, 63);
this.txtLinePosition.Name = "txtLinePosition";
this.txtLinePosition.Size = new System.Drawing.Size(103, 26);
this.txtLinePosition.TabIndex = 83;
this.txtLinePosition.Text = "3000";
//
// btnLineStop
//
this.btnLineStop.Location = new System.Drawing.Point(365, 68);
this.btnLineStop.Name = "btnLineStop";
this.btnLineStop.Size = new System.Drawing.Size(117, 35);
this.btnLineStop.TabIndex = 10;
this.btnLineStop.Text = "停止";
this.btnLineStop.UseVisualStyleBackColor = true;
this.btnLineStop.Click += new System.EventHandler(this.btnLineStop_Click);
//
// btnStop
//
this.btnStop.Location = new System.Drawing.Point(365, 68);
this.btnStop.Name = "btnStop";
this.btnStop.Size = new System.Drawing.Size(117, 35);
this.btnStop.TabIndex = 10;
this.btnStop.Text = "停止送丝";
this.btnStop.UseVisualStyleBackColor = true;
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
//
// txtWirePosition
//
this.txtWirePosition.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtWirePosition.Location = new System.Drawing.Point(120, 63);
this.txtWirePosition.Name = "txtWirePosition";
this.txtWirePosition.Size = new System.Drawing.Size(103, 26);
this.txtWirePosition.TabIndex = 83;
this.txtWirePosition.Text = "3";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(17, 67);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(97, 17);
this.label8.TabIndex = 84;
this.label8.Text = "送丝长度/毫米:";
//
// btnVolMove
//
this.btnVolMove.Location = new System.Drawing.Point(242, 69);
this.btnVolMove.Name = "btnVolMove";
this.btnVolMove.Size = new System.Drawing.Size(117, 35);
this.btnVolMove.TabIndex = 88;
this.btnVolMove.Text = "匀速送丝";
this.btnVolMove.UseVisualStyleBackColor = true;
this.btnVolMove.Click += new System.EventHandler(this.btnVolMove_Click);
//
// txtWireSpeed
//
this.txtWireSpeed.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtWireSpeed.Location = new System.Drawing.Point(120, 102);
this.txtWireSpeed.Name = "txtWireSpeed";
this.txtWireSpeed.Size = new System.Drawing.Size(103, 26);
this.txtWireSpeed.TabIndex = 89;
this.txtWireSpeed.Text = "3";
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(17, 108);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(97, 17);
this.label13.TabIndex = 90;
this.label13.Text = "送丝速度/毫米:";
//
// label18
//
this.label18.AutoSize = true;
this.label18.Location = new System.Drawing.Point(46, 26);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(68, 17);
this.label18.TabIndex = 94;
this.label18.Text = "送丝地址:";
//
// txtWireAddr
//
this.txtWireAddr.Enabled = false;
this.txtWireAddr.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtWireAddr.Location = new System.Drawing.Point(120, 24);
this.txtWireAddr.Name = "txtWireAddr";
this.txtWireAddr.Size = new System.Drawing.Size(103, 26);
this.txtWireAddr.TabIndex = 95;
this.txtWireAddr.Text = "1";
this.txtWireAddr.TextChanged += new System.EventHandler(this.txtAddr_TextChanged);
//
// btnRelMove
//
this.btnRelMove.Location = new System.Drawing.Point(242, 26);
this.btnRelMove.Name = "btnRelMove";
this.btnRelMove.Size = new System.Drawing.Size(117, 35);
this.btnRelMove.TabIndex = 96;
this.btnRelMove.Text = "送丝测试";
this.btnRelMove.UseVisualStyleBackColor = true;
this.btnRelMove.Click += new System.EventHandler(this.btnRelMove_Click);
//
// lblMsg
//
this.lblMsg.AutoSize = true;
this.lblMsg.ForeColor = System.Drawing.Color.Red;
this.lblMsg.Location = new System.Drawing.Point(29, 415);
this.lblMsg.Name = "lblMsg";
this.lblMsg.Size = new System.Drawing.Size(92, 17);
this.lblMsg.TabIndex = 97;
this.lblMsg.Text = "未收到反馈数据";
//
// btnStatusSearch
//
this.btnStatusSearch.Location = new System.Drawing.Point(365, 108);
this.btnStatusSearch.Name = "btnStatusSearch";
this.btnStatusSearch.Size = new System.Drawing.Size(117, 35);
this.btnStatusSearch.TabIndex = 85;
this.btnStatusSearch.Text = "查询运动状态";
this.btnStatusSearch.UseVisualStyleBackColor = true;
this.btnStatusSearch.Click += new System.EventHandler(this.btnStatusSearch_Click);
//
// btnSet
//
this.btnSet.Location = new System.Drawing.Point(365, 25);
this.btnSet.Name = "btnSet";
this.btnSet.Size = new System.Drawing.Size(117, 35);
this.btnSet.TabIndex = 110;
this.btnSet.Text = "设置速度";
this.btnSet.UseVisualStyleBackColor = true;
this.btnSet.Click += new System.EventHandler(this.btnSet_Click);
//
// groupBox6
//
this.groupBox6.Controls.Add(this.btnSet);
this.groupBox6.Controls.Add(this.btnStatusSearch);
this.groupBox6.Controls.Add(this.btnRelMove);
this.groupBox6.Controls.Add(this.txtWireAddr);
this.groupBox6.Controls.Add(this.label18);
this.groupBox6.Controls.Add(this.label13);
this.groupBox6.Controls.Add(this.txtWireSpeed);
this.groupBox6.Controls.Add(this.btnVolMove);
this.groupBox6.Controls.Add(this.label8);
this.groupBox6.Controls.Add(this.txtWirePosition);
this.groupBox6.Controls.Add(this.btnStop);
this.groupBox6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox6.Location = new System.Drawing.Point(32, 81);
this.groupBox6.Name = "groupBox6";
this.groupBox6.Size = new System.Drawing.Size(507, 157);
this.groupBox6.TabIndex = 250;
this.groupBox6.TabStop = false;
this.groupBox6.Text = "送丝调试";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.label7);
this.groupBox2.Controls.Add(this.txtPosition);
this.groupBox2.Controls.Add(this.radioButton2);
this.groupBox2.Controls.Add(this.radioButton1);
this.groupBox2.Controls.Add(this.txtBeginSpeed);
this.groupBox2.Controls.Add(this.lblShuoKeAdd);
this.groupBox2.Controls.Add(this.txtTargetSpeed);
this.groupBox2.Controls.Add(this.btnLineAbsMove);
this.groupBox2.Controls.Add(this.label2);
this.groupBox2.Controls.Add(this.btnClearPosition);
this.groupBox2.Controls.Add(this.lblShuoKePort);
this.groupBox2.Controls.Add(this.txtMaxSpeed);
this.groupBox2.Controls.Add(this.btnHomeMove);
this.groupBox2.Controls.Add(this.label1);
this.groupBox2.Controls.Add(this.cmbHomeType);
this.groupBox2.Controls.Add(this.label15);
this.groupBox2.Controls.Add(this.txtAddSpeed);
this.groupBox2.Controls.Add(this.label4);
this.groupBox2.Controls.Add(this.btnGetPosition);
this.groupBox2.Controls.Add(this.txtDelSpeed);
this.groupBox2.Controls.Add(this.btnSetSpeed);
this.groupBox2.Location = new System.Drawing.Point(545, 67);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(208, 334);
this.groupBox2.TabIndex = 252;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "参数调试";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(38, 243);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(44, 17);
this.label7.TabIndex = 111;
this.label7.Text = "位置:";
//
// txtPosition
//
this.txtPosition.Location = new System.Drawing.Point(90, 239);
this.txtPosition.Name = "txtPosition";
this.txtPosition.Size = new System.Drawing.Size(100, 23);
this.txtPosition.TabIndex = 112;
//
// radioButton2
//
this.radioButton2.AutoSize = true;
this.radioButton2.Location = new System.Drawing.Point(100, 24);
this.radioButton2.Name = "radioButton2";
this.radioButton2.Size = new System.Drawing.Size(62, 21);
this.radioButton2.TabIndex = 110;
this.radioButton2.Text = "流水线";
this.radioButton2.UseVisualStyleBackColor = true;
//
// radioButton1
//
this.radioButton1.AutoSize = true;
this.radioButton1.Checked = true;
this.radioButton1.Location = new System.Drawing.Point(19, 24);
this.radioButton1.Name = "radioButton1";
this.radioButton1.Size = new System.Drawing.Size(50, 21);
this.radioButton1.TabIndex = 109;
this.radioButton1.TabStop = true;
this.radioButton1.Text = "送丝";
this.radioButton1.UseVisualStyleBackColor = true;
this.radioButton1.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged);
//
// FrmShuoKeDebug
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(774, 450);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.lblMsg);
this.Controls.Add(this.groupBox6);
this.Controls.Add(this.comboBoxPortName);
this.Controls.Add(this.btnCloseForm);
this.Controls.Add(this.label12);
this.Controls.Add(this.btnOpen);
this.Controls.Add(this.btnClose);
this.Name = "FrmShuoKeDebug";
this.Text = "送丝驱动器调试";
this.Load += new System.EventHandler(this.FrmShuoKe_Load);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox6.ResumeLayout(false);
this.groupBox6.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnGetPosition;
private System.Windows.Forms.ComboBox cmbHomeType;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.Button btnClose;
private System.Windows.Forms.Button btnOpen;
private System.Windows.Forms.Button btnHomeMove;
private System.Windows.Forms.Button btnClearPosition;
private System.Windows.Forms.Button btnLineAbsMove;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.ComboBox comboBoxPortName;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.TextBox txtDelSpeed;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtAddSpeed;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtMaxSpeed;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtTargetSpeed;
private System.Windows.Forms.Label lblShuoKeAdd;
private System.Windows.Forms.TextBox txtBeginSpeed;
private System.Windows.Forms.Label lblShuoKePort;
private System.Windows.Forms.Button btnSetSpeed;
private System.Windows.Forms.Button btnCloseForm;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button btnLineRelMove;
private System.Windows.Forms.TextBox txtLineAddr;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtLineSpeed;
private System.Windows.Forms.Button btnLineSpeedMove;
private System.Windows.Forms.Label lblPosition;
private System.Windows.Forms.TextBox txtLinePosition;
private System.Windows.Forms.Button btnLineStop;
private System.Windows.Forms.Button btnStop;
private System.Windows.Forms.TextBox txtWirePosition;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Button btnVolMove;
private System.Windows.Forms.TextBox txtWireSpeed;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.Label label18;
private System.Windows.Forms.TextBox txtWireAddr;
private System.Windows.Forms.Button btnRelMove;
private System.Windows.Forms.Label lblMsg;
private System.Windows.Forms.Button btnStatusSearch;
private System.Windows.Forms.Button btnSet;
private System.Windows.Forms.GroupBox groupBox6;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.RadioButton radioButton2;
private System.Windows.Forms.RadioButton radioButton1;
private System.Windows.Forms.Button btnLineSetSpeed;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox txtPosition;
}
}
\ No newline at end of file

using URSoldering.Common;
using URSoldering.DeviceLibrary;
using URSoldering.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace URSoldering.Client
{
public partial class FrmShuoKeDebug : FrmBase
{
public FrmShuoKeDebug()
{
InitializeComponent();
}
private URSolderingRobot Robot = null;
private bool isDebug = true ;
private int SendWireAddr = WeldRobotBean.RobotConfig.SendWire_Slv;
private int LineAddr = 2;
private void btnOpen_Click(object sender, EventArgs e)
{
ShuoKeControls.InitPort(comboBoxPortName.Text);
if (ShuoKeControls.isRun)
{
WeldRobotBean.InitSendWireSpeed();
Robot.InitLineSpeed();
FormComStatus(true);
}
else
{
MessageBox.Show("打开串口"+comboBoxPortName.Text+"失败");
}
}
private void FormComStatus(bool isOpen)
{
btnOpen.Enabled = !isOpen;
btnClose.Enabled = isOpen;
btnRelMove.Enabled = isOpen;
btnClearPosition.Enabled = isOpen;
btnVolMove.Enabled = isOpen;
btnGetPosition.Enabled = isOpen;
btnHomeMove.Enabled = isOpen;
btnLineAbsMove.Enabled = isOpen;
btnStatusSearch.Enabled = isOpen;
groupBox1.Enabled = isOpen;
groupBox6.Enabled = isOpen;
groupBox2.Enabled = isOpen;
timer1.Enabled = isOpen;
}
private void btnClose_Click(object sender, EventArgs e)
{
ShuoKeControls.SuddownStop(SendWireAddr);
ShuoKeControls.SuddownStop(LineAddr);
ShuoKeControls.ClosePort();
FormComStatus(false);
}
private void btnVolMove_Click(object sender, EventArgs e)
{
int speed = FormUtil.GetIntValue(txtWireSpeed) * WeldRobotBean.SendWireXiShu;
ShuoKeControls.VolMove(SendWireAddr, speed);
}
private void btnGetPosition_Click(object sender, EventArgs e)
{
int addr = SendWireAddr;
if (radioButton2.Checked)
{
addr = LineAddr;
}
ShuoKeControls.GetABSPosition(addr);
}
private void btnStop_Click(object sender, EventArgs e)
{
ShuoKeControls.SuddownStop(SendWireAddr);
}
private void btnClearPosition_Click(object sender, EventArgs e)
{
int addr = SendWireAddr;
if (radioButton2.Checked)
{
addr = LineAddr;
}
ShuoKeControls.PositionClear(addr, ShuoKeCMD.AbsPositionClear);
ShuoKeControls.PositionClear(addr, ShuoKeCMD.RelPositionClear);
}
private void btnHomeMove_Click(object sender, EventArgs e)
{
int addr = SendWireAddr;
if (radioButton2.Checked)
{
addr = LineAddr;
}
ShuoKeControls.HomeMove(addr, byte.Parse(cmbHomeType.Text));
}
private void btnLineAbsMove_Click(object sender, EventArgs e)
{
int posi = FormUtil.GetIntValue(txtWirePosition);
ShuoKeControls.AbsMove(SendWireAddr, posi);
}
private void btnStatusSearch_Click(object sender, EventArgs e)
{
ShuoKeControls.GetStatus(SendWireAddr);
}
private void btnLineAbsMove_Click_1(object sender, EventArgs e)
{
int addr = SendWireAddr;
if (radioButton2.Checked)
{
addr = LineAddr;
}
int posi = FormUtil.GetIntValue(txtPosition);
ShuoKeControls.AbsMove(addr, posi);
}
private void btnRelMove_Click(object sender, EventArgs e)
{
int posi = FormUtil.GetIntValue(txtWirePosition) * WeldRobotBean.SendWireXiShu;
ShuoKeControls.RelativeMove(SendWireAddr, posi);
}
private void txtAddr_TextChanged(object sender, EventArgs e)
{
SendWireAddr = FormUtil.GetIntValue(txtWireAddr);
if (SendWireAddr <= 0)
{
MessageBox.Show("地址只能是大于0的数字!");
SendWireAddr = WeldRobotBean.RobotConfig.SendWire_Slv;
txtWireAddr.Text = SendWireAddr.ToString();
}
}
//private IO_VALUE sendWirePointMove = IO_VALUE.LOW;
private void timer1_Tick(object sender, EventArgs e)
{
if (this.Visible.Equals(false))
{
return;
}
if (ShuoKeControls.isRun.Equals(false))
{
return;
}
if (RobotBean.ShuddenOK().Equals(false))
{
lblMsg.Text = "急停未开";
}
else
{
lblMsg.Text = ShuoKeControls.LastMsg;
CheckSendWireAlarm();
}
}
/// <summary>
/// 检测送丝错误
/// </summary>
private void CheckSendWireAlarm()
{
//如果休眠了不需要处理
if (RobotBean.KNDIOValue(IO_Type.SendWireLock).Equals(IO_VALUE.HIGH))
{
//停止运动
lblMsg.Text = "送丝报警:卡丝,停止匀速运动";
LogUtil.info("送丝报警:卡丝,停止匀速运动");
//sendWirePointMove = IO_VALUE.LOW;
ShuoKeControls.SuddownStop(SendWireAddr);
}
else if (RobotBean.KNDIOValue(IO_Type.SendWireNoWire).Equals(IO_VALUE.HIGH))
{
lblMsg.Text = "送丝报警:无丝,停止匀速运动";
//停止运动
LogUtil.info("送丝报警:无丝,停止匀速运动");
//sendWirePointMove = IO_VALUE.LOW;
ShuoKeControls.SuddownStop(SendWireAddr);
}
}
private void FrmShuoKe_Load(object sender, EventArgs e)
{
Robot = RobotManager.SolderingRobot;
txtLineSpeed.Text =(0- Robot.Config.Line_EndSpeed).ToString();
LineAddr = Robot.Config.Line_Slv;
this.groupBox2.Visible = isDebug;
this.btnStatusSearch.Visible = true;
txtLineAddr.Text = LineAddr.ToString();
txtWireAddr.Text = SendWireAddr.ToString();
LoadData();
radioButton1_CheckedChanged(null, null);
}
private void LoadData()
{
cmbHomeType.SelectedIndex = 0;
List<string> port = new List<string>(SerialPort.GetPortNames());
comboBoxPortName.DataSource = port;
string portStr = WeldRobotBean.RobotConfig.ShuoKe_PortName;
if (port.IndexOf(portStr) >= 0)
{
comboBoxPortName.SelectedIndex = port.IndexOf(portStr);
}
if (ShuoKeControls.isRun)
{
FormComStatus(true);
}
else
{
FormComStatus(false);
}
}
private void btnSetSpeed_Click(object sender, EventArgs e)
{
//设置速度
int startSpeed = FormUtil.GetIntValue(txtBeginSpeed);
int endSpeed = FormUtil.GetIntValue(txtTargetSpeed);
int maxSpeed = FormUtil.GetIntValue(txtMaxSpeed);
int addSpeed = FormUtil.GetIntValue(txtAddSpeed);
int delSpeed = FormUtil.GetIntValue(txtDelSpeed);
int addr = SendWireAddr;
if (radioButton2.Checked)
{
addr = LineAddr;
}
ShuoKeControls.SetSpeed(addr, ShuoKeCMD.SetAddSpeed, addSpeed);
Thread.Sleep(100);
ShuoKeControls.SetSpeed(addr, ShuoKeCMD.SetDelSpeed, delSpeed);
Thread.Sleep(100);
ShuoKeControls.SetSpeed(addr, ShuoKeCMD.SetEndSpeed, endSpeed);
Thread.Sleep(100);
ShuoKeControls.SetSpeed(addr, ShuoKeCMD.SetMaxSpeed, maxSpeed);
Thread.Sleep(100);
ShuoKeControls.SetSpeed(addr, ShuoKeCMD.SetStartSpeed, startSpeed);
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnSet_Click(object sender, EventArgs e)
{
int speed = FormUtil.GetIntValue(txtWireSpeed) * WeldRobotBean.SendWireXiShu;
SendWireAddr = FormUtil.GetIntValue(txtWireAddr);
ShuoKeControls.SetMoveSpeed(SendWireAddr, speed);
}
private void btnLineStop_Click(object sender, EventArgs e)
{
ShuoKeControls.SuddownStop(LineAddr);
}
private void btnLineRelMove_Click(object sender, EventArgs e)
{
int position = FormUtil.GetIntValue(txtLinePosition);
ShuoKeControls.RelativeMove(LineAddr, position);
}
private void btnLineSpeedMove_Click(object sender, EventArgs e)
{
int speed = FormUtil.GetIntValue(txtLineSpeed);
ShuoKeControls.VolMove(LineAddr, speed);
}
private void btnLineSetSpeed_Click(object sender, EventArgs e)
{
int speed = FormUtil.GetIntValue(txtLineSpeed);
ShuoKeControls.SetMoveSpeed(LineAddr, speed);
}
private void button2_Click(object sender, EventArgs e)
{
ShuoKeControls.GetStatus(LineAddr);
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked)
{
this.txtBeginSpeed.Text = WeldRobotBean.RobotConfig.SendWire_StartSpeed.ToString();
this.txtTargetSpeed.Text = WeldRobotBean.RobotConfig.SendWire_EndSpeed.ToString();
this.txtMaxSpeed.Text = WeldRobotBean.RobotConfig.SendWire_MaxSpeed.ToString();
this.txtAddSpeed.Text = WeldRobotBean.RobotConfig.SendWire_AddSpeed.ToString();
this.txtDelSpeed.Text = WeldRobotBean.RobotConfig.SendWire_DelSpeed.ToString();
}
else
{
this.txtBeginSpeed.Text = Robot.Config.Line_StartSpeed.ToString();
this.txtTargetSpeed.Text = Robot.Config.Line_EndSpeed.ToString();
this.txtMaxSpeed.Text = Robot.Config.Line_MaxSpeed.ToString();
this.txtAddSpeed.Text = Robot.Config.Line_AddSpeed.ToString();
this.txtDelSpeed.Text = Robot.Config.Line_DelSpeed.ToString();
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
\ No newline at end of file
namespace LineSoldering.Client
{
partial class FrmUsbCamera
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.btnExit = new System.Windows.Forms.Button();
this.hWindowControl1 = new HalconDotNet.HWindowControl();
this.btnCloseCamera = new System.Windows.Forms.Button();
this.btnOpen = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// timer1
//
this.timer1.Interval = 200;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// btnExit
//
this.btnExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExit.Location = new System.Drawing.Point(596, 12);
this.btnExit.Name = "btnExit";
this.btnExit.Size = new System.Drawing.Size(64, 37);
this.btnExit.TabIndex = 6;
this.btnExit.Text = "返回";
this.btnExit.UseVisualStyleBackColor = true;
this.btnExit.Visible = false;
this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
//
// hWindowControl1
//
this.hWindowControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.hWindowControl1.BackColor = System.Drawing.Color.Black;
this.hWindowControl1.BorderColor = System.Drawing.Color.Black;
this.hWindowControl1.ImagePart = new System.Drawing.Rectangle(0, 0, 640, 480);
this.hWindowControl1.Location = new System.Drawing.Point(12, 12);
this.hWindowControl1.Name = "hWindowControl1";
this.hWindowControl1.Size = new System.Drawing.Size(648, 371);
this.hWindowControl1.TabIndex = 5;
this.hWindowControl1.WindowSize = new System.Drawing.Size(648, 371);
//
// btnCloseCamera
//
this.btnCloseCamera.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCloseCamera.Location = new System.Drawing.Point(596, 156);
this.btnCloseCamera.Name = "btnCloseCamera";
this.btnCloseCamera.Size = new System.Drawing.Size(64, 37);
this.btnCloseCamera.TabIndex = 3;
this.btnCloseCamera.Text = "关闭";
this.btnCloseCamera.UseVisualStyleBackColor = true;
this.btnCloseCamera.Visible = false;
this.btnCloseCamera.Click += new System.EventHandler(this.btnCloseCamera_Click);
//
// btnOpen
//
this.btnOpen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnOpen.Location = new System.Drawing.Point(596, 84);
this.btnOpen.Name = "btnOpen";
this.btnOpen.Size = new System.Drawing.Size(64, 37);
this.btnOpen.TabIndex = 1;
this.btnOpen.Text = "打开";
this.btnOpen.UseVisualStyleBackColor = true;
this.btnOpen.Visible = false;
this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click);
//
// FrmUsbCamera
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(670, 395);
this.Controls.Add(this.btnExit);
this.Controls.Add(this.btnCloseCamera);
this.Controls.Add(this.btnOpen);
this.Controls.Add(this.hWindowControl1);
this.MaximizeBox = true;
this.MinimizeBox = true;
this.Name = "FrmUsbCamera";
this.Text = "实时监控";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmUsbCamera_FormClosing);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FrmCamera_FormClosed);
this.Load += new System.EventHandler(this.FrmCamera_Load);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btnOpen;
private System.Windows.Forms.Button btnCloseCamera;
private System.Windows.Forms.Timer timer1;
private HalconDotNet.HWindowControl hWindowControl1;
private System.Windows.Forms.Button btnExit;
}
}
\ No newline at end of file
using HalconDotNet;
using LineSoldering.DeviceLibrary;
using LineSoldering.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LineSoldering.Common;
namespace LineSoldering.Client
{
public partial class FrmUsbCamera : FrmBase
{
public FrmUsbCamera()
{
InitializeComponent();
}
private void btnOpen_Click(object sender, EventArgs e)
{
if (UsbCameraHDevelop.OpenCamera())
{
FormStatus(true);
}
}
private void FormStatus(bool open)
{
btnOpen.Enabled = !open;
btnCloseCamera.Enabled = open;
timer1.Enabled = open;
}
private void btnCloseCamera_Click(object sender, EventArgs e)
{
UsbCameraHDevelop.CloseCamera();
FormStatus(false);
}
private void FrmCamera_Load(object sender, EventArgs e)
{
if (UsbCameraHDevelop.OpenCamera())
{
FormStatus(true);
}
else
{
MessageBox.Show("打开摄像机失败");
this.Close();
}
}
private void FrmCamera_FormClosed(object sender, FormClosedEventArgs e)
{
}
private int preIndex = 0;
int dWidth = 0; int dHeight = 0;
private void timer1_Tick(object sender, EventArgs e)
{
preIndex++;
try {
HObject ho_Image = UsbCameraHDevelop.GrabImage();
if (ho_Image != null)
{
if (dWidth <= 0)
{
HTuple width, height;
//int dWidth = 0; int dHeight = 0;
HOperatorSet.GetImageSize(ho_Image, out width, out height);
dWidth = (int)width.D;
dHeight = (int)height.D;
hWindowControl1.HalconWindow.SetPart(0, 0, dHeight, dWidth);
}
HOperatorSet.DispObj(ho_Image, hWindowControl1.HalconWindow);
}
}
catch (Exception ex)
{
LogUtil.error("获取实时出错:" + ex.ToString());
}
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void FrmUsbCamera_FormClosing(object sender, FormClosingEventArgs e)
{
FormStatus(false);
UsbCameraHDevelop.CloseCamera();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
......@@ -115,12 +115,6 @@
<Compile Include="FrmProgramSelect.Designer.cs">
<DependentUpon>FrmProgramSelect.cs</DependentUpon>
</Compile>
<Compile Include="FrmCamera.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmCamera.Designer.cs">
<DependentUpon>FrmCamera.cs</DependentUpon>
</Compile>
<Compile Include="FrmDebugMenu.cs">
<SubType>Form</SubType>
</Compile>
......@@ -151,11 +145,11 @@
<Compile Include="FrmSendWire.Designer.cs">
<DependentUpon>FrmSendWire.cs</DependentUpon>
</Compile>
<Compile Include="FrmSolderingSetting.cs">
<Compile Include="FrmSetting.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmSolderingSetting.Designer.cs">
<DependentUpon>FrmSolderingSetting.cs</DependentUpon>
<Compile Include="FrmSetting.Designer.cs">
<DependentUpon>FrmSetting.cs</DependentUpon>
</Compile>
<Compile Include="FrmSoldDebug.cs">
<SubType>Form</SubType>
......@@ -163,11 +157,11 @@
<Compile Include="FrmSoldDebug.Designer.cs">
<DependentUpon>FrmSoldDebug.cs</DependentUpon>
</Compile>
<Compile Include="FrmWeldPointInfo.cs">
<Compile Include="FrmPointInfo.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmWeldPointInfo.Designer.cs">
<DependentUpon>FrmWeldPointInfo.cs</DependentUpon>
<Compile Include="FrmPointInfo.Designer.cs">
<DependentUpon>FrmPointInfo.cs</DependentUpon>
</Compile>
<Compile Include="FrmWork.cs">
<SubType>Form</SubType>
......@@ -204,9 +198,6 @@
<EmbeddedResource Include="FrmProgramSelect.resx">
<DependentUpon>FrmProgramSelect.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmCamera.resx">
<DependentUpon>FrmCamera.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmDebugMenu.resx">
<DependentUpon>FrmDebugMenu.cs</DependentUpon>
</EmbeddedResource>
......@@ -222,14 +213,14 @@
<EmbeddedResource Include="FrmSendWire.resx">
<DependentUpon>FrmSendWire.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmSolderingSetting.resx">
<DependentUpon>FrmSolderingSetting.cs</DependentUpon>
<EmbeddedResource Include="FrmSetting.resx">
<DependentUpon>FrmSetting.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmSoldDebug.resx">
<DependentUpon>FrmSoldDebug.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmWeldPointInfo.resx">
<DependentUpon>FrmWeldPointInfo.cs</DependentUpon>
<EmbeddedResource Include="FrmPointInfo.resx">
<DependentUpon>FrmPointInfo.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmWork.resx">
<DependentUpon>FrmWork.cs</DependentUpon>
......
namespace UserFromControl
{
partial class IOStatusControl
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(0, 2);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(41, 12);
this.label1.TabIndex = 0;
this.label1.Text = "label1";
//
// pictureBox1
//
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox1.Location = new System.Drawing.Point(0, 15);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(25, 25);
this.pictureBox1.TabIndex = 1;
this.pictureBox1.TabStop = false;
//
// pictureBox2
//
this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox2.Location = new System.Drawing.Point(0, 15);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(25, 25);
this.pictureBox2.TabIndex = 2;
this.pictureBox2.TabStop = false;
//
// IOStatusControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.pictureBox2);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.label1);
this.Name = "IOStatusControl";
this.Size = new System.Drawing.Size(24, 39);
this.Load += new System.EventHandler(this.IOStatusControl_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.PictureBox pictureBox2;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace UserFromControl
{
public partial class IOStatusControl : UserControl
{
public string IOName { get; set; }
public int IOValue { get; set; }
public Boolean isCanClick { get; set; }
public IOStatusControl()
{
InitializeComponent();
if (ImageManager.IsInit==false)
{
ImageManager.Init();
}
this.pictureBox1.BackgroundImage = ImageManager.imgGrey;
this.pictureBox2.BackgroundImage = ImageManager.imgGreen;
pictureBox1.Visible = true;
pictureBox2.Visible = false;
isCanClick = false;
}
public void ShowData()
{
label1.Text = IOName;
if (label1.Text.Equals(""))
{
pictureBox1.Location = new Point(0, 0);
pictureBox2.Location = new Point(0, 0);
}
else
{
pictureBox1.Location = new Point(0, 15);
pictureBox2.Location = new Point(0, 15);
}
if (IOValue == 0)
{
pictureBox1.Visible = true;
pictureBox2.Visible = false;
}
else
{
pictureBox1.Visible = false;
pictureBox2.Visible = true;
}
}
private void IOStatusControl_Load(object sender, EventArgs e)
{
ShowData();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
namespace UserFromControl
{
partial class IOTextControlBig
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.Location = new System.Drawing.Point(46, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(74, 21);
this.label1.TabIndex = 0;
this.label1.Text = "测试一下";
//
// pictureBox1
//
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(40, 40);
this.pictureBox1.TabIndex = 1;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
//
// pictureBox2
//
this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox2.Location = new System.Drawing.Point(0, 0);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(40, 40);
this.pictureBox2.TabIndex = 2;
this.pictureBox2.TabStop = false;
this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click);
//
// IOTextControlBig
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.Controls.Add(this.pictureBox2);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.label1);
this.Name = "IOTextControlBig";
this.Size = new System.Drawing.Size(165, 41);
this.Load += new System.EventHandler(this.IOStatusControl_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.PictureBox pictureBox2;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace UserFromControl
{
public partial class IOTextControlBig : UserControl
{
public string IOName { get; set; }
public int IOValue { get; set; }
public Boolean isCanClick { get; set; }
public IOTextControlBig()
{
InitializeComponent();
if (ImageManager.IsInit==false)
{
ImageManager.Init();
}
this.pictureBox1.BackgroundImage = ImageManager.imgGrey;
this.pictureBox2.BackgroundImage = ImageManager.imgGreen;
pictureBox1.Visible = true;
pictureBox2.Visible = false;
isCanClick = false;
}
public void ShowData()
{
label1.Text = IOName;
if (IOValue == 0)
{
pictureBox1.Visible = true;
pictureBox2.Visible = false;
}
else
{
pictureBox1.Visible = false;
pictureBox2.Visible = true;
}
}
private void IOStatusControl_Load(object sender, EventArgs e)
{
ShowData();
}
private void pictureBox2_Click(object sender, EventArgs e)
{
if (isCanClick)
{
pictureBox2.Visible = true;
pictureBox1.Visible = false;
}
}
private void pictureBox1_Click(object sender, EventArgs e)
{
if (isCanClick)
{
pictureBox2.Visible = false;
pictureBox1.Visible = true;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
namespace UserControlLibrary
{
partial class UserControl1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.label7 = new System.Windows.Forms.Label();
this.textBox6 = new System.Windows.Forms.TextBox();
this.textBox5 = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.textBox7 = new System.Windows.Forms.TextBox();
this.textBox4 = new System.Windows.Forms.TextBox();
this.label9 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.textBox8 = new System.Windows.Forms.TextBox();
this.textBox3 = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.textBox9 = new System.Windows.Forms.TextBox();
this.textBox10 = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(349, 14);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(65, 12);
this.label7.TabIndex = 19;
this.label7.Text = "预热温度:";
//
// textBox6
//
this.textBox6.Location = new System.Drawing.Point(766, 38);
this.textBox6.Name = "textBox6";
this.textBox6.Size = new System.Drawing.Size(70, 21);
this.textBox6.TabIndex = 30;
this.textBox6.Text = "2";
//
// textBox5
//
this.textBox5.Location = new System.Drawing.Point(351, 38);
this.textBox5.Name = "textBox5";
this.textBox5.Size = new System.Drawing.Size(70, 21);
this.textBox5.TabIndex = 20;
this.textBox5.Text = "200";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(764, 14);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(65, 12);
this.label8.TabIndex = 29;
this.label8.Text = "送丝时间:";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(432, 14);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(65, 12);
this.label6.TabIndex = 21;
this.label6.Text = "预热时间:";
//
// textBox7
//
this.textBox7.Location = new System.Drawing.Point(683, 38);
this.textBox7.Name = "textBox7";
this.textBox7.Size = new System.Drawing.Size(70, 21);
this.textBox7.TabIndex = 28;
this.textBox7.Text = "10";
//
// textBox4
//
this.textBox4.Location = new System.Drawing.Point(434, 38);
this.textBox4.Name = "textBox4";
this.textBox4.Size = new System.Drawing.Size(70, 21);
this.textBox4.TabIndex = 22;
this.textBox4.Text = "2";
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(681, 14);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(65, 12);
this.label9.TabIndex = 27;
this.label9.Text = "送丝速度:";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(515, 14);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(65, 12);
this.label5.TabIndex = 23;
this.label5.Text = "焊接温度:";
//
// textBox8
//
this.textBox8.Location = new System.Drawing.Point(600, 38);
this.textBox8.Name = "textBox8";
this.textBox8.Size = new System.Drawing.Size(70, 21);
this.textBox8.TabIndex = 26;
this.textBox8.Text = "2";
//
// textBox3
//
this.textBox3.Location = new System.Drawing.Point(517, 38);
this.textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(70, 21);
this.textBox3.TabIndex = 24;
this.textBox3.Text = "200";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(598, 14);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(65, 12);
this.label10.TabIndex = 25;
this.label10.Text = "焊接时间:";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(17, 14);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(47, 12);
this.label1.TabIndex = 31;
this.label1.Text = "坐标X:";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(19, 38);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(70, 21);
this.textBox1.TabIndex = 32;
this.textBox1.Text = "200";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(100, 14);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(47, 12);
this.label2.TabIndex = 33;
this.label2.Text = "坐标Y:";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(102, 38);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(70, 21);
this.textBox2.TabIndex = 34;
this.textBox2.Text = "2";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(183, 14);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(47, 12);
this.label3.TabIndex = 35;
this.label3.Text = "坐标U:";
//
// textBox9
//
this.textBox9.Location = new System.Drawing.Point(268, 38);
this.textBox9.Name = "textBox9";
this.textBox9.Size = new System.Drawing.Size(70, 21);
this.textBox9.TabIndex = 38;
this.textBox9.Text = "2";
//
// textBox10
//
this.textBox10.Location = new System.Drawing.Point(185, 38);
this.textBox10.Name = "textBox10";
this.textBox10.Size = new System.Drawing.Size(70, 21);
this.textBox10.TabIndex = 36;
this.textBox10.Text = "200";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(266, 14);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(47, 12);
this.label4.TabIndex = 37;
this.label4.Text = "坐标Z:";
//
// UserControl1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label2);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.label3);
this.Controls.Add(this.textBox9);
this.Controls.Add(this.textBox10);
this.Controls.Add(this.label4);
this.Controls.Add(this.label7);
this.Controls.Add(this.textBox6);
this.Controls.Add(this.textBox5);
this.Controls.Add(this.label8);
this.Controls.Add(this.label6);
this.Controls.Add(this.textBox7);
this.Controls.Add(this.textBox4);
this.Controls.Add(this.label9);
this.Controls.Add(this.label5);
this.Controls.Add(this.textBox8);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.label10);
this.Name = "UserControl1";
this.Size = new System.Drawing.Size(907, 79);
this.Load += new System.EventHandler(this.UserControl1_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox textBox6;
private System.Windows.Forms.TextBox textBox5;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox textBox7;
private System.Windows.Forms.TextBox textBox4;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox textBox8;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox textBox9;
private System.Windows.Forms.TextBox textBox10;
private System.Windows.Forms.Label label4;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace UserControlLibrary
{
public partial class UserControl1: UserControl
{
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Load(object sender, EventArgs e)
{
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
......@@ -75,18 +75,6 @@
</ItemGroup>
<ItemGroup>
<Compile Include="ImageManager.cs" />
<Compile Include="IOStatusControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="IOStatusControl.Designer.cs">
<DependentUpon>IOStatusControl.cs</DependentUpon>
</Compile>
<Compile Include="IOTextControlBig.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="IOTextControlBig.Designer.cs">
<DependentUpon>IOTextControlBig.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
......@@ -111,21 +99,9 @@
<Compile Include="URRobotSControl.Designer.cs">
<DependentUpon>URRobotSControl.cs</DependentUpon>
</Compile>
<Compile Include="UserControl1.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControl1.Designer.cs">
<DependentUpon>UserControl1.cs</DependentUpon>
</Compile>
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="IOStatusControl.resx">
<DependentUpon>IOStatusControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="IOTextControlBig.resx">
<DependentUpon>IOTextControlBig.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
......@@ -139,9 +115,6 @@
<EmbeddedResource Include="URRobotSControl.resx">
<DependentUpon>URRobotSControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControl1.resx">
<DependentUpon>UserControl1.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Content Include="image\gray.png">
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!