Files
2024-06-26 10:30:00 +09:00

424 lines
12 KiB
C#

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; }
/// <summary>
/// Big Size File
/// </summary>
public List<Tuple<int, byte[]>> 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<Tuple<int, byte[]>>();
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<T>(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<T>(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<T>(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;
}
}
}