using POSV.Bean; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace POSV { public class WeightApi { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); public static bool IsConnection = false; public static StringBuilder bs = new StringBuilder(32); /// /// 打开串口 /// /// /// public static bool OpenPort(SteelyardParam param) { bool result = false; switch (param.Name) { case SteelyardBrandEnum.None: { result = false; } break; case SteelyardBrandEnum.顶尖PS1X: { IsConnection = PS1Dll.openport(param.Port, param.Baud); result = IsConnection; } break; } return result; } /// /// 关闭串口 /// public static bool ClosePort(SteelyardParam param) { bool result = false; if (IsConnection) { try { switch (param.Name) { case SteelyardBrandEnum.顶尖PS1X: { PS1Dll.closeport(); } break; } IsConnection = false; result = true; } catch { result = false; } } else { result = true; } return result; } /// /// 创建指令 /// public static void CreateCommon(SteelyardParam param) { switch (param.Name) { case SteelyardBrandEnum.顶尖PS1X: { PS1Dll.CreateComm(); } break; } } /// /// 销毁指令 /// public static void DestoryComm(SteelyardParam param) { switch (param.Name) { case SteelyardBrandEnum.顶尖PS1X: { PS1Dll.destoryComm(); IsConnection = false; } break; } } /// /// 清零 /// public static bool ClearZero(SteelyardParam param) { bool result = false; switch (param.Name) { case SteelyardBrandEnum.顶尖PS1X: { PS1Dll.CreateComm(); if(PS1Dll.openport(param.Port, param.Baud)) { result = PS1Dll.ClearZero(); logger.Info("顶尖ps1x清零结果:{0}", result); } else { logger.Info("顶尖ps1x清零结果:未打开串口"); result = false; } PS1Dll.closeport(); PS1Dll.destoryComm(); } break; case SteelyardBrandEnum.龙飞C2: case SteelyardBrandEnum.龙飞C3: { int re = LF_ACS_C3.send_zero(); logger.Error("龙飞清零》》》<{0}>", re); result = re == 0xF0;//240 } break; } return result; } /// /// 去皮 /// /// public static bool PeelSkin(SteelyardParam param) { bool result = false; switch (param.Name) { case SteelyardBrandEnum.顶尖PS1X: { PS1Dll.CreateComm(); if (PS1Dll.openport(param.Port, param.Baud)) { result = PS1Dll.Peelskin(); } else { result = false; } PS1Dll.closeport(); PS1Dll.destoryComm(); } break; case SteelyardBrandEnum.龙飞C2: case SteelyardBrandEnum.龙飞C3: { var re = LF_ACS_C3.send_tare(new StringBuilder("0.000")); logger.Error("龙飞去皮》》》<{0}>", re); result = re == 0xF0;//240 } break; } return result; } /// /// 获取所有值 /// /// public static string GetAllValue(SteelyardParam param) { string result = string.Empty; switch (param.Name) { case SteelyardBrandEnum.大华ACS_15AB: { result = DaHuaACS15AB.GetWeight(param.Port, param.Baud.ToString()).ToString(); } break; case SteelyardBrandEnum.顶尖PS1X: { PS1Dll.CreateComm(); if (PS1Dll.openport(param.Port, param.Baud)) { result = PS1Dll.GetAllValue(); } else { result = string.Empty; } PS1Dll.closeport(); PS1Dll.destoryComm(); } break; case SteelyardBrandEnum.龙飞C2: case SteelyardBrandEnum.龙飞C3: { bs.Clear(); var res = LF_ACS_C3.read_standard(bs); result = bs.ToString(); logger.Error("龙飞读取结果<0>重量<{1}>", res, bs.ToString()); } break; } return result; } /// /// 获取重量 /// /// public static string GetWeight(SteelyardParam param) { string result = string.Empty; switch (param.Name) { case SteelyardBrandEnum.顶尖PS1X: { result = PS1Dll.GetWeight(); } break; } return result; } public static string GetKeyAndWeight(SteelyardParam param) { string result = string.Empty; switch (param.Name) { case SteelyardBrandEnum.顶尖PS1X: { result = PS1Dll.GetKeyAndWeight(); } break; } return result; } /// /// 监听数据变更 /// /// public static void RegisterListen(SteelyardParam param, TOnShowWeight action) { switch (param.Name) { case SteelyardBrandEnum.顶尖PS1X: { PS1Dll.IniOnShowWeight(action); } break; } } } }