using BPASmartClient.Model.咖啡机.Enum;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BPASmartClient.KLMCoffee.Protocal
{
public class SystemStatusModel :BitValue
{
///
/// 系统状态
///
public K95SysTemStatus temStatus { get; set; }
///
/// 饮品类型
///
public DrinkType drinkType { get; set; }
///
/// 制作状态
///
public MakeStatus makeStatus { get; set; }
///
/// 当前任务
///
public TaskIndex taskIndex { get; set; }
///
/// 当前进度 10%
///
public int progress { get; set; }
///
/// 故障信息
///
public FaultMessage faultMessage { get; set; }
///
/// 保养信息
///
public UpkeepMessage upkeepMessage { get; set; }
public SystemStatusModel(string cmd)
{
// 去掉字符串首尾处的空格
if (string.IsNullOrEmpty(cmd) || cmd.Length < 32)
return;
string str = cmd.Trim().Replace(@"\","").Replace("r","").Replace(@"R","").Replace(@"n","").Replace(@"N","");
int length = str.Length;
str = str.Substring(5,length - 7);
try
{
string systemStatus = str.Substring(0,4);//系统状态
string makeSta = str.Substring(4,4);//制作状态
string makeProgress = str.Substring(8,4);//制作进度
string makeProgress1 = str.Substring(12,4);//制作进度
byte ErrorH = (byte)Convert.ToInt32(str.Substring(16,2),16);//故障信息
byte ErrorL = (byte)Convert.ToInt32(str.Substring(18,2),16);//故障信息
byte InFormation = (byte)Convert.ToInt32(str.Substring(20,1),16);//保养信息
System.Array values = System.Enum.GetValues(typeof(K95SysTemStatus));
string[] nameList = System.Enum.GetNames(typeof(K95SysTemStatus));
string[] sds = Enum.GetNames(typeof(K95SysTemStatus));
foreach (var item in Enum.GetNames(typeof(K95SysTemStatus)))
{
if (systemStatus.Substring(0,1) == ((K95SysTemStatus)Enum.Parse(typeof(K95SysTemStatus),item)).GetString())
temStatus = ((K95SysTemStatus)Enum.Parse(typeof(K95SysTemStatus),item));
}
foreach (var item in Enum.GetNames(typeof(DrinkType)))
{
if ("0" + makeSta.Substring(0,1) == ((DrinkType)Enum.Parse(typeof(DrinkType),item)).GetString())
drinkType = ((DrinkType)Enum.Parse(typeof(DrinkType),item));
}
foreach (var item in Enum.GetNames(typeof(MakeStatus)))
{
if (makeSta.Substring(1,1) == ((MakeStatus)Enum.Parse(typeof(MakeStatus),item)).GetString())
makeStatus = ((MakeStatus)Enum.Parse(typeof(MakeStatus),item));
}
foreach (var item in Enum.GetNames(typeof(TaskIndex)))
{
if (makeSta.Substring(2,1) == ((TaskIndex)Enum.Parse(typeof(TaskIndex),item)).GetString())
taskIndex = ((TaskIndex)Enum.Parse(typeof(TaskIndex),item));
}
faultMessage = new FaultMessage(ErrorL, ErrorH);
upkeepMessage = new UpkeepMessage(InFormation);
if ( makeProgress1 != "0000")
progress = Convert.ToInt32(makeProgress,16) / Convert.ToInt32(makeProgress1,16);
}
catch (Exception ex)
{
}
}
}
}