|
@@ -7,301 +7,77 @@ using System.Threading.Tasks;
|
|
|
|
|
|
namespace AwInitilizer.DLL
|
|
|
{
|
|
|
+ public enum MesType
|
|
|
+ {
|
|
|
+ none,
|
|
|
+ shinewave,
|
|
|
+ sajet
|
|
|
+ }
|
|
|
+
|
|
|
public class SajetConnect
|
|
|
{
|
|
|
public static bool IsEmsEnabled { get; set; } = true;
|
|
|
|
|
|
- public static bool SajetTransStart() => IsEmsEnabled ? SajetConnectDLL.SajetTransStart() : true;
|
|
|
-
|
|
|
- public static bool SajetTransClose() => IsEmsEnabled ? SajetConnectDLL.SajetTransClose() : true;
|
|
|
-
|
|
|
- public static bool SajetTransData(int command, IntPtr data, IntPtr length)
|
|
|
- => IsEmsEnabled ? SajetConnectDLL.SajetTransData(command, data, length) : true;
|
|
|
-
|
|
|
- public static bool SajetTransData_C(int command, out string data)
|
|
|
+ public static MesType Type
|
|
|
{
|
|
|
- if(IsEmsEnabled)
|
|
|
- {
|
|
|
- return SajetConnectDLL.SajetTransData_C(command, out data);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- data = "";
|
|
|
- return true;
|
|
|
- }
|
|
|
+ get => SajetConnectDLLSelector.Type;
|
|
|
+ set => SajetConnectDLLSelector.Type = value;
|
|
|
}
|
|
|
|
|
|
+ public static bool SajetTransStart() => IsEmsEnabled ? SajetConnectDLLSelector.SajetTransStart() : true;
|
|
|
+
|
|
|
+ public static bool SajetTransClose() => IsEmsEnabled ? SajetConnectDLLSelector.SajetTransClose() : true;
|
|
|
+
|
|
|
public static bool SajetTransSignIn(ref string data)
|
|
|
- => IsEmsEnabled ? SajetConnectDLL.SajetTransSignIn(ref data) : true;
|
|
|
+ => IsEmsEnabled ? SajetConnectDLLSelector.SajetTransSignIn(ref data) : true;
|
|
|
|
|
|
public static bool SajetTransWoCheck(ref string workOrder)
|
|
|
- => IsEmsEnabled ? SajetConnectDLL.SajetTransWoCheck(ref workOrder) : true;
|
|
|
+ => IsEmsEnabled ? SajetConnectDLLSelector.SajetTransWoCheck(ref workOrder) : true;
|
|
|
public static bool SajetTransSnCheck(ref string serialNumber)
|
|
|
- => IsEmsEnabled ? SajetConnectDLL.SajetTransSnCheck(ref serialNumber) : true;
|
|
|
+ => IsEmsEnabled ? SajetConnectDLLSelector.SajetTransSnCheck(ref serialNumber) : true;
|
|
|
public static bool SajetTranFinish(bool Result)
|
|
|
- => IsEmsEnabled ? SajetConnectDLL.SajetTranFinish(Result) : true;
|
|
|
+ => IsEmsEnabled ? SajetConnectDLLSelector.SajetTranFinish(Result) : true;
|
|
|
public static string SajetTransRegisterHeader(string model, string header)
|
|
|
- => IsEmsEnabled ? SajetConnectDLL.SajetTransRegisterHeader(model, header) : "";
|
|
|
+ => IsEmsEnabled ? SajetConnectDLLSelector.SajetTransRegisterHeader(model, header) : "";
|
|
|
public static bool SajetTransReport(Dictionary<string, int> resultPair, Dictionary<string, string> codePair)
|
|
|
- => IsEmsEnabled ? SajetConnectDLL.SajetTransReport(resultPair, codePair) : true;
|
|
|
+ => IsEmsEnabled ? SajetConnectDLLSelector.SajetTransReport(resultPair, codePair) : true;
|
|
|
public static bool SajetTransLog(string data, bool isError)
|
|
|
- => IsEmsEnabled ? SajetConnectDLL.SajetTransLog(data, isError) : true;
|
|
|
+ => IsEmsEnabled ? SajetConnectDLLSelector.SajetTransLog(data, isError) : true;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- public class SajetConnectDLL
|
|
|
+ public static class SajetConnectDLLSelector
|
|
|
{
|
|
|
- public enum CMD
|
|
|
- {
|
|
|
- Signin = 1,
|
|
|
- SnCheck = 15,
|
|
|
- WoCheck = 14,
|
|
|
- Report = 16,
|
|
|
- Log = 4,
|
|
|
- HeaderRegister = 8,
|
|
|
- ValueReport = 5
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- [DllImport("SajetConnect.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
|
|
|
- public static extern bool SajetTransStart();
|
|
|
-
|
|
|
- [DllImport("SajetConnect.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
|
|
|
- public static extern bool SajetTransClose();
|
|
|
-
|
|
|
- //[DllImport("SajetConnect.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
|
|
|
- //public static extern bool SajetTransData(int command, IntPtr data, IntPtr length);
|
|
|
+ public static MesType Type { get; set; }
|
|
|
|
|
|
- [DllImport("SajetConnect.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
|
|
|
- public static extern bool SajetTransData(int command, IntPtr data, IntPtr length);
|
|
|
+ public static bool SajetTransStart()
|
|
|
+ => Type == MesType.shinewave ?
|
|
|
+ SajetConnectShinewave.SajetTransStart() : SajectConnectSajet.SajetTransStart();
|
|
|
|
|
|
- [DllImport("SajetConnect.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
|
|
|
- public static extern bool SajetTransData_C(int command, out string data);
|
|
|
+ public static bool SajetTransClose()
|
|
|
+ => Type == MesType.shinewave ?
|
|
|
+ SajetConnectShinewave.SajetTransClose() : SajectConnectSajet.SajetTransClose();
|
|
|
|
|
|
- private static string userId = "";
|
|
|
public static bool SajetTransSignIn(ref string data)
|
|
|
- {
|
|
|
- var attemptId = data;
|
|
|
- if(SajetTransData(CMD.Signin, ref data))
|
|
|
- {
|
|
|
- if(string.IsNullOrEmpty(data) || data.StartsWith("NG"))
|
|
|
- {
|
|
|
- userId = "";
|
|
|
- return false;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- userId = attemptId;
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- userId = "";
|
|
|
- return false;
|
|
|
- }
|
|
|
+ => Type == MesType.shinewave ?
|
|
|
+ SajetConnectShinewave.SajetTransSignIn(ref data) : SajectConnectSajet.SajetTransSignIn(ref data);
|
|
|
|
|
|
- private static string WorkOrder = "";
|
|
|
public static bool SajetTransWoCheck(ref string workOrder)
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(userId))
|
|
|
- return false;
|
|
|
- if (workOrder == null)
|
|
|
- workOrder = "";
|
|
|
- var msg = userId + "," + workOrder + ",";
|
|
|
-
|
|
|
- if (SajetTransData(CMD.WoCheck, ref msg))
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(msg) || msg.StartsWith("NG"))
|
|
|
- {
|
|
|
- WorkOrder = "";
|
|
|
- return false;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- WorkOrder = workOrder;
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- WorkOrder = "";
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- private static string SN;
|
|
|
+ => Type == MesType.shinewave ?
|
|
|
+ SajetConnectShinewave.SajetTransWoCheck(ref workOrder) : SajectConnectSajet.SajetTransWoCheck(ref workOrder);
|
|
|
public static bool SajetTransSnCheck(ref string serialNumber)
|
|
|
- {
|
|
|
- var attemptSN = serialNumber;
|
|
|
- if (string.IsNullOrEmpty(userId))
|
|
|
- return false;
|
|
|
- if (WorkOrder == null)
|
|
|
- WorkOrder = "";
|
|
|
- var msg = userId + "," + WorkOrder + "," + serialNumber + ",";
|
|
|
-
|
|
|
- if (SajetTransData(CMD.SnCheck, ref msg))
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(msg) || msg.StartsWith("NG"))
|
|
|
- {
|
|
|
- SN = "";
|
|
|
- return false;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- SN = attemptSN;
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- SN = "";
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
+ => Type == MesType.shinewave ?
|
|
|
+ SajetConnectShinewave.SajetTransSnCheck(ref serialNumber) : SajectConnectSajet.SajetTransSnCheck(ref serialNumber);
|
|
|
public static bool SajetTranFinish(bool Result)
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(userId))
|
|
|
- return false;
|
|
|
- if (string.IsNullOrEmpty(WorkOrder))
|
|
|
- return false;
|
|
|
- if (string.IsNullOrEmpty(SN))
|
|
|
- return false;
|
|
|
- string msg = userId +"," + WorkOrder + "," + SN + ",";
|
|
|
-
|
|
|
- if (string.IsNullOrEmpty(msg))
|
|
|
- return false;
|
|
|
-#if DEBUG
|
|
|
- Result = false;
|
|
|
-
|
|
|
- if (!Result)
|
|
|
- return true;
|
|
|
-#endif
|
|
|
-
|
|
|
- if (Result)
|
|
|
- {
|
|
|
- msg += "OK,";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- msg += "NG,";
|
|
|
- }
|
|
|
- return SajetTransData(CMD.Report, ref msg);
|
|
|
- }
|
|
|
-
|
|
|
+ => Type == MesType.shinewave ?
|
|
|
+ SajetConnectShinewave.SajetTranFinish(Result) : SajectConnectSajet.SajetTranFinish(Result);
|
|
|
public static string SajetTransRegisterHeader(string model, string header)
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(userId))
|
|
|
- return "";
|
|
|
- var msg = userId + ",";
|
|
|
- msg += model + "," + header;
|
|
|
- if (SajetTransData(CMD.HeaderRegister,ref msg))
|
|
|
- {
|
|
|
- if(msg.StartsWith("OK"))
|
|
|
- {
|
|
|
- //get codename
|
|
|
- msg = msg.Substring(3);
|
|
|
- var spaceIndex = msg.IndexOf(",");
|
|
|
- if (spaceIndex > 0)
|
|
|
- {
|
|
|
- msg = msg.Substring(0, spaceIndex);
|
|
|
- }
|
|
|
- return msg;
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- public static bool SajetTransReport(Dictionary<string,int> resultPair,Dictionary<string,string> codePair)
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(userId))
|
|
|
- return false;
|
|
|
- if (string.IsNullOrEmpty(SN))
|
|
|
- return false;
|
|
|
- string msg = userId + "," + SN + ",";
|
|
|
- foreach(var result in resultPair)
|
|
|
- {
|
|
|
- if(codePair.Keys.Contains(result.Key))
|
|
|
- {
|
|
|
- msg += string.Format("{0}:{1},", codePair[result.Key],string.Format("{0}.00", result.Value) );
|
|
|
- }
|
|
|
- }
|
|
|
- return SajetTransData(CMD.ValueReport,ref msg);
|
|
|
- }
|
|
|
-
|
|
|
- public static bool SajetTransLog (string data,bool isError)
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(userId))
|
|
|
- return false;
|
|
|
- if (string.IsNullOrEmpty(SN))
|
|
|
- return false;
|
|
|
- string prefix = userId + "," + SN + ",";
|
|
|
- while (data.Length > 0)
|
|
|
- {
|
|
|
- var msg = prefix;
|
|
|
- int sendLength = Math.Min(250 - msg.Length, data.Length);
|
|
|
- var sendString = data.Substring(0, sendLength);
|
|
|
- msg += sendString;
|
|
|
- if (!SajetTransData(CMD.Log, ref msg))
|
|
|
- {
|
|
|
- break;
|
|
|
- }
|
|
|
- data = data.Substring(sendLength);
|
|
|
- }
|
|
|
- return data.Length == 0;
|
|
|
- }
|
|
|
-
|
|
|
- private static bool SajetTransData(CMD command, ref string data)
|
|
|
- {
|
|
|
- return SajetTransData((int)command,ref data);
|
|
|
- }
|
|
|
-
|
|
|
- private static string GetSendPrefix()
|
|
|
- {
|
|
|
- string msg = "";
|
|
|
- if (string.IsNullOrEmpty(userId))
|
|
|
- {
|
|
|
- return null;
|
|
|
- }
|
|
|
- msg = userId + ",";
|
|
|
- if (string.IsNullOrEmpty(WorkOrder))
|
|
|
- {
|
|
|
- return null;
|
|
|
- }
|
|
|
- msg += WorkOrder + ",";
|
|
|
- return msg;
|
|
|
- }
|
|
|
-
|
|
|
- private static bool SajetTransData(int command,ref string data)
|
|
|
- {
|
|
|
- //return true;
|
|
|
- if(!data.EndsWith(","))
|
|
|
- {
|
|
|
- data = data + ",";
|
|
|
- }
|
|
|
-
|
|
|
- var idByte = Encoding.ASCII.GetBytes(data);
|
|
|
- var length = idByte.Length;
|
|
|
-
|
|
|
- var dataArrayLength = Math.Max(length, 100);
|
|
|
- var dataArray = new byte[dataArrayLength];
|
|
|
- Array.Copy(idByte, 0, dataArray, 0, length);
|
|
|
-
|
|
|
- IntPtr dataIntPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(dataArrayLength);
|
|
|
- System.Runtime.InteropServices.Marshal.Copy(dataArray, 0, dataIntPtr, dataArray.Length);
|
|
|
-
|
|
|
- IntPtr lengthIntPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(10);
|
|
|
- System.Runtime.InteropServices.Marshal.WriteInt32(lengthIntPtr, length);
|
|
|
-
|
|
|
- var sendResult = SajetConnect.SajetTransData(command, dataIntPtr, lengthIntPtr);
|
|
|
-
|
|
|
- var resultString1 = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(dataIntPtr);
|
|
|
-
|
|
|
- System.Runtime.InteropServices.Marshal.Copy(dataIntPtr, dataArray, 0, dataArrayLength);
|
|
|
- //System.Runtime.InteropServices.Marshal.Release(dataIntPtr);
|
|
|
- System.Runtime.InteropServices.Marshal.FreeCoTaskMem(dataIntPtr);
|
|
|
-
|
|
|
- var readLength = System.Runtime.InteropServices.Marshal.ReadInt32(lengthIntPtr);
|
|
|
- //System.Runtime.InteropServices.Marshal.Release(lengthIntPtr);
|
|
|
-
|
|
|
- var resultString = Encoding.ASCII.GetString(dataArray);
|
|
|
-
|
|
|
- data = resultString1.Substring(0, Math.Min(readLength, resultString1.Length));
|
|
|
- return sendResult;
|
|
|
- }
|
|
|
+ => Type == MesType.shinewave ?
|
|
|
+ SajetConnectShinewave.SajetTransRegisterHeader(model, header) : SajectConnectSajet.SajetTransRegisterHeader(model, header);
|
|
|
+ public static bool SajetTransReport(Dictionary<string, int> resultPair, Dictionary<string, string> codePair)
|
|
|
+ => Type == MesType.shinewave ?
|
|
|
+ SajetConnectShinewave.SajetTransReport(resultPair, codePair) : SajectConnectSajet.SajetTransReport(resultPair, codePair);
|
|
|
+ public static bool SajetTransLog(string data, bool isError)
|
|
|
+ => Type == MesType.shinewave ?
|
|
|
+ SajetConnectShinewave.SajetTransLog(data, isError) : SajectConnectSajet.SajetTransLog(data, isError);
|
|
|
}
|
|
|
}
|