using System; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; namespace MainForm.ClassFile.XiaomiAPI_RouteCom { /// /// 小米MES - RouteCommunication.dll调用类 /// public class XiaomiMES_RouteCommunication { #region 调用DLL /// /// 初始化路由文件配置 /// /// 使用时填写0,表示从平台外部读取配置文件 /// 0表示成功;-1表示失败 //[DllImport("RouteCommunication.dll", EntryPoint = "Ex_InitRoute", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] [DllImport("RouteCommunication.dll", EntryPoint = "Ex_InitRoute", CharSet = CharSet.Ansi)] private static extern int Ex_InitRoute(int isPlatForm); #region 仅限4个主板SN(用不到) /// /// 绑定SN - 仅限4个主板SN(用不到) /// /// 载具SN /// 4个主板SN。中间使用’.'分隔,如“111.222.333.444” /// 0表示成功,-1表示失败,-2表示重复绑定 [DllImport("RouteCommunication.dll", EntryPoint = "EX_BindRouteSnCombine4", CharSet = CharSet.Ansi)] private static extern int EX_BindRouteSnCombine4(string PlateSN, string BoardSN4); /// /// 查询SN - 仅限4个主板SN(用不到) /// /// 载具SN /// 4个主板SN。中间使用’.'分隔,如“111.222.333.444” /// 0表示成功,-1表示失败 [DllImport("RouteCommunication.dll", EntryPoint = "EX_QueryPlateSN4", CharSet = CharSet.Ansi)] //private static extern int EX_QueryPlateSN4(string PlateSN, string* BoardSN4); private static extern int EX_QueryPlateSN4(string PlateSN, ref string BoardSN4); /// /// 删除SN - 仅限4个主板SN(用不到) /// /// 载具SN /// 0表示成功;-1表示失败 [DllImport("RouteCommunication.dll", EntryPoint = "EX_DeletePlateSN4", CharSet = CharSet.Ansi)] private static extern int EX_DeletePlateSN4(string PlateSN); #endregion 仅限4个主板SN(用不到) /// /// 绑定SN /// /// 载具SN /// 标识符 /// 绑定的信息 /// 0表示成功;-1表示失败 [DllImport("RouteCommunication.dll", EntryPoint = "EX_BindMaterialMsg", CharSet = CharSet.Ansi)] private static extern int EX_BindMaterialMsg(string strPlateSN, string flagMsg, string msg); /// /// 查询SN /// /// 载具SN /// 标识符 /// 绑定的信息 /// 0表示成功;-1表示失败 [DllImport("RouteCommunication.dll", EntryPoint = "EX_QueryMaterialMsg", CharSet = CharSet.Ansi)] //private static extern int EX_QueryMaterialMsg(string strPlateSN, string flagMsg, char* msg); private static extern int EX_QueryMaterialMsg(string strPlateSN, string flagMsg, ref string msg); /// /// 删除SN /// /// 载具SN /// 标识符(暂时可以随意传值) /// 0表示成功;-1表示失败 [DllImport("RouteCommunication.dll", EntryPoint = "EX_DeleteMaterialMsg", CharSet = CharSet.Ansi)] private static extern int EX_DeleteMaterialMsg(string strPlateSN, string flagMsg); #endregion 调用DLL /// /// 初始化 /// /// 0表示成功;-1表示失败 public static int Init() { if (!GlobalContext.IsUseMESRoute) return 0; else return Ex_InitRoute(0); } /// /// SN绑定数据 /// /// 物料号 /// 要绑定的数据 /// 0表示成功;-1表示失败 public static int SNBindData(string sn, string data) { if (!GlobalContext.IsUseMESRoute) return 0; else return EX_BindMaterialMsg(sn, sn, data); } /// /// SN查询数据 /// /// 物料号 /// 要绑定的数据 /// 0表示成功;-1表示失败 public static int SNQueryData(string sn, ref string data) { if (!GlobalContext.IsUseMESRoute) { data = ""; return 0; } else return EX_QueryMaterialMsg(sn, sn, ref data); } /// /// SN清空数据 /// /// 物料号 /// 0表示成功;-1表示失败 public static int SNDeleteData(string sn) { if (!GlobalContext.IsUseMESRoute) return 0; else return EX_DeleteMaterialMsg(sn, sn); } } }