[성현모] CPXV2 Init
This commit is contained in:
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user