/** * バイナリログのログID情報を読み込む * */ private LogIDs ReadLogIDsBin(UFileStream fs) { LogIDs _logIds = new LogIDs(); // 件数取得 int size = fs.GetInt32(); for (int i = 0; i < size; i++) { // 1件分のログを取得 LogID logId = new LogID(); // ID logId.ID = fs.GetUInt32(); // 名前 logId.Name = fs.GetSizeString(); // 色 logId.Color = fs.GetUInt32(); // アイコン画像名 // 画像はアイコン画像を読み込んでから設定する logId.ImageName = fs.GetSizeString(); _logIds.Add(logId); } return(_logIds); }
/** * バイナリログの画像ID情報を読み込む */ private MemIconImages ReadLogImagesBin(UFileStream fs) { MemIconImages _images = new MemIconImages(); // 件数取得 int size = fs.GetInt32(); for (int i = 0; i < size; i++) { // 1件分のログを取得 MemIconImage image = new MemIconImage(); // 名前 image.Name = fs.GetSizeString(); // 画像 int imageSize = fs.GetInt32(); if (imageSize > 0) { byte[] byteImage = fs.GetBytes(imageSize); image.SetByteImage(byteImage); } _images.Add(image); } return(_images); }
/** * バイナリログのレーン情報を読み込む * @input fs: 読み込み元のファイル */ private Lanes ReadLogLanesBin(UFileStream fs) { Lanes _lanes = new Lanes(); // 件数取得 int size = fs.GetInt32(); for (int i = 0; i < size; i++) { // 1件分のログを取得 Lane lane = new Lane(); // ID lane.ID = fs.GetUInt32(); // 名前 lane.Name = fs.GetSizeString(); // 色 lane.Color = fs.GetUInt32(); _lanes.Add(lane); } return(_lanes); }
/** * バイナリエリアデータを読み込む */ private void ReadLogAreaBin(UFileStream fs) { LogArea area = new LogArea(); // エリア名の長さ // エリア名 area.Name = fs.GetSizeString(); // 親のエリア名の長さ // 親のエリア名 area.ParentArea = areaManager.searchArea(fs.GetSizeString()); // 色 area.Color = fs.GetUInt32(); // エリアを追加 areaManager.AddArea(area); }
/** * バイナリログのヘッダ部分を取得 * @input fs : ファイルオブジェクト * */ private void ReadLogHeadBin(UFileStream fs) { // 文字コードを取得 string encStr = fs.GetSizeString(); this.encoding = UUtility.GetEncodingFromStr(encStr); fs.EncodingType = encoding; // ログID情報 logIDs = ReadLogIDsBin(fs); // レーン情報 lanes = ReadLogLanesBin(fs); // アイコン画像 images = ReadLogImagesBin(fs); // ログIDの画像を設定する foreach (LogID logId in logIDs) { logId.Image = images.GetImage(logId.ImageName); } }
/** * バイナリログデータを読み込む */ private void ReadLogDataBin(UFileStream fs) { LogData log = new LogData(); // ログID log.ID = fs.GetUInt32(); //ログタイプ bool isRangeEnd = false; LogDataType dataType = (LogDataType)fs.GetByte(); switch (dataType) { case LogDataType.Single: log.Type = MemLogType.Point; break; case LogDataType.RangeStart: log.Type = MemLogType.Range; break; case LogDataType.RangeEnd: // 同じレーンの Range タイプのログに結合する // todo isRangeEnd = true; break; case LogDataType.Value: log.Type = MemLogType.Value; break; } //表示レーンID log.LaneId = fs.GetUInt32(); //タイトルの長さ //タイトル log.Text = fs.GetSizeString(); // 範囲ログの終了タイプの場合、結合する //時間 Double time = fs.GetDouble(); if (log.Type == MemLogType.Range && isRangeEnd == true) { // 1つ前の Rangeタイプの Time2 に時間を設定 // todo return; } else { log.Time1 = time; } //ログデータ(詳細)のサイズ //ログデータ(詳細) if (log.Detail != null) { log.Detail = MemDetailData.Deserialize(fs.GetSizeString()); } // ログを追加する areaManager.AddLogData(log); }