Example #1
0
        public List <DataEntry> dataEntryList; // список Записей(дата...массив данных)

        //private StringBuilder sb = new StringBuilder();

        public BinFileObject(string pathToBinFile)
        {
            try
            {
                using (FileStream fs = File.Open(pathToBinFile, FileMode.Open, FileAccess.Read, FileShare.None))
                {
                    headerSize      = Marshal.SizeOf(typeof(BinFileHeader));
                    headerByteArray = new byte[headerSize];

                    fs.Read(headerByteArray, 0, headerSize);
                    binFileHeader = (BinFileHeader)Serializer.RawDeserialize(headerByteArray, 0, typeof(BinFileHeader));
                    dataEntryList = new List <DataEntry>();
                    //Console.WriteLine(binFileHeader.ToString());
                    measureCount = GetMeasureCount(binFileHeader);

                    int    fileOffset = (2 * this.measureCount) + 6;
                    byte[] b          = new byte[fileOffset];
                    fs.Seek(headerSize, SeekOrigin.Begin);
                    //fs.Read(b, 0, b.Length);
                    string dateString = "";
                    int    z          = 0;
                    while (fs.Read(b, 0, b.Length) > 0)
                    {
                        ConvertByteArrayToDateTime(b, out dateString);

                        //dataEntryList.Add(new DataEntry($"{dateString} {ConvertByteArrayToString(b)}"));
                        dataEntryList.Add(new DataEntry($"{dateString} {ConvertByteArrayToString(b)}"));


                        //sb.AppendLine(BitConverter.ToString(b));
                        //if (z++ > 10) break;
                    }
                    //DateTime dt1 = new DateTime(2018,07,26);
                    //var sel = from c in dataEntryList where c.dt > dt1 select c;
                    //foreach (var item in sel)
                    //{
                    //    Console.WriteLine($"{item.dt}\t{item.data[1]}\t{item.data[3]} ");
                    //}
                    //Console.WriteLine(this.dataEntryList[1].ToString());
                    fs.Close();
                }
            }
            catch (Exception)
            {
                throw new Exception("Pizda v constructore!");
            }
        }
Example #2
0
 public int MeasureCount(BinFileHeader ph)
 {
     if (ph.onemr == 1)
     {
         measureCount++;
     }
     for (int i = 0; i < 16; i++)
     {
         if ((ph.ust[i] & 0x0f) != 0)
         {
             measureCount++;
         }
         if ((ph.ust[i] & 0x10) != 0)
         {
             measureCount++;
         }
         if ((ph.osn[i] & 0x0f) != 0)
         {
             measureCount++;
         }
         if ((ph.osn[i] & 0x10) == 0x10)
         {
             measureCount++;
         }
         //if ((ph.osn[i] & 0x20) == 0x20) measureCount++;
         if ((ph.dop[i] & 0x0f) != 0)
         {
             measureCount++;
         }
         if ((ph.dop[i] & 0x10) == 0x10)
         {
             measureCount++;
         }
         //if ((ph.dop[i] & 0x20) == 0x20) measureCount++;
     }
     return(measureCount);
 }
Example #3
0
        public static ushort GetMeasureCount(BinFileHeader bfh)
        {
            ushort temp = 0;

            if (bfh.onemr == 1)
            {
                temp++;
            }
            for (int i = 0; i < 16; i++)
            {
                if ((bfh.ust[i] & 0x0f) != 0)
                {
                    temp++;                           //TO DO: сделай функцию ЕБА!!!
                }
                if ((bfh.ust[i] & 0x10) != 0)
                {
                    temp++;
                }
                if ((bfh.osn[i] & 0x0f) != 0)
                {
                    temp++;
                }
                if ((bfh.osn[i] & 0x10) != 0)
                {
                    temp++;
                }
                if ((bfh.dop[i] & 0x0f) != 0)
                {
                    temp++;
                }
                if ((bfh.dop[i] & 0x10) != 0)
                {
                    temp++;
                }
            }
            return(temp);
        }