RecipeCacher.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using SKMC.Api.Recipe.Config;
  2. using SKMC.Api.Recipe.Model;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. namespace SKMC.Api.Recipe
  6. {
  7. /// <summary>
  8. /// 配方数据缓存器
  9. /// </summary>
  10. public abstract class RecipeCacher
  11. {
  12. /// <summary>
  13. /// 当前使用的配方
  14. /// </summary>
  15. public RecipeProfile RecipeProfile { get; set; }
  16. /// <summary>
  17. /// 获取流程参数对象
  18. /// </summary>
  19. /// <param name="paramCode"></param>
  20. /// <returns></returns>
  21. public abstract RecipeParam GetRecipeParam(string paramCode);
  22. /// <summary>
  23. /// 获取流程参数配置(根据数据库配置加载)
  24. /// </summary>
  25. /// <param name="paramCode"></param>
  26. /// <returns></returns>
  27. public abstract T GetRecipeParamValue<T>(string paramCode);
  28. /// <summary>
  29. /// 获取流程点位
  30. /// </summary>
  31. /// <param name="code"></param>
  32. /// <returns></returns>
  33. public abstract RecipePoint GetRecipePoint(string code);
  34. /// <summary>
  35. /// 获取流程点位的轴位置数值
  36. /// </summary>
  37. /// <param name="code">点位码</param>
  38. /// <param name="index">点位中多个轴位置的序号, 默认为第一个</param>
  39. /// <returns></returns>
  40. public abstract double GetRecipePointVal(string code, int index = 0);
  41. /// <summary>
  42. /// 获取流程点位的轴位置数值
  43. /// </summary>
  44. /// <param name="recipePoint">点位对象</param>
  45. /// <param name="index">点位中多个轴位置的序号, 默认为第一个</param>
  46. /// <returns></returns>
  47. public abstract double GetRecipePointVal(RecipePoint recipePoint, int index = 0);
  48. /// <summary>
  49. /// 获取速度配置对象
  50. /// </summary>
  51. /// <param name="speedCode">速度码</param>
  52. /// <returns></returns>
  53. public abstract RecipeSpeed GetRecipeSpeed(string speedCode);
  54. }
  55. }