XiaomiMES_RouteCommunication.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. using System;
  2. using System.Linq;
  3. using System.Text;
  4. using System.Threading.Tasks;
  5. using System.Runtime.InteropServices;
  6. namespace MainForm.ClassFile.XiaomiAPI_RouteCom
  7. {
  8. /// <summary>
  9. /// 小米MES - RouteCommunication.dll调用类
  10. /// </summary>
  11. public class XiaomiMES_RouteCommunication
  12. {
  13. #region 调用DLL
  14. /// <summary>
  15. /// 初始化路由文件配置
  16. /// </summary>
  17. /// <param name="isPlatForm">使用时填写0,表示从平台外部读取配置文件</param>
  18. /// <returns>0表示成功;-1表示失败</returns>
  19. //[DllImport("RouteCommunication.dll", EntryPoint = "Ex_InitRoute", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
  20. [DllImport("RouteCommunication.dll", EntryPoint = "Ex_InitRoute", CharSet = CharSet.Ansi)]
  21. private static extern int Ex_InitRoute(int isPlatForm);
  22. #region 仅限4个主板SN(用不到)
  23. /// <summary>
  24. /// 绑定SN - 仅限4个主板SN(用不到)
  25. /// </summary>
  26. /// <param name="PlateSN">载具SN</param>
  27. /// <param name="BoardSN4">4个主板SN。中间使用’.'分隔,如“111.222.333.444”</param>
  28. /// <returns>0表示成功,-1表示失败,-2表示重复绑定</returns>
  29. [DllImport("RouteCommunication.dll", EntryPoint = "EX_BindRouteSnCombine4", CharSet = CharSet.Ansi)]
  30. private static extern int EX_BindRouteSnCombine4(string PlateSN, string BoardSN4);
  31. /// <summary>
  32. /// 查询SN - 仅限4个主板SN(用不到)
  33. /// </summary>
  34. /// <param name="PlateSN">载具SN</param>
  35. /// <param name="BoardSN4">4个主板SN。中间使用’.'分隔,如“111.222.333.444”</param>
  36. /// <returns>0表示成功,-1表示失败</returns>
  37. [DllImport("RouteCommunication.dll", EntryPoint = "EX_QueryPlateSN4", CharSet = CharSet.Ansi)]
  38. //private static extern int EX_QueryPlateSN4(string PlateSN, string* BoardSN4);
  39. private static extern int EX_QueryPlateSN4(string PlateSN, ref string BoardSN4);
  40. /// <summary>
  41. /// 删除SN - 仅限4个主板SN(用不到)
  42. /// </summary>
  43. /// <param name="PlateSN">载具SN</param>
  44. /// <returns>0表示成功;-1表示失败</returns>
  45. [DllImport("RouteCommunication.dll", EntryPoint = "EX_DeletePlateSN4", CharSet = CharSet.Ansi)]
  46. private static extern int EX_DeletePlateSN4(string PlateSN);
  47. #endregion 仅限4个主板SN(用不到)
  48. /// <summary>
  49. /// 绑定SN
  50. /// </summary>
  51. /// <param name="strPlateSN">载具SN</param>
  52. /// <param name="flagMsg">标识符</param>
  53. /// <param name="msg">绑定的信息</param>
  54. /// <returns>0表示成功;-1表示失败</returns>
  55. [DllImport("RouteCommunication.dll", EntryPoint = "EX_BindMaterialMsg", CharSet = CharSet.Ansi)]
  56. private static extern int EX_BindMaterialMsg(string strPlateSN, string flagMsg, string msg);
  57. /// <summary>
  58. /// 查询SN
  59. /// </summary>
  60. /// <param name="strPlateSN">载具SN</param>
  61. /// <param name="flagMsg">标识符</param>
  62. /// <param name="msg">绑定的信息</param>
  63. /// <returns>0表示成功;-1表示失败</returns>
  64. [DllImport("RouteCommunication.dll", EntryPoint = "EX_QueryMaterialMsg", CharSet = CharSet.Ansi)]
  65. //private static extern int EX_QueryMaterialMsg(string strPlateSN, string flagMsg, char* msg);
  66. private static extern int EX_QueryMaterialMsg(string strPlateSN, string flagMsg, ref string msg);
  67. /// <summary>
  68. /// 删除SN
  69. /// </summary>
  70. /// <param name="strPlateSN">载具SN</param>
  71. /// <param name="flagMsg">标识符(暂时可以随意传值)</param>
  72. /// <returns>0表示成功;-1表示失败</returns>
  73. [DllImport("RouteCommunication.dll", EntryPoint = "EX_DeleteMaterialMsg", CharSet = CharSet.Ansi)]
  74. private static extern int EX_DeleteMaterialMsg(string strPlateSN, string flagMsg);
  75. #endregion 调用DLL
  76. /// <summary>
  77. /// 初始化
  78. /// </summary>
  79. /// <returns>0表示成功;-1表示失败</returns>
  80. public static int Init()
  81. {
  82. if (!GlobalContext.IsUseMESRoute)
  83. return 0;
  84. else
  85. return Ex_InitRoute(0);
  86. }
  87. /// <summary>
  88. /// SN绑定数据
  89. /// </summary>
  90. /// <param name="sn">物料号</param>
  91. /// <param name="data">要绑定的数据</param>
  92. /// <returns>0表示成功;-1表示失败</returns>
  93. public static int SNBindData(string sn, string data)
  94. {
  95. if (!GlobalContext.IsUseMESRoute)
  96. return 0;
  97. else
  98. return EX_BindMaterialMsg(sn, sn, data);
  99. }
  100. /// <summary>
  101. /// SN查询数据
  102. /// </summary>
  103. /// <param name="sn">物料号</param>
  104. /// <param name="data">要绑定的数据</param>
  105. /// <returns>0表示成功;-1表示失败</returns>
  106. public static int SNQueryData(string sn, ref string data)
  107. {
  108. if (!GlobalContext.IsUseMESRoute)
  109. {
  110. data = "";
  111. return 0;
  112. }
  113. else
  114. return EX_QueryMaterialMsg(sn, sn, ref data);
  115. }
  116. /// <summary>
  117. /// SN清空数据
  118. /// </summary>
  119. /// <param name="sn">物料号</param>
  120. /// <returns>0表示成功;-1表示失败</returns>
  121. public static int SNDeleteData(string sn)
  122. {
  123. if (!GlobalContext.IsUseMESRoute)
  124. return 0;
  125. else
  126. return EX_DeleteMaterialMsg(sn, sn);
  127. }
  128. }
  129. }