コード例 #1
0
ファイル: LogReader.cs プロジェクト: seafield1979/ULogView
        /**
         * バイナリログのログ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);
        }
コード例 #2
0
ファイル: LogReader.cs プロジェクト: seafield1979/ULogView
        /**
         * バイナリログの画像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);
        }
コード例 #3
0
ファイル: LogReader.cs プロジェクト: seafield1979/ULogView
        /**
         * バイナリログのレーン情報を読み込む
         * @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);
        }
コード例 #4
0
ファイル: LogReader.cs プロジェクト: seafield1979/ULogView
        /**
         * バイナリエリアデータを読み込む
         */
        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);
        }
コード例 #5
0
ファイル: LogReader.cs プロジェクト: seafield1979/ULogView
        /**
         * バイナリログのヘッダ部分を取得
         * @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);
            }
        }
コード例 #6
0
ファイル: LogReader.cs プロジェクト: seafield1979/ULogView
        /**
         * バイナリログデータを読み込む
         */
        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);
        }