public void Read(Stream fitSource)
        {
            fitSource.Position = 0;
             EndianBinaryReader br = new EndianBinaryReader(fitSource, false);

             LocalMesgNum = (byte)(br.ReadByte() & Fit.LocalMesgNumMask);
             byte reserved = br.ReadByte();
             architecture = br.ReadByte();
             br.IsBigEndian = this.IsBigEndian;
             GlobalMesgNum = br.ReadUInt16();
             NumFields = br.ReadByte();
             for (int i=0; i<NumFields; i++)
             {
            FieldDefinition newField = new FieldDefinition();
            newField.Num = br.ReadByte();
            newField.Size = br.ReadByte();
            newField.Type = br.ReadByte();
            fieldDefs.Add(newField);
             }
        }
 public FieldDefinition(FieldDefinition fieldDef)
 {
     Num = fieldDef.Num;
      Size = fieldDef.Size;
      Type = fieldDef.Type;
 }
 public void AddField(FieldDefinition field)
 {
     fieldDefs.Add(field);
 }