BoardInfo.cs 7.9 KB
using URSoldering.Common;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;

using System.Windows.Forms;

namespace URSoldering.DeviceLibrary
{
    public class BoardInfo
    {
        /// <summary>
        /// 平均焊接时间
        /// </summary>
        public TimeSpan WeldTime = new TimeSpan(0);
        /// <summary>
        /// 电路板ID
        /// </summary>
        public int boardId { get; set; }
        public string AoiFileName { get; set; }
        /// <summary>
        /// 条码
        /// </summary>
        public string WareCode { get; set; }
        ///// <summary>
        ///// 机器人焊接时Z轴的高点
        ///// </summary>
        //public double ZHighValue { get; set; }

        /// <summary>
        /// 工位编号,夹具编号(每一个程序需要配置四个夹具的位置,防止位置偏差)
        /// </summary>
        public int StationNum { get; set; }

        /// <summary>
        /// 料号 
        /// </summary>
        public string PartNumber { get; set; }
        /// <summary>
        /// 电路板名称
        /// </summary>
        public string boardName { get; set; }

        /// <summary>
        /// 宽度
        /// </summary>
        public int boardWidth { get; set; }
        /// <summary>
        /// 长度
        /// </summary>
        public int boardLength { get; set; }
        /// <summary>
        /// 焊点列表
        /// </summary>
        public List<WeldPointInfo> pointList { get; set; }
        ///// <summary>
        ///// 原点坐标X
        ///// </summary>
        //public double originX { get; set; }
        ///// <summary>
        ///// 原点坐标Y
        ///// </summary>
        //public double originY { get; set; }
        /// <summary>
        /// 图片名称
        /// </summary>
        public string imgName { get; set; }
        /// <summary>
        /// 焊接预估时间
        /// </summary>
        public double planNeedTime { get; set; }
        ///// <summary>
        ///// 固定原点的位置,1=左上角,2=左下角,3=右上角,4=右下角
        ///// </summary>
        //public int orgType { get; set; }
        /// <summary>
        /// 已经焊接次数,每次修改板子都会重置
        /// </summary>
        public int solderingCount { get; set; }
        /// <summary>
        /// 焊接的时间,每次修改板子都会重置
        /// </summary>
        public double solderingTime { get; set; }
        /// <summary>
        /// 已经焊接次数,不重置
        /// </summary>
        public int solderCount { get; set; }
        /// <summary>
        /// 焊接的时间,不重置
        /// </summary>
        public double solderTime { get; set; }
        public Image myImage = null;
        public string GetDes()
        {
            return " 长度:" + boardLength + ",宽度:" + boardWidth + ",焊点数量:" + this.pointList.Count;

        }
        public Image GetImage()
        {
            if (myImage == null)
            {
                string path = ConfigAppSettings.GetValue(Setting_Init.BOARD_IMAGE_PATH);
                string imagePath = Application.StartupPath + "/" + path + "/" + imgName;
                string defaultImg = ConfigAppSettings.GetValue(Setting_Init.BOARD_IMAGE_DEFAULT);
                if (imgName != null && File.Exists(imagePath))
                {
                    System.Drawing.Image img = System.Drawing.Image.FromFile(imagePath);
                    System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
                    img.Dispose();
                    myImage = bmp;
                }
                else
                {
                    return BoardManager.defaultImage;
                }
            }
            if (myImage == null)
            {
                return BoardManager.defaultImage;
            }
            else
            {
                return myImage;
            } 
        }

        //public double getImageOrgX()
        //{
        //    double orgX = originX;
        //    if (orgType == 2)
        //    {
        //        orgX = originX + boardLength;
        //    }

        //    else if (orgType == 4)
        //    {
        //        orgX = originX + boardLength;
        //    }
        //    return orgX;
        //}

        //public double getImageOrgY()
        //{
        //    double orgY = originY;

        //    if (orgType == 3)
        //    {
        //        orgY = originY - boardWidth;
        //    }
        //    else if (orgType == 4)
        //    {
        //        orgY = originY - boardWidth;
        //    }
        //    return orgY;
        //}
    }

    /// <summary>
    /// 焊点信息
    /// </summary>
    public class WeldPointInfo
    {
        public WeldPointInfo()
        {
            isNeedClear = false;
            pointType = 0;
        }
        public WeldPointInfo(int type)
        {
            this.pointType = type;
        }

        /// <summary>
        /// 焊点编号
        /// </summary>
        public int pointNum { get; set; }

        /// <summary>
        /// 焊点名字
        /// </summary>
        public string pointName { get; set; }

        public double RobotX { get; set; }
        public double RobotY { get; set; }
        public double RobotZ { get; set; }
        public double RobotRX { get; set; }
        public double RobotRY { get; set; }
        public double RobotRZ { get; set; }

        /// <summary>
        /// 预热温度
        /// </summary>
        public int preheatTemperature { get; set; }
        /// <summary>
        /// 预热温度上限
        /// </summary>
        public int preheatTemperatureMax { get; set; }
        /// <summary>
        /// 预热温度下限
        /// </summary>
        public int preheatTemperatureMin { get; set; }
        /// <summary>
        /// 预热时间(秒)
        /// </summary>
        public double preheatTime { get; set; }
        /// <summary>
        /// 焊接温度
        /// </summary>
        public int weldTemperature { get; set; }
        /// <summary>
        /// 焊接温度上限
        /// </summary>
        public int weldTemperatureMax { get; set; }
        /// <summary>
        /// 焊接温度下限
        /// </summary>
        public int weldTemperatureMin { get; set; }
        /// <summary>
        /// 焊接时间(秒)
        /// </summary>
        public double weldTime { get; set; }
        /// <summary>
        /// 起始送丝速度
        /// </summary>
        public double startSendWireSpeed { get; set; }

        /// <summary>
        /// 起始送丝时间(秒)
        /// </summary>
        public double startSendWireTime { get; set; }
        /// <summary>
        /// 送丝速度
        /// </summary>
        public double sendWireSpeed { get; set; }

        /// <summary>
        /// 送丝时间(秒)
        /// </summary>
        public double sendWireTime { get; set; }

        /// <summary>
        /// 焊点类型,0=普通焊点,必须要焊接,1=中间点,机器人跳转位置使用
        /// </summary>
        public int pointType { get; set; }
        /// <summary>
        /// 是否需要清洗烙铁头
        /// </summary>
        public bool isNeedClear { get; set; }
        /// <summary>
        /// 清洗时间,毫秒数
        /// </summary>
        public int ClearTime { get; set; }
        public string TypeValue
        {
            get
            {
                if (pointType.Equals(0))
                {
                    return "普通焊点";
                }
                else
                {
                    return "中间点";
                }
            } set
            {
            }
        }
        public URPointValue GetURPoint()
        {
            URPointValue p = new URPointValue(RobotX, RobotY, RobotZ, RobotRX, RobotRY, RobotRZ);
            return p;

        }
    }
}