Exemplo n.º 1
0
        static public void ReadHeader(BinaryReader reader,
                                      ref Pt4Header header)
        {
            // remember original position
            long oldPos = reader.BaseStream.Position;

            // move to start of file
            reader.BaseStream.Position = 0;
            // read file header
            header.headSize    = reader.ReadInt32();
            header.name        = reader.ReadString().Trim();
            header.batterySize = reader.ReadInt32();
            header.captureDate =
                DateTime.FromBinary(reader.ReadInt64());
            header.serialNumber      = reader.ReadString().Trim();
            header.calibrationStatus =
                (CalibrationStatus)reader.ReadInt32();
            header.voutSetting  = (VoutSetting)reader.ReadInt32();
            header.voutValue    = reader.ReadSingle();
            header.hardwareRate = reader.ReadInt32();
            header.softwareRate = (float)header.hardwareRate;
            reader.ReadSingle(); // ignore software rate
            header.powerField         = (SelectField)reader.ReadInt32();
            header.currentField       = (SelectField)reader.ReadInt32();
            header.voltageField       = (SelectField)reader.ReadInt32();
            header.captureSetting     = reader.ReadString().Trim();
            header.swVersion          = reader.ReadString().Trim();
            header.runMode            = (RunMode)reader.ReadInt32();
            header.exitCode           = reader.ReadInt32();
            header.totalCount         = reader.ReadInt64();
            header.statusOffset       = reader.ReadUInt16();
            header.statusSize         = reader.ReadUInt16();
            header.sampleOffset       = reader.ReadUInt16();
            header.sampleSize         = reader.ReadUInt16();
            header.initialMainVoltage = reader.ReadUInt16();
            header.initialUsbVoltage  = reader.ReadUInt16();
            header.initialAuxVoltage  = reader.ReadUInt16();
            header.captureDataMask    = (CaptureMask)reader.ReadUInt16();
            header.sampleCount        = reader.ReadUInt64();
            header.missingCount       = reader.ReadUInt64();
            ulong count = Math.Max(1, header.sampleCount -
                                   header.missingCount);

            // convert sums to averages
            header.avgMainVoltage = reader.ReadSingle() / count;
            header.avgMainCurrent = reader.ReadSingle() / count;
            header.avgMainPower   = reader.ReadSingle() / count;
            header.avgUsbVoltage  = reader.ReadSingle() / count;
            header.avgUsbCurrent  = reader.ReadSingle() / count;
            header.avgUsbPower    = reader.ReadSingle() / count;
            header.avgAuxVoltage  = reader.ReadSingle() / count;
            header.avgAuxCurrent  = reader.ReadSingle() / count;
            header.avgAuxPower    = reader.ReadSingle() / count;
            // restore original position
            reader.BaseStream.Position = oldPos;
        }
Exemplo n.º 2
0
 public static void ReadHeader(BinaryReader reader,
 ref Pt4Header header)
 {
     // remember original position
     long oldPos = reader.BaseStream.Position;
     // move to start of file
     reader.BaseStream.Position = 0;
     // read file header
     header.headSize = reader.ReadInt32();
     header.name = reader.ReadString().Trim();
     header.batterySize = reader.ReadInt32();
     header.captureDate =
     DateTime.FromBinary(reader.ReadInt64());
     header.serialNumber = reader.ReadString().Trim();
     header.calibrationStatus =
     (CalibrationStatus)reader.ReadInt32();
     header.voutSetting = (VoutSetting)reader.ReadInt32();
     header.voutValue = reader.ReadSingle();
     header.hardwareRate = reader.ReadInt32();
     header.softwareRate = (float)header.hardwareRate;
     reader.ReadSingle(); // ignore software rate
     header.powerField = (SelectField)reader.ReadInt32();
     header.currentField = (SelectField)reader.ReadInt32();
     header.voltageField = (SelectField)reader.ReadInt32();
     header.captureSetting = reader.ReadString().Trim();
     header.swVersion = reader.ReadString().Trim();
     header.runMode = (RunMode)reader.ReadInt32();
     header.exitCode = reader.ReadInt32();
     header.totalCount = reader.ReadInt64();
     header.statusOffset = reader.ReadUInt16();
     header.statusSize = reader.ReadUInt16();
     header.sampleOffset = reader.ReadUInt16();
     header.sampleSize = reader.ReadUInt16();
     header.initialMainVoltage = reader.ReadUInt16();
     header.initialUsbVoltage = reader.ReadUInt16();
     header.initialAuxVoltage = reader.ReadUInt16();
     header.captureDataMask = (CaptureMask)reader.ReadUInt16();
     header.sampleCount = reader.ReadUInt64();
     header.missingCount = reader.ReadUInt64();
     ulong count = Math.Max(1, header.sampleCount -
     header.missingCount);
     // convert sums to averages
     header.avgMainVoltage = reader.ReadSingle() / count;
     header.avgMainCurrent = reader.ReadSingle() / count;
     header.avgMainPower = reader.ReadSingle() / count;
     header.avgUsbVoltage = reader.ReadSingle() / count;
     header.avgUsbCurrent = reader.ReadSingle() / count;
     header.avgUsbPower = reader.ReadSingle() / count;
     header.avgAuxVoltage = reader.ReadSingle() / count;
     header.avgAuxCurrent = reader.ReadSingle() / count;
     header.avgAuxPower = reader.ReadSingle() / count;
     // restore original position
     reader.BaseStream.Position = oldPos;
 }