//private byte[] ObjectToByteArray(myOrientation obj)
        //{
        //    //if (obj == null)
        //    //    return null;
        //    BinaryFormatter bf = new BinaryFormatter();
        //    MemoryStream ms = new MemoryStream();
        //    bf.Serialize(ms, obj);
        //    return ms.ToArray();
        //}

        //private byte[] ObjectToByteArray(object obj) 주석처리해도 작동됨을 확인
        //{
        //    //if (obj == null)
        //    //    return null;
        //    BinaryFormatter bf = new BinaryFormatter();
        //    MemoryStream ms = new MemoryStream();
        //    bf.Serialize(ms, obj);
        //    return ms.ToArray();
        //}
        private myOrientation ByteArrayToObject(byte[] arrBytes)
        {
            MemoryStream    memStream = new MemoryStream();
            BinaryFormatter binForm   = new BinaryFormatter();

            memStream.Write(arrBytes, 0, arrBytes.Length);
            memStream.Seek(0, SeekOrigin.Begin);
            myOrientation obj = (myOrientation)binForm.Deserialize(memStream);

            return(obj);
        }
        static void Serialize(myOrientation myStructure, byte[] raw)
        {
            int rawsize = Marshal.SizeOf(myStructure);

            if (raw.Length != rawsize)
            {
                return;
            }
            byte[]   rawdatas = new byte[rawsize];
            GCHandle handle   = GCHandle.Alloc(rawdatas, GCHandleType.Pinned);
            IntPtr   buffer   = handle.AddrOfPinnedObject();

            Marshal.StructureToPtr(myStructure, buffer, false);
            handle.Free();
            Array.Copy(rawdatas, raw, rawsize);
        }