using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Reflection.Emit; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; using SystemX.Net.BaseProtocol; namespace SystemX.Net.XAdaptor { public enum SAVE_TABLE_LIST { HIST_ProdLoad = 0, HIST_CapDeassy = 1, HIST_PreHeating = 2, HIST_PreMeas = 3, HIST_Leak = 4, HIST_LaserTrim = 5, HIST_IsoRes = 6, HIST_CapAssy = 7, HIST_Function = 8, HIST_OutSealPress = 9, HIST_PinVision = 10, HIST_ProdUnload = 11, HIST_GrsDisp = 11 } public enum eResultCheck { None = -1024, InvalidFormat = -4, InvalidMacAddressFormat = -2, AlreadyIssued = -1, NotIssued = 0 } public enum eResultIssued { None = -1024, InvalidFormat = -128, InformationThatDoesNotExist = -64, InformationWithoutIssuanceHistory = -3, AlreadyIssued = -2, Failed = -1, Success = 0 } public enum eMacAddressType { InvalidMacAddressFormat = -1, Normal = 0, Colon = 1, Hyphen = 2, Dot = 3, } public enum eLookUpOption { CompareToSame = 0, StartWith = 1, EndWith = 2, ContainWith = 3 } [Flags] public enum eFileSendRecvResult { None = 0x8000, StreamSocketNoConnect = 0x8001, ConnectInitializeFail = 0x8002, NoFileTransferPermission = 0x8004, FileSizeOver = 0x8008, FileAccessError = 0x8010, FileProcFailed = 0x8020, //OppoentRecvNG = 0x8040, //OppoentRecvOKProcNG = 0x8080, MonitorLockUpState = 0x8100, FileProcSuccess = 0x0000, //OppoentRecvOKProcOK = 0x0000 } public enum eSetConfigFileResult { None = 0, SetConfigFail = -1, SetConfigSuccess = 1 } public enum eSetFileLogCategory { None = 0, FileLog = 1, FTPFileLog = 2 } public class ResultIssued { public eResultIssued eResult; public string strMacAddress; public string strErrMessage; public ResultIssued(eResultIssued setResult) { eResult = setResult; strMacAddress = string.Empty; strErrMessage = string.Empty; } public ResultIssued(eResultIssued setResult, string strSetMacAddress, string strSetErrMsg) { eResult = setResult; strMacAddress = strSetMacAddress; strErrMessage = strSetErrMsg; } } public class ClientConnInfo { public string CONNECT_IP { set; get; } public string SECTION { set; get; } public string HOST_ID { set; get; } public string TEST_CODE { set; get; } public int COMMAND_PORT { set; get; } public int STREAM_PORT { set; get; } public bool LOGIN_RESULT { set; get; } public string LOGIN_MESSAGE { set; get; } public ClientConnInfo() { CONNECT_IP = string.Empty; SECTION = string.Empty; HOST_ID = string.Empty; TEST_CODE = string.Empty; COMMAND_PORT = int.MaxValue; STREAM_PORT = int.MaxValue; LOGIN_RESULT = false; LOGIN_MESSAGE = string.Empty; } } public class SubscriberClient { public bool bUIMUseMode; public bool bSetChangeConnect; public bool bReqConnectAbort; public int nChangeCommandPort; public int nChangeStreamPort; public DateTime dtSessionTime; public bool bSessionStarted; public bool bSubscriberClientResult; public SubscriberClient() { bUIMUseMode = false; bSetChangeConnect = false; bReqConnectAbort = false; nChangeCommandPort = 0; nChangeStreamPort = 0; dtSessionTime = DateTime.Now; bSessionStarted = false; bSubscriberClientResult = false; } public void Initialize() { bUIMUseMode = false; bSetChangeConnect = false; bReqConnectAbort = false; nChangeCommandPort = 0; nChangeStreamPort = 0; dtSessionTime = DateTime.Now; bSessionStarted = false; bSubscriberClientResult = false; } public void SessionTimeSet() { dtSessionTime = DateTime.Now; } public TimeSpan GetSessionTime() { return DateTime.Now - dtSessionTime; } } public class ClientInfoStore { public bool ConnectCommandState { set; get; } public bool ConnectStreamState { set; get; } public bool InitialInfoState { set; get; } public int m_iSendCommandCnt { set; get; } public int m_iRecvCommandCnt { set; get; } public int m_iSendStreamCnt { set; get; } public int m_iRecvStreamCnt { set; get; } public int m_iSendCommandQueueSize { set; get; } public int m_iRecvCommandQueueSize { set; get; } public int m_iSendStreamQueueSize { set; get; } public int m_iRecvStreamQueueSize { set; get; } /// /// Big Size File /// public List> lstRecvFileBytes { set; get; } public int nFileRecvPos { set; get; } public int nFileRecvEndPos { set; get; } public string strRecvFileName { set; get; } public string strRecvExtension { set; get; } //LastProcessTime public Stopwatch stCommandProcessTime; public long lCommandTime; public Stopwatch stStreamProcessTime; public long lStreamTime; //Ping Check Time public Stopwatch stCommandCheckTime; public Stopwatch stStreamCheckTime; // public bool bHostLoginState; public Stopwatch stLoginTimeOut; public void OnCommandTime() { stCommandProcessTime.Restart(); } public void OffCommandTime() { lCommandTime = stCommandProcessTime.ElapsedMilliseconds; } public void OnStreamTime() { stStreamProcessTime.Restart(); } public void OffStreamTime() { lStreamTime = stStreamProcessTime.ElapsedMilliseconds; } // public void OnCommandCheckTime() { stCommandCheckTime.Restart(); } public void OnStreamCheckTime() { stStreamCheckTime.Restart(); } // public ClientInfoStore() { ConnectCommandState = false; ConnectStreamState = false; InitialInfoState = false; m_iSendCommandCnt = 0; m_iRecvCommandCnt = 0; m_iSendStreamCnt = 0; m_iRecvStreamCnt = 0; m_iSendCommandQueueSize = 0; m_iRecvCommandQueueSize = 0; m_iSendStreamQueueSize = 0; m_iRecvStreamQueueSize = 0; lstRecvFileBytes = new List>(); nFileRecvPos = 0; nFileRecvEndPos = 0; strRecvFileName = string.Empty; strRecvExtension = string.Empty; // stCommandProcessTime = new Stopwatch(); stCommandProcessTime.Start(); lCommandTime = 0; stStreamProcessTime = new Stopwatch(); stStreamProcessTime.Start(); lStreamTime = 0; // stCommandCheckTime = new Stopwatch(); stCommandCheckTime.Start(); stStreamCheckTime = new Stopwatch(); stStreamCheckTime.Start(); bHostLoginState = true; stLoginTimeOut = new Stopwatch(); stLoginTimeOut.Start(); } } public static class SelectDataTable { private static Enum MakeCrrent; private static Type MakeType; static SelectDataTable() { } public static Type GetCurrentType() { return MakeType; } public static void MakeDicList(string[] strTableName) { // Get the current application domain for the current thread AppDomain currentDomain = AppDomain.CurrentDomain; // Create a dynamic Assembly in the current application domain, // and allow it to be executed and saved to disk. AssemblyName name = new AssemblyName("SaveListEnums"); AssemblyBuilder assemblyBuilder = currentDomain.DefineDynamicAssembly(name, AssemblyBuilderAccess.RunAndSave); // Define a dynamic module in "SaveListEnums" Assembly. // For a single-module Assembly, the module has the same name as the Assembly. ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(name.Name, name.Name + ".dll"); // Define a public enumeration with the name "SaveListEnum" and an underlying type of Integer. EnumBuilder xEnum = moduleBuilder.DefineEnum("EnumeratedTypes.SaveListEnum", TypeAttributes.Public, typeof(int)); int iSetKey = 1; xEnum.DefineLiteral("None", 0); foreach (string strName in strTableName) xEnum.DefineLiteral(strName, iSetKey++); MakeType = xEnum.CreateType(); // Create the enum MakeCrrent = (Enum)Activator.CreateInstance(xEnum.CreateType()); var sFilePath = Directory.GetCurrentDirectory() + "\\" + "SaveListEnums.dll"; if (File.Exists(sFilePath)) File.Delete(sFilePath); // Finally, save the Assembly assemblyBuilder.Save(name.Name + ".dll"); } } public static class COMMON { public static bool FIX_INFO_MODE = false; [DllImport("winmm.dll")] public static extern uint timeGetTime(); [DllImport("kernel32.dll", SetLastError = true)] public static extern bool SetLocalTime(ref SYSTEMTIME st); public static T ConvertTextToTryValue(string strText, object objFailValue) { object obj; obj = typeof(T); int iGetValue = 0; uint uiGetValue = 0; double dGetValue = 0; if (obj.ToString().IndexOf("Int") >= 0) { if (!int.TryParse(strText, out iGetValue)) obj = objFailValue; else obj = iGetValue; } if (obj.ToString().IndexOf("UInt") >= 0) { if (!uint.TryParse(strText, out uiGetValue)) obj = objFailValue; else obj = uiGetValue; } else if (obj.ToString().IndexOf("Double") >= 0) { if (!double.TryParse(strText, out dGetValue)) obj = objFailValue; else obj = dGetValue; } return (T)Convert.ChangeType(obj, typeof(T)); } public static T FindByName(this object targetClass, string name) where T : class { System.Reflection.FieldInfo fi = targetClass.GetType().GetField(name, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); return fi.GetValue(targetClass) as T; } public static T FindByName(this string name, object targetClass) where T : class { System.Reflection.FieldInfo fi = targetClass.GetType().GetField(name, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); return fi.GetValue(targetClass) as T; } } }