[성현모] CPXV2 Init

This commit is contained in:
SHM
2024-06-26 10:30:00 +09:00
parent cdf12248c5
commit 5958993b6a
588 changed files with 698420 additions and 0 deletions

View File

@ -0,0 +1,465 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
using SystemX.Net.BaseProtocol;
//프로토콜 직렬화/역직렬화 기능
//기본 프로토콜 정의 포함
namespace SystemX.Common.Serialization
{
public static class SystemXNetSerialization
{
private const int MAX_STEP_PACKET_SIZE = 256000;
public const int MAX_PACKET_SIZE = 512000; //1024000 <- 256000 <- 65536;
//public const int MAX_PACKET_SIZE = 256000; //1024000 <- 256000 <- 65536;
public const int PACKET_NUM = 251; // 250 <- 64;
public static object SelectPacket(uint uiDataSize)
{
object objPacket = null;
//uint uiLowBytes = 0;
//uint uiHighBytes = 1024;
//
/*
FieldInfo field = typeof(StructureToMarshalFrom).GetField("_value1");
object[] attributes = field.GetCustomAttributes(typeof(MarshalAsAttribute), false);
MarshalAsAttribute marshal = (MarshalAsAttribute) attributes[0];
int sizeConst = marshal.SizeConst
*/
int iPacketPos = GetPacketPos(uiDataSize);
objPacket = SetPacketObject(iPacketPos);
/*
for (int i = 0; i < PACKET_NUM; i++)
{
uiLowBytes = (uint)(1024 * i);
uiHighBytes = (uint)(1024 * (i + 1));
if (uiDataSize >= uiLowBytes && uiDataSize <= uiHighBytes)
{
objPacket = SetPacketObject(i);
break;
}
}
*/
return objPacket;
}
public static int SelectPacketSize(PACKET_SIZE SET_SIZE)
{
object objPacket = null;
int iSetSize = 0;
objPacket = SetPacketObject((int)SET_SIZE);
HEADER_PACKET HeaderPacket = new HEADER_PACKET();
int iHeadSize = Marshal.SizeOf(HeaderPacket);
int iPacketSize = 0;
if (objPacket != null)
iPacketSize = Marshal.SizeOf(objPacket);
iSetSize = iHeadSize + iPacketSize;
return iSetSize;
}
//------------------------------------------------------------------------------------------
private static int GetPacketPos(uint uiDataSize)
{
int uiGetSizeMajor = -1;
/*uiGetSizeMajor = (int)(uiDataSize / 1024);
int uiGetSizeMinor = (int)(uiDataSize % 1024);
if (uiGetSizeMajor == 0)
uiGetSizeMajor = 0;
if (uiGetSizeMinor == 0)
uiGetSizeMajor -= 1;*/
if (uiDataSize > MAX_STEP_PACKET_SIZE)
{
if (uiDataSize <= 512000) uiGetSizeMajor = 250;
/*
else if (uiDataSize <= 1024000) uiGetSizeMajor = 251;
else if (uiDataSize <= 2048000) uiGetSizeMajor = 252;
else if (uiDataSize <= 3072000) uiGetSizeMajor = 253;
else if (uiDataSize <= 4096000) uiGetSizeMajor = 254;
else if (uiDataSize <= 5120000) uiGetSizeMajor = 255;
else if (uiDataSize <= 6144000) uiGetSizeMajor = 256;
else if (uiDataSize <= 7168000) uiGetSizeMajor = 257;
else if (uiDataSize <= 8192000) uiGetSizeMajor = 258;
else if (uiDataSize <= 9216000) uiGetSizeMajor = 259;
else if (uiDataSize <= 10240000) uiGetSizeMajor = 260;
*/
}
else
{
uiGetSizeMajor = (int)(uiDataSize / 1024);
int uiGetSizeMinor = (int)(uiDataSize % 1024);
if (uiGetSizeMajor == 0)
uiGetSizeMajor = 0;
if (uiGetSizeMinor == 0)
uiGetSizeMajor -= 1;
}
return uiGetSizeMajor;
}
//------------------------------------------------------------------------------------------
private static object SetPacketObject(int iSelectPos)
{
object objPacket = null;
switch (iSelectPos)
{
case 0: objPacket = new DATA_PACKET_1024(); break;
case 1: objPacket = new DATA_PACKET_2048(); break;
case 2: objPacket = new DATA_PACKET_3072(); break;
case 3: objPacket = new DATA_PACKET_4096(); break;
case 4: objPacket = new DATA_PACKET_5120(); break;
case 5: objPacket = new DATA_PACKET_6144(); break;
case 6: objPacket = new DATA_PACKET_7168(); break;
case 7: objPacket = new DATA_PACKET_8192(); break;
case 8: objPacket = new DATA_PACKET_9216(); break;
case 9: objPacket = new DATA_PACKET_10240(); break;
case 10: objPacket = new DATA_PACKET_11264(); break;
case 11: objPacket = new DATA_PACKET_12288(); break;
case 12: objPacket = new DATA_PACKET_13312(); break;
case 13: objPacket = new DATA_PACKET_14336(); break;
case 14: objPacket = new DATA_PACKET_15360(); break;
case 15: objPacket = new DATA_PACKET_16384(); break;
case 16: objPacket = new DATA_PACKET_17408(); break;
case 17: objPacket = new DATA_PACKET_18432(); break;
case 18: objPacket = new DATA_PACKET_19456(); break;
case 19: objPacket = new DATA_PACKET_20480(); break;
case 20: objPacket = new DATA_PACKET_21504(); break;
case 21: objPacket = new DATA_PACKET_22528(); break;
case 22: objPacket = new DATA_PACKET_23552(); break;
case 23: objPacket = new DATA_PACKET_24576(); break;
case 24: objPacket = new DATA_PACKET_25600(); break;
case 25: objPacket = new DATA_PACKET_26624(); break;
case 26: objPacket = new DATA_PACKET_27648(); break;
case 27: objPacket = new DATA_PACKET_28672(); break;
case 28: objPacket = new DATA_PACKET_29696(); break;
case 29: objPacket = new DATA_PACKET_30720(); break;
case 30: objPacket = new DATA_PACKET_31744(); break;
case 31: objPacket = new DATA_PACKET_32768(); break;
case 32: objPacket = new DATA_PACKET_33792(); break;
case 33: objPacket = new DATA_PACKET_34816(); break;
case 34: objPacket = new DATA_PACKET_35840(); break;
case 35: objPacket = new DATA_PACKET_36864(); break;
case 36: objPacket = new DATA_PACKET_37888(); break;
case 37: objPacket = new DATA_PACKET_38912(); break;
case 38: objPacket = new DATA_PACKET_39936(); break;
case 39: objPacket = new DATA_PACKET_40960(); break;
case 40: objPacket = new DATA_PACKET_41984(); break;
case 41: objPacket = new DATA_PACKET_43008(); break;
case 42: objPacket = new DATA_PACKET_44032(); break;
case 43: objPacket = new DATA_PACKET_45056(); break;
case 44: objPacket = new DATA_PACKET_46080(); break;
case 45: objPacket = new DATA_PACKET_47104(); break;
case 46: objPacket = new DATA_PACKET_48128(); break;
case 47: objPacket = new DATA_PACKET_49152(); break;
case 48: objPacket = new DATA_PACKET_50176(); break;
case 49: objPacket = new DATA_PACKET_51200(); break;
case 50: objPacket = new DATA_PACKET_52224(); break;
case 51: objPacket = new DATA_PACKET_53248(); break;
case 52: objPacket = new DATA_PACKET_54272(); break;
case 53: objPacket = new DATA_PACKET_55296(); break;
case 54: objPacket = new DATA_PACKET_56320(); break;
case 55: objPacket = new DATA_PACKET_57344(); break;
case 56: objPacket = new DATA_PACKET_58368(); break;
case 57: objPacket = new DATA_PACKET_59392(); break;
case 58: objPacket = new DATA_PACKET_60416(); break;
case 59: objPacket = new DATA_PACKET_61440(); break;
case 60: objPacket = new DATA_PACKET_62464(); break;
case 61: objPacket = new DATA_PACKET_63488(); break;
case 62: objPacket = new DATA_PACKET_64512(); break;
case 63: objPacket = new DATA_PACKET_65536(); break;
case 64: objPacket = new DATA_PACKET_66560(); break;
case 65: objPacket = new DATA_PACKET_67584(); break;
case 66: objPacket = new DATA_PACKET_68608(); break;
case 67: objPacket = new DATA_PACKET_69632(); break;
case 68: objPacket = new DATA_PACKET_70656(); break;
case 69: objPacket = new DATA_PACKET_71680(); break;
case 70: objPacket = new DATA_PACKET_72704(); break;
case 71: objPacket = new DATA_PACKET_73728(); break;
case 72: objPacket = new DATA_PACKET_74752(); break;
case 73: objPacket = new DATA_PACKET_75776(); break;
case 74: objPacket = new DATA_PACKET_76800(); break;
case 75: objPacket = new DATA_PACKET_77824(); break;
case 76: objPacket = new DATA_PACKET_78848(); break;
case 77: objPacket = new DATA_PACKET_79872(); break;
case 78: objPacket = new DATA_PACKET_80896(); break;
case 79: objPacket = new DATA_PACKET_81920(); break;
case 80: objPacket = new DATA_PACKET_82944(); break;
case 81: objPacket = new DATA_PACKET_83968(); break;
case 82: objPacket = new DATA_PACKET_84992(); break;
case 83: objPacket = new DATA_PACKET_86016(); break;
case 84: objPacket = new DATA_PACKET_87040(); break;
case 85: objPacket = new DATA_PACKET_88064(); break;
case 86: objPacket = new DATA_PACKET_89088(); break;
case 87: objPacket = new DATA_PACKET_90112(); break;
case 88: objPacket = new DATA_PACKET_91136(); break;
case 89: objPacket = new DATA_PACKET_92160(); break;
case 90: objPacket = new DATA_PACKET_93184(); break;
case 91: objPacket = new DATA_PACKET_94208(); break;
case 92: objPacket = new DATA_PACKET_95232(); break;
case 93: objPacket = new DATA_PACKET_96256(); break;
case 94: objPacket = new DATA_PACKET_97280(); break;
case 95: objPacket = new DATA_PACKET_98304(); break;
case 96: objPacket = new DATA_PACKET_99328(); break;
case 97: objPacket = new DATA_PACKET_100352(); break;
case 98: objPacket = new DATA_PACKET_101376(); break;
case 99: objPacket = new DATA_PACKET_102400(); break;
case 100: objPacket = new DATA_PACKET_103424(); break;
case 101: objPacket = new DATA_PACKET_104448(); break;
case 102: objPacket = new DATA_PACKET_105472(); break;
case 103: objPacket = new DATA_PACKET_106496(); break;
case 104: objPacket = new DATA_PACKET_107520(); break;
case 105: objPacket = new DATA_PACKET_108544(); break;
case 106: objPacket = new DATA_PACKET_109568(); break;
case 107: objPacket = new DATA_PACKET_110592(); break;
case 108: objPacket = new DATA_PACKET_111616(); break;
case 109: objPacket = new DATA_PACKET_112640(); break;
case 110: objPacket = new DATA_PACKET_113664(); break;
case 111: objPacket = new DATA_PACKET_114688(); break;
case 112: objPacket = new DATA_PACKET_115712(); break;
case 113: objPacket = new DATA_PACKET_116736(); break;
case 114: objPacket = new DATA_PACKET_117760(); break;
case 115: objPacket = new DATA_PACKET_118784(); break;
case 116: objPacket = new DATA_PACKET_119808(); break;
case 117: objPacket = new DATA_PACKET_120832(); break;
case 118: objPacket = new DATA_PACKET_121856(); break;
case 119: objPacket = new DATA_PACKET_122880(); break;
case 120: objPacket = new DATA_PACKET_123904(); break;
case 121: objPacket = new DATA_PACKET_124928(); break;
case 122: objPacket = new DATA_PACKET_125952(); break;
case 123: objPacket = new DATA_PACKET_126976(); break;
case 124: objPacket = new DATA_PACKET_128000(); break;
case 125: objPacket = new DATA_PACKET_129024(); break;
case 126: objPacket = new DATA_PACKET_130048(); break;
case 127: objPacket = new DATA_PACKET_131072(); break;
case 128: objPacket = new DATA_PACKET_132096(); break;
case 129: objPacket = new DATA_PACKET_133120(); break;
case 130: objPacket = new DATA_PACKET_134144(); break;
case 131: objPacket = new DATA_PACKET_135168(); break;
case 132: objPacket = new DATA_PACKET_136192(); break;
case 133: objPacket = new DATA_PACKET_137216(); break;
case 134: objPacket = new DATA_PACKET_138240(); break;
case 135: objPacket = new DATA_PACKET_139264(); break;
case 136: objPacket = new DATA_PACKET_140288(); break;
case 137: objPacket = new DATA_PACKET_141312(); break;
case 138: objPacket = new DATA_PACKET_142336(); break;
case 139: objPacket = new DATA_PACKET_143360(); break;
case 140: objPacket = new DATA_PACKET_144384(); break;
case 141: objPacket = new DATA_PACKET_145408(); break;
case 142: objPacket = new DATA_PACKET_146432(); break;
case 143: objPacket = new DATA_PACKET_147456(); break;
case 144: objPacket = new DATA_PACKET_148480(); break;
case 145: objPacket = new DATA_PACKET_149504(); break;
case 146: objPacket = new DATA_PACKET_150528(); break;
case 147: objPacket = new DATA_PACKET_151552(); break;
case 148: objPacket = new DATA_PACKET_152576(); break;
case 149: objPacket = new DATA_PACKET_153600(); break;
case 150: objPacket = new DATA_PACKET_154624(); break;
case 151: objPacket = new DATA_PACKET_155648(); break;
case 152: objPacket = new DATA_PACKET_156672(); break;
case 153: objPacket = new DATA_PACKET_157696(); break;
case 154: objPacket = new DATA_PACKET_158720(); break;
case 155: objPacket = new DATA_PACKET_159744(); break;
case 156: objPacket = new DATA_PACKET_160768(); break;
case 157: objPacket = new DATA_PACKET_161792(); break;
case 158: objPacket = new DATA_PACKET_162816(); break;
case 159: objPacket = new DATA_PACKET_163840(); break;
case 160: objPacket = new DATA_PACKET_164864(); break;
case 161: objPacket = new DATA_PACKET_165888(); break;
case 162: objPacket = new DATA_PACKET_166912(); break;
case 163: objPacket = new DATA_PACKET_167936(); break;
case 164: objPacket = new DATA_PACKET_168960(); break;
case 165: objPacket = new DATA_PACKET_169984(); break;
case 166: objPacket = new DATA_PACKET_171008(); break;
case 167: objPacket = new DATA_PACKET_172032(); break;
case 168: objPacket = new DATA_PACKET_173056(); break;
case 169: objPacket = new DATA_PACKET_174080(); break;
case 170: objPacket = new DATA_PACKET_175104(); break;
case 171: objPacket = new DATA_PACKET_176128(); break;
case 172: objPacket = new DATA_PACKET_177152(); break;
case 173: objPacket = new DATA_PACKET_178176(); break;
case 174: objPacket = new DATA_PACKET_179200(); break;
case 175: objPacket = new DATA_PACKET_180224(); break;
case 176: objPacket = new DATA_PACKET_181248(); break;
case 177: objPacket = new DATA_PACKET_182272(); break;
case 178: objPacket = new DATA_PACKET_183296(); break;
case 179: objPacket = new DATA_PACKET_184320(); break;
case 180: objPacket = new DATA_PACKET_185344(); break;
case 181: objPacket = new DATA_PACKET_186368(); break;
case 182: objPacket = new DATA_PACKET_187392(); break;
case 183: objPacket = new DATA_PACKET_188416(); break;
case 184: objPacket = new DATA_PACKET_189440(); break;
case 185: objPacket = new DATA_PACKET_190464(); break;
case 186: objPacket = new DATA_PACKET_191488(); break;
case 187: objPacket = new DATA_PACKET_192512(); break;
case 188: objPacket = new DATA_PACKET_193536(); break;
case 189: objPacket = new DATA_PACKET_194560(); break;
case 190: objPacket = new DATA_PACKET_195584(); break;
case 191: objPacket = new DATA_PACKET_196608(); break;
case 192: objPacket = new DATA_PACKET_197632(); break;
case 193: objPacket = new DATA_PACKET_198656(); break;
case 194: objPacket = new DATA_PACKET_199680(); break;
case 195: objPacket = new DATA_PACKET_200704(); break;
case 196: objPacket = new DATA_PACKET_201728(); break;
case 197: objPacket = new DATA_PACKET_202752(); break;
case 198: objPacket = new DATA_PACKET_203776(); break;
case 199: objPacket = new DATA_PACKET_204800(); break;
case 200: objPacket = new DATA_PACKET_205824(); break;
case 201: objPacket = new DATA_PACKET_206848(); break;
case 202: objPacket = new DATA_PACKET_207872(); break;
case 203: objPacket = new DATA_PACKET_208896(); break;
case 204: objPacket = new DATA_PACKET_209920(); break;
case 205: objPacket = new DATA_PACKET_210944(); break;
case 206: objPacket = new DATA_PACKET_211968(); break;
case 207: objPacket = new DATA_PACKET_212992(); break;
case 208: objPacket = new DATA_PACKET_214016(); break;
case 209: objPacket = new DATA_PACKET_215040(); break;
case 210: objPacket = new DATA_PACKET_216064(); break;
case 211: objPacket = new DATA_PACKET_217088(); break;
case 212: objPacket = new DATA_PACKET_218112(); break;
case 213: objPacket = new DATA_PACKET_219136(); break;
case 214: objPacket = new DATA_PACKET_220160(); break;
case 215: objPacket = new DATA_PACKET_221184(); break;
case 216: objPacket = new DATA_PACKET_222208(); break;
case 217: objPacket = new DATA_PACKET_223232(); break;
case 218: objPacket = new DATA_PACKET_224256(); break;
case 219: objPacket = new DATA_PACKET_225280(); break;
case 220: objPacket = new DATA_PACKET_226304(); break;
case 221: objPacket = new DATA_PACKET_227328(); break;
case 222: objPacket = new DATA_PACKET_228352(); break;
case 223: objPacket = new DATA_PACKET_229376(); break;
case 224: objPacket = new DATA_PACKET_230400(); break;
case 225: objPacket = new DATA_PACKET_231424(); break;
case 226: objPacket = new DATA_PACKET_232448(); break;
case 227: objPacket = new DATA_PACKET_233472(); break;
case 228: objPacket = new DATA_PACKET_234496(); break;
case 229: objPacket = new DATA_PACKET_235520(); break;
case 230: objPacket = new DATA_PACKET_236544(); break;
case 231: objPacket = new DATA_PACKET_237568(); break;
case 232: objPacket = new DATA_PACKET_238592(); break;
case 233: objPacket = new DATA_PACKET_239616(); break;
case 234: objPacket = new DATA_PACKET_240640(); break;
case 235: objPacket = new DATA_PACKET_241664(); break;
case 236: objPacket = new DATA_PACKET_242688(); break;
case 237: objPacket = new DATA_PACKET_243712(); break;
case 238: objPacket = new DATA_PACKET_244736(); break;
case 239: objPacket = new DATA_PACKET_245760(); break;
case 240: objPacket = new DATA_PACKET_246784(); break;
case 241: objPacket = new DATA_PACKET_247808(); break;
case 242: objPacket = new DATA_PACKET_248832(); break;
case 243: objPacket = new DATA_PACKET_249856(); break;
case 244: objPacket = new DATA_PACKET_250880(); break;
case 245: objPacket = new DATA_PACKET_251904(); break;
case 246: objPacket = new DATA_PACKET_252928(); break;
case 247: objPacket = new DATA_PACKET_253952(); break;
case 248: objPacket = new DATA_PACKET_254976(); break;
case 249: objPacket = new DATA_PACKET_256000(); break;
case 250: objPacket = new DATA_PACKET_512000(); break;
/*
case 251: objPacket = new DATA_PACKET_1024000(); break;
case 252: objPacket = new DATA_PACKET_2048000(); break;
case 253: objPacket = new DATA_PACKET_3072000(); break;
case 254: objPacket = new DATA_PACKET_4096000(); break;
case 255: objPacket = new DATA_PACKET_5120000(); break;
case 256: objPacket = new DATA_PACKET_6144000(); break;
case 257: objPacket = new DATA_PACKET_7168000(); break;
case 258: objPacket = new DATA_PACKET_8192000(); break;
case 259: objPacket = new DATA_PACKET_9216000(); break;
case 260: objPacket = new DATA_PACKET_10240000(); break;
*/
default: objPacket = null; break;
}
return objPacket;
}
//------------------------------------------------------------------------------------------
public static byte[] RawSerialize(object ShmStruct, int irsStructSize)
{
IntPtr buffer = Marshal.AllocHGlobal(irsStructSize);
Marshal.StructureToPtr(ShmStruct, buffer, false);
byte[] RawData = new byte[irsStructSize];
Marshal.Copy(buffer, RawData, 0, irsStructSize);
Marshal.FreeHGlobal(buffer);
return RawData;
}
//------------------------------------------------------------------------------------------
public static object RawDeSerialize(byte[] RawData, Type typeData, int iOption = 0)
{
int RawSize = 0;
if (iOption == 0)
RawSize = Marshal.SizeOf(typeData);
else
RawSize = iOption;
//Size Over
if (RawSize > RawData.Length)
return null;
IntPtr buffer = Marshal.AllocHGlobal(RawSize);
Marshal.Copy(RawData, 0, buffer, RawSize);
object retobj = Marshal.PtrToStructure(buffer, typeData);
Marshal.FreeHGlobal(buffer);
return retobj;
}
//------------------------------------------------------------------------------------------
public static byte[] ObjectToByteArray(object obj)
{
if (obj == null) return null;
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);
return ms.ToArray();
}
//------------------------------------------------------------------------------------------
public static object ByteArrayToObject(byte[] byteArr)
{
if (byteArr == null) return null;
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
ms.Write(byteArr, 0, byteArr.Length);
ms.Seek(0, SeekOrigin.Begin);
object obj = bf.Deserialize(ms);
return obj;
}
public static T ByteArrayToObject<T>(byte[] byteArr)
{
if (byteArr == null) return default(T);
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
ms.Write(byteArr, 0, byteArr.Length);
ms.Seek(0, SeekOrigin.Begin);
return (T)Convert.ChangeType(bf.Deserialize(ms), typeof(T));
}
}
}