public CallModel(BatCall call, BatNodeData data) { _data = data; Call = call; StringBuilder warnings = new StringBuilder(); if (call.MissedSamples > 0) { warnings.AppendFormat(CultureInfo.CurrentCulture, "Clipped Samples: {0}\n", call.MissedSamples); } Warnings = warnings.ToString(); DateTime startTime = _data.LogStart.AddMilliseconds(call.StartTimeMs); Date = $"{startTime:d}"; Time = $"{startTime:HH:mm:ss.ffff}"; MainFrequency = $"{call.MainFrequency} kHz"; }
public void Analyze(BatProject project, BatNode node, RawNodeData rawNodeData) { BatNodeData nodeData = node.NodeData; node.IsDirty = true; node.NodeId = rawNodeData.NodeId; node.LogStart = rawNodeData.LogStart; nodeData.Calls.Clear(); List <RawCall> rawCallsToMerge = new List <RawCall>(); BatCall currentCallData = new BatCall(); nodeData.Calls.Add(currentCallData); uint endCallTime = 0; foreach (RawCall call in rawNodeData.Calls) { if (endCallTime + 50 >= call.StartTimeMs || rawCallsToMerge.Count == 0) { rawCallsToMerge.Add(call); } else { nodeData.Calls.Add(Merge(rawCallsToMerge)); rawCallsToMerge.Clear(); } endCallTime = call.EndTimeMs; } if (rawCallsToMerge.Count > 0) { nodeData.Calls.Add(Merge(rawCallsToMerge)); } }