CtuTaskLog.cs 2.4 KB
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;

namespace DeviceLibrary.CtuService
{
    public class CtuTaskLog
    {
        /// <summary>
        /// 起点
        /// </summary>
        public string StartPoint { get; set; } = "";
        /// <summary>
        /// 开始时间
        /// </summary>
        public DateTime StartTime { get; set; } = DateTime.Now;
        /// <summary>
        /// 目标点
        /// </summary>
        public string EndPoint { get; set; } = "";
        /// <summary>
        /// 到达目标点时间
        /// </summary>
        public DateTime EndTime { get; set; } = DateTime.Now;
        /// <summary>
        /// 料箱号
        /// </summary>
        public string BoxCode { get; set; }= "";
        /// <summary>
        /// 开始取放料箱时间
        /// </summary>
        public DateTime StartGetOrPutTime { get; set; } = DateTime.Now;
        /// <summary>
        /// 结束取放料箱时间
        /// </summary>
        public DateTime EndGetOrPutTime { get; set; } = DateTime.Now;
        /// <summary>
        /// 背篓里的料箱数量
        /// </summary>
        public int BoxCntInBasket { get; set; }
        public CtuTaskLog clone()
        {
            CtuTaskLog dstobject;
            using (MemoryStream mStream = new MemoryStream())
            {
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(mStream, this);
                mStream.Seek(0, SeekOrigin.Begin);//指定当前流的位置为流的开头。
                dstobject = (CtuTaskLog)bf.Deserialize(mStream);
                mStream.Close();
            }
            return dstobject;
        }
        public string ToLog()
        {
            return $"料箱【{BoxCode}】任务数【{BoxCntInBasket}】起点【{StartPoint}】终点【{EndPoint}】移动耗时【{(EndTime - StartTime).TotalSeconds.ToString("f2")}】取放耗时【{(EndGetOrPutTime - StartGetOrPutTime).TotalSeconds.ToString("f2")}】" +
                $"开始时间【{StartTime.ToString("yyyy-MM-dd HH:mm:ss")}】" +
                $"到达时间【{EndTime.ToString("yyyy-MM-dd HH:mm:ss")}】开始取放时间【{StartGetOrPutTime.ToString("yyyy-MM-dd HH:mm:ss")}】结束取放时间【{EndGetOrPutTime.ToString("yyyy-MM-dd HH:mm:ss")}】";
        }
    }
}