|
- using BPASmartClient.Model.咖啡机.Enum;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace BPASmartClient.KLMCoffee.Protocal
- {
- /// <summary>
- /// 咖啡配方Model,控制内容
- /// </summary>
- public class RecipeModel
- {
- /// <summary>
- /// 饮品类型
- /// </summary>
- public DrinkType 饮品类型 { get; set; }
- /// <summary>
- /// 咖啡量:15-240
- /// </summary>
- public int 咖啡量 { get; set; }
- /// <summary>
- /// 咖啡温度:低/中/高
- /// </summary>
- public TempEnum 咖啡温度 { get; set; }
- /// <summary>
- /// 咖啡浓度:清淡/适中/浓郁
- /// </summary>
- public CoffeeConcentration 咖啡浓度 { get; set; }
- /// <summary>
- /// 热水量:25-450
- /// </summary>
- public int 热水量 { get; set; }
- /// <summary>
- /// 热水温度:低/中/高
- /// </summary>
- public TempEnum 热水温度 { get; set; }
- /// <summary>
- /// 牛奶时间:5-120/0
- /// </summary>
- public int 牛奶时间 { get; set; }
- /// <summary>
- /// 奶沫时间:5-120/0
- /// </summary>
- public int 奶沫时间 { get; set; }
- /// <summary>
- /// 预煮
- /// </summary>
- public CancelOrOkEnum 预煮 { get; set; }
- /// <summary>
- /// 咖啡增强
- /// </summary>
- public CancelOrOkEnum 咖啡增强 { get; set; }
- /// <summary>
- /// 咖啡牛奶同时出
- /// </summary>
- public CancelOrOkEnum 咖啡牛奶同时出 { get; set; }
- /// <summary>
- /// 出品顺序:否:先奶后咖啡 是:先咖啡后奶
- /// </summary>
- public CancelOrOkEnum 出品顺序 { get; set; }
-
- public RecipeModel()
- {
- 饮品类型 = DrinkType.意式咖啡;
- 咖啡量 = 0;
- 咖啡温度 = TempEnum.低;
- 咖啡浓度 = CoffeeConcentration.清淡;
- 热水量 = 0;
- 热水温度 = TempEnum.低;
- 牛奶时间 = 0;
- 奶沫时间 = 0;
- 预煮 = CancelOrOkEnum.否;
- 咖啡增强 = CancelOrOkEnum.否;
- 咖啡牛奶同时出 = CancelOrOkEnum.否;
- 出品顺序 = CancelOrOkEnum.否;
- }
-
- #region 获取配方字符串命令
- /// <summary>
- /// Int 转 16进制字符串 (保留几位)
- /// </summary>
- public string IntToHexString(int data,int length = 2)
- {
- try
- {
- return data.ToString("X").PadLeft(length,'0');
- }
- catch (Exception ex)
- {
- return string.Empty;
- }
- }
- /// <summary>
- /// 获取咖啡配方数据
- /// </summary>
- public string GetCoffeeRecipe()
- {
- string retdata = string.Empty;
- try
- {
- retdata = $"{饮品类型.GetString()}{IntToHexString(咖啡量,4)}" +
- $"{咖啡温度.GetString()}{咖啡浓度.GetString()}{IntToHexString(热水量,4)}{热水温度.GetString()}" +
- $"{IntToHexString(牛奶时间,2)}{IntToHexString(奶沫时间,2)}{预煮.GetString()}{咖啡增强.GetString()}" +
- $"{咖啡牛奶同时出.GetString()}{出品顺序.GetString()}";
- }
- catch (Exception ex)
- {
-
- }
- return retdata;
- }
- #endregion
-
- #region 8种配方测试示例
- /// <summary>
- /// 获取8中配方
- /// </summary>
- /// <param name="drink"></param>
- /// <returns></returns>
- public string Packe(DrinkType drink)
- {
- try
- {
- switch (drink)
- {
- case DrinkType.意式咖啡:
- return GetItalian(60);
- break;
- case DrinkType.美式咖啡:
- return GetAmerican(60,450);
- break;
- case DrinkType.热水:
- return GetHotWater(194);
- break;
- case DrinkType.卡布奇诺:
- return GetCabo(60,17);
- break;
- case DrinkType.玛琪雅朵:
- return GetMacChiato(60,8,17);
- break;
- case DrinkType.拿铁咖啡:
- return GetLatte(60,8,17);
- break;
- case DrinkType.热牛奶:
- return GetHotMilk(8);
- break;
- case DrinkType.热奶沫:
- return GetHotMilkFoam(17);
- break;
- }
- }
- catch (Exception ex)
- {
- return GetItalian(60);
- }
- return GetItalian(60);
- }
- #endregion
-
- #region 8种默认配方
- /// <summary>
- /// 意式:仅咖啡
- /// </summary>
- /// <param name="_咖啡量">15-240</param>
- public string GetItalian(int _咖啡量)
- {
- 饮品类型 = DrinkType.意式咖啡;
- 咖啡量 = _咖啡量;
- 咖啡温度 = TempEnum.中;
- 咖啡浓度 = CoffeeConcentration.适中;
- 热水量 = 0;
- 热水温度 = TempEnum.低;
- 牛奶时间 = 0;
- 奶沫时间 = 0;
- 预煮 = CancelOrOkEnum.是;
- 咖啡增强 = CancelOrOkEnum.否;
- 咖啡牛奶同时出 = CancelOrOkEnum.否;
- 出品顺序 = CancelOrOkEnum.是;
- return GetCoffeeRecipe();
- }
- /// <summary>
- /// 美式:咖啡+热水
- /// </summary>
- /// <param name="_咖啡量">15-240</param>
- /// <param name="_热水量">25-450</param>
- public string GetAmerican(int _咖啡量,int _热水量)
- {
- 饮品类型 = DrinkType.美式咖啡;
- 咖啡量 = _咖啡量;
- 咖啡温度 = TempEnum.中;
- 咖啡浓度 = CoffeeConcentration.适中;
- 热水量 = _热水量;
- 热水温度 = TempEnum.高;
- 牛奶时间 = 0;
- 奶沫时间 = 0;
- 预煮 = CancelOrOkEnum.是;
- 咖啡增强 = CancelOrOkEnum.否;
- 咖啡牛奶同时出 = CancelOrOkEnum.否;
- 出品顺序 = CancelOrOkEnum.是;
- return GetCoffeeRecipe();
- }
- /// <summary>
- /// 热水:仅热水
- /// </summary>
- /// <param name="_热水量">25-450</param>
- public string GetHotWater(int _热水量)
- {
- 饮品类型 = DrinkType.热水;
- 咖啡量 = 0;
- 咖啡温度 = TempEnum.低;
- 咖啡浓度 = CoffeeConcentration.清淡;
- 热水量 = _热水量;
- 热水温度 = TempEnum.高;
- 牛奶时间 = 0;
- 奶沫时间 = 0;
- 预煮 = CancelOrOkEnum.否;
- 咖啡增强 = CancelOrOkEnum.否;
- 咖啡牛奶同时出 = CancelOrOkEnum.否;
- 出品顺序 = CancelOrOkEnum.否;
- return GetCoffeeRecipe();
- }
- /// <summary>
- /// 卡布:热奶沫+咖啡
- /// </summary>
- /// <param name="_咖啡量">15-240</param>
- /// <param name="_奶沫时间">5-120</param>
- public string GetCabo(int _咖啡量,int _奶沫时间)
- {
- 饮品类型 = DrinkType.卡布奇诺;
- 咖啡量 = _咖啡量;
- 咖啡温度 = TempEnum.中;
- 咖啡浓度 = CoffeeConcentration.适中;
- 热水量 = 0;
- 热水温度 = TempEnum.低;
- 牛奶时间 = 0;
- 奶沫时间 = _奶沫时间;
- 预煮 = CancelOrOkEnum.是;
- 咖啡增强 = CancelOrOkEnum.是;
- 咖啡牛奶同时出 = CancelOrOkEnum.否;
- 出品顺序 = CancelOrOkEnum.是;
- return GetCoffeeRecipe();
- }
- /// <summary>
- /// 玛奇朵:热牛奶+奶沫+咖啡 牛奶和奶沫不能同时为0
- /// </summary>
- /// <param name="_咖啡量">15-240</param>
- /// <param name="_牛奶时间">5-120</param>
- /// <param name="_奶沫时间">5-120</param>
- public string GetMacChiato(int _咖啡量,int _牛奶时间,int _奶沫时间)
- {
- 饮品类型 = DrinkType.玛琪雅朵;
- 咖啡量 = _咖啡量;
- 咖啡温度 = TempEnum.中;
- 咖啡浓度 = CoffeeConcentration.适中;
- 热水量 = 0;
- 热水温度 = TempEnum.低;
- 牛奶时间 = _牛奶时间;
- 奶沫时间 = _奶沫时间;
- 预煮 = CancelOrOkEnum.是;
- 咖啡增强 = CancelOrOkEnum.否;
- 咖啡牛奶同时出 = CancelOrOkEnum.是;
- 出品顺序 = CancelOrOkEnum.否;
- return GetCoffeeRecipe();
- }
- /// <summary>
- /// 拿铁:热牛奶+奶沫+咖啡
- /// </summary>
- /// <param name="_咖啡量">15-240</param>
- /// <param name="_牛奶时间">5-120</param>
- /// <param name="_奶沫时间">5-120</param>
- public string GetLatte(int _咖啡量,int _牛奶时间,int _奶沫时间)
- {
- 饮品类型 = DrinkType.拿铁咖啡;
- 咖啡量 = _咖啡量;
- 咖啡温度 = TempEnum.中;
- 咖啡浓度 = CoffeeConcentration.适中;
- 热水量 = 0;
- 热水温度 = TempEnum.低;
- 牛奶时间 = _牛奶时间;
- 奶沫时间 = _奶沫时间;
- 预煮 = CancelOrOkEnum.是;
- 咖啡增强 = CancelOrOkEnum.否;
- 咖啡牛奶同时出 = CancelOrOkEnum.否;
- 出品顺序 = CancelOrOkEnum.是;
- return GetCoffeeRecipe();
- }
- /// <summary>
- /// 热牛奶:仅热牛奶
- /// </summary>
- /// <param name="_牛奶时间">5-120</param>
- public string GetHotMilk(int _牛奶时间)
- {
- 饮品类型 = DrinkType.热牛奶;
- 咖啡量 = 0;
- 咖啡温度 = TempEnum.低;
- 咖啡浓度 = CoffeeConcentration.清淡;
- 热水量 = 0;
- 热水温度 = TempEnum.低;
- 牛奶时间 = _牛奶时间;
- 奶沫时间 = 0;
- 预煮 = CancelOrOkEnum.否;
- 咖啡增强 = CancelOrOkEnum.否;
- 咖啡牛奶同时出 = CancelOrOkEnum.否;
- 出品顺序 = CancelOrOkEnum.否;
- return GetCoffeeRecipe();
- }
- /// <summary>
- /// 热奶沫:仅热奶沫
- /// </summary>
- /// <param name="_奶沫时间">5-120</param>
- public string GetHotMilkFoam(int _奶沫时间)
- {
- 饮品类型 = DrinkType.热奶沫;
- 咖啡量 = 0;
- 咖啡温度 = TempEnum.低;
- 咖啡浓度 = CoffeeConcentration.清淡;
- 热水量 = 0;
- 热水温度 = TempEnum.低;
- 牛奶时间 = 0;
- 奶沫时间 = _奶沫时间;
- 预煮 = CancelOrOkEnum.否;
- 咖啡增强 = CancelOrOkEnum.否;
- 咖啡牛奶同时出 = CancelOrOkEnum.否;
- 出品顺序 = CancelOrOkEnum.否;
- return GetCoffeeRecipe();
- }
- #endregion
- }
- }
|