using Common.vo.pb;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Common
{
    public class PbCacheMonitor
    {
        /// <summary>
        /// 系统路径
        /// </summary>
        public static readonly string path = System.Environment.CurrentDirectory;

        /// <summary>
        /// 内倒计量时使用，这个初始化默认给false
        /// 若内倒中验证存在一次计量数据，那么这个值给true
        /// </summary>
        public static bool isHaveFirst { get; set; }

        /// <summary>
        /// 计量界面锁定状态，已保存后，锁定界面等重量小于500kg后再重置该状态
        /// </summary>
        public static bool isLockFrm { get; set; }

        /// <summary>
        /// 当重量大于500时开始给值，发现有值后不再设定值
        /// 当重量小于300时发现有值则设置为null
        /// </summary>
        public static DateTime? dtStartTime { get; set; }

        /// <summary>
        /// 在客户点击了保存的时候开始锁定，保存完成后取消锁定
        /// 计量重量取值锁定  true则暂停取重信息写入到界面
        /// 此时后台仍在取重量，只是不写入到界面而已，待重量小于500kg后再重置该状态
        /// </summary>
        public static bool isLockWgt { get; set; }

        /// <summary>
        /// 锁定后的重量
        /// </summary>
        public static double lockWgt { get; set; }

        /// <summary>
        /// 附加重量
        /// </summary>
        public static double addWgt { get; set; }

        /// <summary>
        /// 锁定后的车号
        /// </summary>
        public static string lockCarNo { get; set; }

        /// <summary>
        /// 计量编号，用于后面截图后生成图片的编号使用
        /// </summary>
        public static string actualFirstNo { get; set; }

        /// <summary>
        /// 提示信息，用于写入到界面的ListBox中
        /// </summary>
        public static string ResultMessage { get; set; }

        /// <summary>
        /// 计量点配置信息
        /// </summary>
        public static MeterBaseSpotInfo sportInfo { get; set; }

        /// <summary>
        /// 计量点配置信息  皮带秤集合
        /// </summary>
        public static List<MeterBaseSpotInfo> sportInfoList { get; set; }

        //皮带秤
        public static List<MeterBaseSpotInfo> sportInfos { get; set; }

        /// <summary>
        /// 汽车衡监控表信息
        /// </summary>
        public static List<MeterWorkMonitor> ltWorkMonitor { get; set; }


        /// <summary>
        /// 成品秤等监控信息
        /// </summary>
        public static List<MeterBaseScalePoint> ltMeterBaseScalePoint { get; set; }

        /// <summary>
        /// 摄像头配置信息
        /// </summary>
        public static MeterBaseVideoinfo videoInfo { get; set; }
        public static List<MeterBaseVideoinfo> ltVideoInfo { get; set; }

        /// <summary>
        /// 摄像头配置信息拆分结果
        /// </summary>
        public static List<MeterBaseVideoChild> videoChild { get; set; }

        public static List<MeterBaseScaleRange> ltRange { get; set; }

        /// <summary>
        /// 对应实时库的采集点编号
        /// </summary>
        public static string collect_no { get; set; }

        /// <summary>
        /// 计量监控表
        /// 每隔1秒刷新一次数据，在点击计量的时候查一次后不再验证
        /// 通过下面的isQueryMonitor来控制是否查询，直到计量点击取消则
        /// 继续验证，或者等车辆上秤重量大于500kg后开启
        /// </summary>
        public static MeterWorkMonitor monitor { get; set; }
        public static bool isQueryMonitor { get; set; }

        /// <summary>
        /// 验证结果
        /// </summary>
        public static MeterWorkMonitorResult monitorResult { get; set; }

        /// <summary>
        /// 播放前修改为false，播放完修改为true
        /// </summary>
        public static bool voiceOver = true;

        /// <summary>
        /// 读取音频信息
        /// </summary>
        public static List<string> voiceInfo { get; set; }

        /// <summary>
        /// 初始化一次，重量小于300kg后调用一次
        /// </summary>
        public static void Load()
        {
            isHaveFirst = false;
            isLockFrm = false;
            isLockWgt = false;
            dtStartTime = null;
            lockWgt = 0;
            addWgt = 0;
            lockCarNo = "";
            actualFirstNo = "";
            ResultMessage = "";
            isQueryMonitor = false;
            monitorResult = new MeterWorkMonitorResult();
            isTermTare = false;
        }


        /// <summary>
        /// 是否可用期限皮重
        /// ture可以，false不可以
        /// </summary>
        public static bool isTermTare { get; set; }

        public static DateTime? frmMsgClosingTime{ get; set; }
    }
}
