Esempio n. 1
0
        private void writeToFileStream(RecXmaster rec)
        {
            byte[]   buffer   = new byte[RecXmasterSize];
            GCHandle gcHandle = GCHandle.Alloc((object)buffer, GCHandleType.Pinned);

            Marshal.StructureToPtr((object)rec, gcHandle.AddrOfPinnedObject(), true);
            msg.Fs3.Write(buffer, 0, RecXmasterSize);
            gcHandle.Free();
        }
Esempio n. 2
0
        private void readFromFileStream(ref RecXmaster rec)
        {
            byte[] buffer = new byte[RecXmasterSize];
            int    offset = 0;

            while (offset < buffer.Length)
            {
                offset += msg.Fs3.Read(buffer, offset, buffer.Length - offset);
            }
            GCHandle gcHandle = GCHandle.Alloc((object)buffer, GCHandleType.Pinned);

            rec = (RecXmaster)Marshal.PtrToStructure(gcHandle.AddrOfPinnedObject(),
                                                     typeof(RecXmaster));
            gcHandle.Free();
        }
Esempio n. 3
0
 public void Put()
 {
     if (FileNo > (ushort)byte.MaxValue)
     {
         XmRec      = true;
         Xmstr      = new RecXmaster();
         Xmstr.fi   = Sym01.PadRight(15, char.MinValue).ToCharArray();
         Xmstr.fn   = MsName.PadRight(46, char.MinValue).ToCharArray();
         Xmstr.fd01 = CalFunc.Jd2cymd(Fjd);
         Xmstr.fd02 = Xmstr.fd01;
         Xmstr.ld   = CalFunc.Jd2cymd(Ljd);
         Xmstr.rn   = FileNo;
     }
     else
     {
         Mstr  = new RecMaster();
         Emstr = new RecEmaster();
         int    num  = MsName.Length > 16 ? 1 : 0;
         string str1 = Sym01.PadRight(16, char.MinValue);
         string str2 = MsName.PadRight(17, char.MinValue);
         str1.CopyTo(0, Mstr.fi, 0, 16);
         str2.CopyTo(0, Mstr.fn, 0, 16);
         str1.CopyTo(0, Emstr.sym01, 0, 15);
         str2.CopyTo(0, Emstr.fn, 0, 17);
         if (num != 0)
         {
             MsName.PadRight(45, char.MinValue).CopyTo(0, Emstr.xFn, 0, 45);
         }
         else
         {
             string.Empty.PadRight(45, char.MinValue).CopyTo(0, Emstr.xFn, 0, 45);
         }
         Mstr.entNo = (byte)FileNo;
         Emstr.rn   = (ushort)(byte)FileNo;
         Mstr.d1    = ieee2ms((float)CalFunc.Jd2MsDate(Fjd));
         Mstr.d2    = ieee2ms((float)CalFunc.Jd2MsDate(Ljd));
         Emstr.fd   = CalFunc.Jd2cymd(Fjd);
         Emstr.d1   = CalFunc.Jd2MsDate(Fjd);
         Emstr.d2   = CalFunc.Jd2MsDate(Ljd);
     }
 }
Esempio n. 4
0
 public void Init()
 {
     Mstr  = new RecMaster();
     Emstr = new RecEmaster();
     Xmstr = new RecXmaster();
 }