예제 #1
0
        public BaseLogData(LogDataType type, params object[] parameters)
        {
            Id      = Guid.NewGuid().ToString();
            Time    = DateTime.Now;
            LogType = type;

            //Setting parameters protects us from improper implementation of BaseLogData
            if (parameters?.Length <= 0)
            {
                parameters = new object[2] {
                    new object(), new object()
                };
            }


            try
            {
                switch (type)
                {
                case LogDataType.Exception:
                    CreateExceptionLogData(parameters[0] as Exception, parameters[1] as string);
                    break;

                case LogDataType.Trace:
                    Enum.TryParse(parameters[0].ToString(), out TraceType traceType);
                    CreateTraceLogData(traceType, parameters[1] as string);
                    break;

                case LogDataType.Error:
                    Enum.TryParse(parameters[0].ToString(), out ErrorLevel errorLevel);
                    CreateErrorLogData(errorLevel, parameters[1] as string);
                    break;

                case LogDataType.Warn:
                    Enum.TryParse(parameters[0].ToString(), out WarningLevel warnLevel);
                    CreateWarnLogData(warnLevel, parameters[1] as string);
                    break;

                case LogDataType.Debug:
                    CreateDebugLogData(parameters[0] as string);
                    break;

                case LogDataType.UserInput:
                    Enum.TryParse(parameters[0].ToString(), out UserInputType userInputType);
                    CreateUserInputLogData(userInputType, parameters[1] as string);
                    break;

                default:
                    Message         = parameters[0] as string;
                    ShortLogMessage = parameters[0] as string;
                    LongLogMessage  = parameters[0] as string;
                    break;
                }
            }
            catch
            {
                throw new NotImplementedException("A class that inherits BaseLogData should have a constructor as follows: MyLogData(LogDataType type, params object[] parameters):base(type, parameters)");
            }
        }
예제 #2
0
        public LogData(LogDataType type, params object[] parameters) : base(type, parameters)
        {
            Debug.WriteLine(Message);

#if DEBUG
            Console.WriteLine(Message);
#endif
        }
예제 #3
0
        public bool AddLogData(UInt32 logId, LogDataType logType, UInt32 laneId, string title, LogDetail logDetail)
        {
            // ログを追加
            LogData data = new LogData(GetTime(), logId, laneId, logType, title, logDetail);

            AddLog(data);

            return(true);
        }
    private void Log(LogDataType ldt, string data)
    {
        LogEntry le = new LogEntry();

        le.ldt       = ldt;
        le.timestamp = Time.time;
        le.data      = data;
        WriteOutToLog(le);
    }
예제 #5
0
        // ログID, ログ名, ログ種別, レーンID(or レーン名), ログ詳細(文字列))
        public bool AddLogData(UInt32 logId, LogDataType logType, UInt32 laneId, string title)
        {
            string text = null;

            if (title != null)
            {
                text = String.Copy(title);
            }
            return(AddLogData(logId, logType, laneId, text, null));
        }
예제 #6
0
        internal ToCItem(byte[] data)
        {
            Type = (LogDataType)data[2];

            string s = Encoding.ASCII.GetString(data, 3, data.Length - 3);

            var split = s.Split('\0');
            GroupName = split[0];
            VariableName = split[1];
        }
예제 #7
0
 /// <summary>
 /// Creates the <see cref="LogCurveInfo"/>
 /// </summary>
 /// <param name="name">The name.</param>
 /// <param name="unit">The unit.</param>
 /// <param name="type">The type.</param>
 /// <returns></returns>
 public LogCurveInfo CreateLogCurveInfo(string name, string unit, LogDataType type)
 {
     return(new LogCurveInfo()
     {
         Uid = name,
         Mnemonic = new ShortNameStruct(name),
         TypeLogData = type,
         Unit = unit
     });
 }
예제 #8
0
 /// <summary>
 /// Creates the <see cref="LogCurveInfo" />
 /// </summary>
 /// <param name="name">The name.</param>
 /// <param name="unit">The unit.</param>
 /// <param name="type">The type.</param>
 /// <param name="columnIndex">Index of the column.</param>
 /// <returns></returns>
 public LogCurveInfo CreateLogCurveInfo(string name, string unit, LogDataType type, short columnIndex)
 {
     return(new LogCurveInfo()
     {
         Uid = name,
         Mnemonic = name,
         TypeLogData = type,
         Unit = unit,
         ColumnIndex = columnIndex
     });
 }
 public ILogData GetLogData(LogDataType logType)
 {
     if (logType == LogDataType.FILE)
     {
         return(_FileLog);
     }
     else if (logType == LogDataType.IN_MEMORY)
     {
         return(_InMemoryLog);
     }
     else
     {
         return(null);
     }
 }
예제 #10
0
 public static ILogData GetLogData(LogDataType type)
 {
     if (type == LogDataType.FILE)
     {
         return(new FileLogData());
     }
     else if (type == LogDataType.IN_MEMORY)
     {
         return(new InMemoryLogData());
     }
     else
     {
         return(null);
     }
 }
예제 #11
0
        public void LogData(LogDataType ldt, TextBox txt, byte[] data)
        {
            switch (ldt)
            {
            case LogDataType.Ascii:
                txt.AppendText(Encoding.ASCII.GetString(data));
                Debug.Write(Encoding.ASCII.GetString(data));
                break;

            case LogDataType.Hex:
                txt.AppendText(BitConverter.ToString(data).Replace("-", " "));
                txt.AppendText(" ");
                Debug.Write(BitConverter.ToString(data).Replace("-", " "));
                Debug.Write(" ");
                break;
            }
        }
예제 #12
0
 public LogData(double time, UInt32 logId, UInt32 laneId, LogDataType logType, string text, LogDetail detail)
 {
     this.time    = time;
     this.logId   = logId;
     this.laneId  = laneId;
     this.logType = logType;
     if (this.text != null)
     {
         // コピーコンストラクタでコピーを作成
         // ※ログをファイルに出力するまでにコピー元が存在しているとは限らないため
         this.text = String.Copy(text);
     }
     if (detail != null)
     {
         this.detail = detail.CreateCopy();
     }
 }
예제 #13
0
        public LogQueryResult(byte[] response)
        {
            if (response[1] == 1)
            {
                if (response[2] == 1)
                {
                    mStatus = LogDataType.LastPacket;
                }
                else
                {
                    mStatus = LogDataType.Bussy;
                }
                TotalEntries = 0;
                CurrentEntry = 0;
            }
            else
            {
                mStatus      = LogDataType.NewPacket;
                TotalEntries = response[3] + (response[4] << 8);
                CurrentEntry = response[5] + (response[6] << 8);

                mEntry = new LogDataEntry(response);
            }
        }
 public OrdinaryPropertyMetaData(LogDataType dataType)
 {
     this.dataType = dataType;
 }
예제 #15
0
        /**
         * バイナリログデータを読み込む
         */
        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);
        }
예제 #16
0
 internal LogicTransactionObjectParam(LogDataType dataType)
 {
     this.DataType = dataType;
 }
예제 #17
0
 public LogData(DateTime logTime, LogDataType logType, string logText)
 {
     LogTime = logTime;
     LogType = logType;
     LogText = logText;
 }