BoardLog.cs 3.9 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 

namespace URSoldering.Common
{
    public class BoardLog
    {
        /// <summary>
        /// 日志记录时间
        /// </summary>
        public DateTime LogTime { get; set; }
        /// <summary>
        /// 电路板名称
        /// </summary>
        public string BoardName { get; set; }

        /// <summary>
        /// 电路板焊点名称
        /// </summary>
        public string BoardPoint { get; set; }
        /// <summary>
        /// 预热温度
        /// </summary>
        public double PreTemp { get; set; }
        /// <summary>
        /// 开始预热时间
        /// </summary>
        public DateTime StartPreTime { get; set; }

        /// <summary>
        /// 结束预热时间
        /// </summary>
        public DateTime EndPreTime { get; set; }
        /// <summary>
        /// 焊接温度
        /// </summary>
        public double WeldTemp { get; set; }
        /// <summary>
        /// 开始焊接时间
        /// </summary>
        public DateTime StartSolderingTime { get; set; }
        /// <summary>
        /// 结束焊接时间
        /// </summary>
        public DateTime EndSolderingTime { get; set; }



        /// <summary>
        /// 预送丝量
        /// </summary>
        public double PreSendWire { get; set; }
        /// <summary>
        /// 送丝长度
        /// </summary>
        public double SendWire { get; set; }
        public static BoardLog GetLog(string s)
        {
            string[] fields = s.Split(',');
            if (fields.Length >= 7)
            {
                try
                {
                    BoardLog log = new BoardLog();
                    log.LogTime = Convert.ToDateTime(fields[0]);
                    log.BoardName = fields[1];
                    log.BoardPoint = fields[2];
                    log.StartPreTime = Convert.ToDateTime(fields[3]);
                    log.EndPreTime = Convert.ToDateTime(fields[4]);
                    log.StartSolderingTime = Convert.ToDateTime(fields[5]);
                    log.EndSolderingTime = Convert.ToDateTime(fields[6]);
                    if (fields.Length >= 15)
                    {
                        log.PreTemp = Convert.ToDouble(fields[7]);
                        log.WeldTemp = Convert.ToDouble(fields[9]);
                        int sspeed = Convert.ToInt32(fields[11]);
                        double stime = Convert.ToDouble(fields[12]);
                        int speed = Convert.ToInt32(fields[13]);
                        double time = Convert.ToDouble(fields[14]);
                        log.SendWire = speed * time;
                        log.PreSendWire = sspeed * stime;
                    }
                    else
                    {
                        log.PreTemp = 0;
                        log.WeldTemp = 0;
                        log.SendWire = 0;
                        log.PreSendWire = 0;
                    }
                    return log;
                }
                catch (Exception ex)
                {
                    LogUtil.error("解析日志文件出错:【" + s + "】" + ex.ToString());
                }
            } 
            return null;
        }
        private static string spilt = ",";
        public string ToCSVString()
        {
            return LogTime + spilt + BoardName + spilt + BoardPoint + spilt + StartPreTime + spilt + EndPreTime + spilt
                + StartSolderingTime + spilt + EndSolderingTime + spilt + PreTemp + spilt + WeldTemp + spilt + SendWire;
        }
        public static string CSVTitleString()
        {
            return "记录时间" + spilt + "电路板名称" + spilt + "焊点名称" + spilt + "预热开始时间" + spilt + "预热结束时间" + spilt
                + "焊接开始时间" + spilt + "焊接结束时间" + spilt + "预热温度" + spilt + "焊接温度" + spilt + "送丝长度(毫米)";
        }
    }
}