FlyData_Mix.cs 2.63 KB
using FLY.Thick.RemoteHistory;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FLY.Weight.Common
{
    public class FlyData_Mix:IFlyData
    {
        /// <summary>
        /// 时间点
        /// </summary>
        public DateTime Time
        {
            get;
            set;
        }

        public float Total { get; set; }
        
        /// <summary>
        /// 每个 料 # 的量
        /// </summary>
        public List<FlyData_MixItem> Items { get; } = new List<FlyData_MixItem>();

        public FlyData_Mix()
        {

        }

        public string GetHeader()
        {
            string header = "时间";
            header += ",Σ";

            for (int i = 0; i < Items.Count(); i++)
            {
                string n = (i + 1).ToString();
                header += "," + n + "#";
                header += "," + n + "#%";
            }

            return header;
        }
        public override string ToString()
        {
            string str;
            str = Time.ToString();//时间
            str += "," + Total.ToString("F4");//料斗重量
            for (int i = 0; i < Items.Count(); i++)
            {
                str += "," + Items[i].Disp.ToString("F4");//?#重量
                str += "," + Items[i].PDisp.ToString("F2");//?#比例
            }
            return str;
        }
        public bool TryParse(string header_str, string str)
        {
            string[] items = str.Split(new char[] { ',' });

            if (items.Length < (2 + 2 * 4))
                return false;

            int idx = 0;
            DateTime t;
            float f;

            //时间
            if (!DateTime.TryParse(items[idx], out t))
                return false;
            Time = t;
            idx++;

            //料斗重量
            if (!float.TryParse(items[idx], out f))
                return false;
            Total = f;
            idx++;
            
            for (int i = 0; i < 4; i++)
            {
                if (!float.TryParse(items[idx], out f))//?#重量
                    return false;
                Items[i].Disp = f;
                idx++;

                if (!float.TryParse(items[idx], out f))//?#比例
                    return false;
                Items[i].PDisp = f;
                idx++;
            }
            return true;
        }

    }

    public class FlyData_MixItem
    {
        /// <summary>
        /// 1#重量显示
        /// </summary>
        public float Disp { get; set; }

        /// <summary>
        /// 1#比例显示
        /// </summary>
        public float PDisp { get; set; }
    }


}