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);
}
}
}