Exemplo n.º 1
0
        /// <summary>
        /// Add token message at header to using NHibernate cache
        /// </summary>
        /// <param name="request"></param>
        /// <param name="channel"></param>
        /// <returns></returns>
        public object BeforeSendRequest(ref Message request, IClientChannel channel)
        {
            // add trace log for debug and performance tuning
            if (null != (request.Headers).MessageId && (request.Headers).MessageId.IsGuid)
            {
                ServiceStopWatch = Stopwatch.StartNew();
                Guid messageId;
                (request.Headers).MessageId.TryGetGuid(out messageId);

                CurrentTraceInfo = new TraceInfo()
                {
                    SessionId = (HttpContext.Current != null && HttpContext.Current.Session != null) ? HttpContext.Current.Session.SessionID : "",
                    TraceType = TraceType.WcfActionClientCall,
                    TraceName = request.Headers.Action,
                    TraceUniqueId = messageId.ToString()
                };

                TraceLogger.Instance.TraceServiceStart(CurrentTraceInfo, true);

                // Add a message header with sessionid
                MessageHeader<string> messageHeader = new MessageHeader<string>(CurrentTraceInfo.SessionId);
                MessageHeader untyped = messageHeader.GetUntypedHeader("sessionid", "ns");
                request.Headers.Add(untyped);
            }
            return null;
        }
Exemplo n.º 2
0
        public void JsonSpan()
        {
            // Arrange
            var traceInfo = new TraceInfo("05", "123", true, false, new Uri("http://localhost"), IPAddress.Loopback);
            var span      = new Span("15", traceInfo);

            var annotation       = Substitute.For <Annotation>();
            var binaryAnnotation = Substitute.For <BinaryAnnotation>();

            span.Annotations.Add(annotation);
            span.Annotations.Add(annotation);
            span.Annotations.Add(binaryAnnotation);
            span.Annotations.Add(binaryAnnotation);

            // Act
            var result = new JsonSpan(span);

            // Assert
            Assert.AreEqual(span.TraceId, result.TraceId);
            Assert.AreEqual(span.Name, result.Name);
            Assert.AreEqual(span.Id, result.Id);
            Assert.AreEqual(span.ParentId, result.ParentId);
            Assert.AreEqual(2, result.Annotations.Count());
            Assert.AreEqual(2, result.BinaryAnnotations.Count());
        }
Exemplo n.º 3
0
        OverlayData.Driver[] LatestRunningOrder(DataSample data, TimeSpan relativeTime)
        {
            var drivers = data.Telemetry.Cars.Where(c => !c.Details.IsPaceCar).Select(c => new OverlayData.Driver
            {
                UserName     = c.Details.UserName,
                CarNumber    = c.Details.CarNumberDisplay,
                Position     = c.Position,
                CarIdx       = c.CarIdx,
                PitStopCount = c.PitStopCount
            })
                          .OrderBy(c => c.Position)
                          .ToArray();

            if (lastDrivers != null)
            {
                foreach (var d in drivers.OrderBy(d => d.Position))
                {
                    var lastPosition = lastDrivers.FirstOrDefault(lp => lp.CarIdx == d.CarIdx);
                    if (lastPosition != null && lastPosition.Position != d.Position)
                    {
                        var position = d.Position != null?d.Position.Value.ToString() : "";

                        var indicator = d.Position != null?d.Position.Value.Ordinal() : "";

                        var msg = "{0} in {1}{2}".F(d.UserName, position, indicator);
                        TraceInfo.WriteLine("{0} {1}", data.Telemetry.SessionTimeSpan, msg);
                        commentaryMessages.Add(msg, relativeTime.TotalSeconds);
                    }
                }
            }

            lastDrivers = drivers;

            return(drivers);
        }
 void PrintStackTrace(TraceInfo traceInfo)
 {
     if (traceInfo != null && traceInfo.stackTrace != null)
     {
         Console.WriteLine(traceInfo.stackTrace);
     }
 }
Exemplo n.º 5
0
        public void Process(DataSample data)
        {
            if (data.Telemetry.CamCar.TrackSurface == TrackLocation.InPitStall ||
                data.Telemetry.CamCar.TrackSurface == TrackLocation.NotInWorld ||
                data.Telemetry.CamCar.TrackSurface == TrackLocation.AproachingPits)
            {
                TraceInfo.WriteLine("{0} Ignoring incident in the pits on lap {1}", data.Telemetry.SessionTimeSpan, data.Telemetry.RaceLaps);
                return;
            }

            var i = new Incident
            {
                LapNumber        = data.Telemetry.RaceLaps,
                Car              = data.Telemetry.CamCar.Details,
                StartSessionTime = data.Telemetry.SessionTimeSpan - 1.Seconds(),
                EndSessionTime   = data.Telemetry.SessionTimeSpan + 8.Seconds()
            };

            var lastIncidentForCar = incidents.LastOrDefault(li => li.Car.CarIdx == i.Car.CarIdx);

            if (lastIncidentForCar == null || lastIncidentForCar.EndSessionTime + 15.Seconds() < i.StartSessionTime)
            {
                AddIncident(i);
            }

            else
            {
                ExtendIncident(lastIncidentForCar, i.EndSessionTime);
            }
        }
Exemplo n.º 6
0
 protected virtual void OnTraceState(TraceInfo traceInfo, ExecuteState state, ExecuteResult result = null)
 {
     _ = traceInfo ?? throw new ArgumentNullException(nameof(traceInfo));
     traceInfo.State  = state;
     traceInfo.Result = result;
     traceService.TraceState(traceInfo);
 }
        public void Logging_StartTrace_TraceRecorded(string msg, params string[] msgs)
        {
            var trace = new TraceInfo(msg);

            for (var x = 0; x < msgs.Length; x++)
            {
                trace.Add($"stuff{x}", msgs[x]);
            }


            using (var ms = new MemoryStream())
            {
                var w      = new StreamWriter(ms);
                var logger = new ConsoleInstrumentationClient(w);

                logger.StartTrace(trace);


                w.Flush();
                ms.Seek(0, SeekOrigin.Begin);

                var result = new StreamReader(ms).ReadToEnd();

                result = result.Trim(Environment.NewLine.ToCharArray());

                result.Should().StartWith(msg);
                foreach (var m in msgs)
                {
                    result.Should().Contain(m);
                }
            }
        }
Exemplo n.º 8
0
        public void _AnalyseRace(Action onComplete)
        {
            var hwnd = Win32.Messages.FindWindow(null, "iRacing.com Simulator");

            Win32.Messages.ShowWindow(hwnd, Win32.Messages.SW_SHOWNORMAL);
            Win32.Messages.SetForegroundWindow(hwnd);
            Thread.Sleep(Settings.Default.PeriodWaitForIRacingSwitch);

            var data = iRacing.GetDataFeed()
                       .WithCorrectedPercentages()
                       .AtSpeed(16)
                       .RaceOnly()
                       .First(d => d.Telemetry.SessionState == SessionState.Racing);

            raceStartFrameNumber = data.Telemetry.ReplayFrameNum - (60 * 20);

            if (raceStartFrameNumber < 0)
            {
                TraceInfo.WriteLine("Unable to start capturing at 20 seconds prior to race start.  Starting at start of replay file.");
                raceStartFrameNumber = 0;
            }

            TraceDebug.WriteLine(data.Telemetry.ToString());

            AnalyseIncidents();

            onComplete();
        }
        internal static void MoveToFile(string filename)
        {
            if (logFile == null)
            {
                throw new Exception("Attempt to rename non-existing log file to {0}".F(filename));
            }

            TraceInfo.WriteLine("Renaming logging to file {0}", filename);

            WaitToQueueEmpty(logFile);

            Trace.Listeners.Remove(logFile);
            logFile.Dispose();

            var retryCount = 2;

            while (retryCount > 0)
            {
                try {
                    File.Move(logFile.FileName, filename);
                    retryCount = 0;
                } catch (IOException) {
                    retryCount--;
                    Thread.Sleep(1000);
                }
            }

            logFile = new LogListener(filename);
            Trace.Listeners.Add(logFile);
        }
Exemplo n.º 10
0
        public Task <ExecuteResult> Execute(IExecuteContext executeContext)
        {
            _ = executeContext ?? throw new ArgumentNullException(nameof(executeContext));
            var traceInfo = new TraceInfo()
            {
                ExecuteContext = executeContext
            };

            this.OnTraceState(traceInfo, ExecuteState.Ready);

            return(Task.Run(() =>
            {
                executeContext.Token.ThrowIfCancellationRequested();
                this.OnTraceState(traceInfo, ExecuteState.Running);
                var result = this.OnExecute(executeContext, traceInfo);
                if (result.IsSuccess)
                {
                    this.OnTraceState(traceInfo, ExecuteState.Success, result);
                }
                else
                {
                    this.OnTraceState(traceInfo, ExecuteState.Failure, result);
                }
                return result;
            }, executeContext.Token));
        }
Exemplo n.º 11
0
        public void MoveToFrame(int frameNumber, ReplayPositionMode mode = ReplayPositionMode.Begin)
        {
            DataSample data = null;

            Wait();

            TraceInfo.WriteLine("Moving to frame {0} with mode {1}", frameNumber, mode);

            SendMessage(BroadcastMessage.ReplaySetPlayPosition, (short)mode, frameNumber);

            Wait();

            if (mode == ReplayPositionMode.Begin)
            {
                data = WaitAndVerify(d => Math.Abs(d.Telemetry.ReplayFrameNum - frameNumber) > 32, 6000);
            }

            Wait();

            if (data != null)
            {
                frameNumber = data.Telemetry.ReplayFrameNum;
            }

            TraceInfo.WriteLine("Moved to frame {0}", frameNumber);
        }
Exemplo n.º 12
0
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            if (filterContext.HttpContext.Response.IsRequestBeingRedirected)
            {
                return;
            }
            if (CheckNeedTrace(filterContext.HttpContext) == false)
            {
                return;
            }
            TraceInfo info = filterContext.RequestContext.HttpContext.Items["ibb360_RequestTrace_6742"] as TraceInfo;

            if (info != null)
            {
                info.Stop(filterContext.Exception != null && (filterContext.Exception is BizException) == false);
                string urlReferrer = filterContext.RequestContext.HttpContext.Request.UrlReferrer != null?filterContext.RequestContext.HttpContext.Request.UrlReferrer.ToString() : null;

                string domainReferrer = filterContext.RequestContext.HttpContext.Request.UrlReferrer != null ? filterContext.RequestContext.HttpContext.Request.UrlReferrer.Host : null;
                string url            = filterContext.RequestContext.HttpContext.Request.RawUrl;
                string clientType     = DetectRequestClientType(filterContext.HttpContext);
                if (string.IsNullOrWhiteSpace(clientType))
                {
                    clientType = "OT";
                }
                RequestTraceMessage msg = info.ToMessage(filterContext.HttpContext, url, urlReferrer, domainReferrer, clientType);
                SetExtentionData(filterContext.HttpContext, msg.ExtentionData);
                TaskPool.Instance.Enqueue(msg);
            }
        }
Exemplo n.º 13
0
        private void CaptureNewFileNames(object sender, ElapsedEventArgs e)
        {
            try
            {
                var guessedFileName = Directory.GetFiles(workingFolder, "*.avi")
                                      .Concat(Directory.GetFiles(workingFolder, "*.mp4"))
                                      .Select(fn => new { FileName = fn, CreationTime = File.GetCreationTime(fn) })
                                      .Where(f => f.CreationTime >= started)
                                      .OrderByDescending(f => f.CreationTime)
                                      .FirstOrDefault();

                if (guessedFileName != null && !captureFileNames.Any(c => c.FileName == guessedFileName.FileName))
                {
                    TraceInfo.WriteLine("Found video file {0}", guessedFileName.FileName);
                    captureFileNames.Add(new CapturedVideoFile {
                        FileName = guessedFileName.FileName
                    });
                }
            }
            catch (Exception ee)
            {
                TraceError.WriteLine(ee.Message);
                TraceError.WriteLine(ee.StackTrace);
            }
            finally
            {
                if (timer != null)
                {
                    timer.Start();
                }
            }
        }
Exemplo n.º 14
0
        public async Task Context()
        {
            var traceInfo = new TraceInfo
            {
                Start   = new DateTime(2020, 3, 12),
                CallApp = "UnitTest"
            };
            var msg = await MessagePoster.Post(new InlineMessage
            {
                Service   = "UnitService",
                Method    = "v1/context",
                TraceInfo = traceInfo,
                Context   = new System.Collections.Generic.Dictionary <string, string>
                {
                    { "User", new UserInfo
                      {
                          UserId         = "20200312",
                          NickName       = "agebull",
                          OrganizationId = "20200312"
                      }.ToJson() }
                }
            });

            msg.OfflineResult();
            Console.WriteLine(msg.Result);
            var ctx = msg.ResultData;

            Assert.IsTrue(ctx != null, msg.Result);
            Assert.IsTrue(msg.TraceInfo.CallApp == traceInfo.CallApp, msg.TraceInfo.CallApp);
            Assert.IsTrue(msg.TraceInfo.Start == traceInfo.Start, msg.TraceInfo.Start?.ToString());
            //Assert.IsTrue(ctx.User.OrganizationId == ZeroTeamJwtClaim.UnknownOrganizationId, ctx.User.OrganizationId.ToString());
        }
Exemplo n.º 15
0
        void UpdateBattleCamera(DataSample data)
        {
            if (data.Telemetry.SessionTimeSpan <= cameraChangeTime)
            {
                return;
            }

            cameraChangeTime = data.Telemetry.SessionTimeSpan + this.battleCameraChangePeriod;

            var otherCar = ChangeCarForCamera(data, battleFollower);

            var cameraSet = otherCar == null ? new [] { CameraAngle.LookingInfrontOfCar, CameraAngle.LookingAtCar } : new [] { CameraAngle.LookingInfrontOfCar, CameraAngle.LookingBehindCar, CameraAngle.LookingAtCar };

            camera         = cameraControl.FindACamera(cameraSet, adjustedCamera, 2);
            adjustedCamera = null;

            if (camera.CameraAngle == CameraAngle.LookingBehindCar)
            {
                TraceInfo.WriteLine("{0} Changing to forward car, with reverse camera", data.Telemetry.SessionTimeSpan);
                car = otherCar;
            }
            else
            {
                car = battleFollower;
            }
            TraceInfo.WriteLine("{0} Changing camera to driver: {1}; camera: {2}", data.Telemetry.SessionTimeSpan, car.UserName, camera.CameraName);
            cameraControl.CameraOnDriver(car.CarNumberRaw, camera.CameraNumber);
        }
Exemplo n.º 16
0
        static void Main()
        {
            if (!Settings.Default.NewSettings)
            {
                CopyFromOldSettings(Settings.Default);
            }
            else
            {
                MakePortable(Settings.Default);
            }


            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.ThreadException += Application_ThreadException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            if (AwsKeys.HaveKeys)
            {
                using (var awsLogListener = new AwsLogListener())
                {
                    Trace.Listeners.Add(awsLogListener);
                    TraceInfo.WriteLine("Application Start");
                    Application.Run(new Main());
                    TraceInfo.WriteLine("Application End");
                }
            }
            else
            {
                Application.Run(new Main());
            }
        }
Exemplo n.º 17
0
        private static IOrderedEnumerable <OverlayData.RaceEvent> GetInterestingRaceEvents(IEnumerable <OverlayData.RaceEvent> raceEvents)
        {
            TraceInfo.WriteLine("Highlight Edits: Total Duration Target: {0}", HighlightVideoDuration);

            double totalTime, incidentsRatio, restartsRatio, battlesRatio;
            var    firstAndLastLapRaceEvents = GetAllFirstAndLastLapEvents(raceEvents, out totalTime);

            var incidentRaceEvents = GetAllRaceEvents(raceEvents, InterestState.Incident, 1.8, 0, out incidentsRatio);
            var restartRaceEvents  = GetAllRaceEvents(raceEvents, InterestState.Restart, 1.0, 0, out restartsRatio);
            var battleRaceEvents   = GetAllRaceEvents(raceEvents, InterestState.Battle, 1.4, 15, out battlesRatio);

            battleRaceEvents = NormaliseBattleEvents(battleRaceEvents, Settings.Default.BattleStickyPeriod.TotalSeconds);

            var totalRatio = incidentsRatio + restartsRatio + battlesRatio;

            var incidentPercentage = incidentsRatio / totalRatio;
            var restartPercentage  = restartsRatio / totalRatio;
            var battlePercentage   = battlesRatio / totalRatio;

            var incidentsEdited = ExtractEditedEvents(totalTime, incidentPercentage, incidentRaceEvents, InterestState.Incident, byPosition: true);
            var restartsEdited  = ExtractEditedEvents(totalTime, restartPercentage, restartRaceEvents, InterestState.Restart);
            var battlessEdited  = ExtractEditedEvents(totalTime, battlePercentage, battleRaceEvents, InterestState.Battle);

            var editedEvents = firstAndLastLapRaceEvents.Concat(incidentsEdited).Concat(restartsEdited).Concat(battlessEdited).OrderBy(re => re.StartTime);

            TraceInfo.WriteLine("Highlight Edits: Expected duration of highlight video: {0}", editedEvents.Sum(re => re.Duration).Seconds());

            return(editedEvents);
        }
Exemplo n.º 18
0
        void TranscodeVideoTest(string filename)
        {
            using (MFSystem.Start())
            {
                var details = VideoAttributes.TestFor(filename);

                TraceInfo.WriteLine("Frame Rate: {0}, Frame Size: {1}x{2}, Video: {3} @ {4}Mbs, Audio: {5}, {6}Khz @ {7}Kbs, ".F
                                        (details.FrameRate,
                                        details.FrameSize.Width,
                                        details.FrameSize.Height,
                                        details.VideoEncoding,
                                        details.BitRate == 0 ? "-- " : details.BitRate.ToString(),
                                        details.AudioEncoding,
                                        details.AudioSamplesPerSecond / 1000,
                                        details.AudioAverageBytesPerSecond / 1000));

                TraceInfo.WriteLine("Begining video re-encoding.");

                details.Transcoder.ProcessVideo((readers, saveToSink) =>
                {
                    readers.First().SourceReader.Samples(AVOperations.FadeIn(saveToSink));
                });

                TraceInfo.WriteLine("Video converted.  Review the video file {0} to confirm it looks OK.", details.Transcoder.DestinationFile);
                TraceInfo.WriteLine("Success!");
            }
        }
Exemplo n.º 19
0
        private void LogTrace(string prefix, TraceInfo info)
        {
            var sb = new StringBuilder();

            if (!string.IsNullOrWhiteSpace(prefix))
            {
                sb.Append($"{prefix}: ");
            }

            sb.AppendLine(info.Message);

            if (info is HttpTraceInfo httpInfo)
            {
                if (httpInfo.Url != null)
                {
                    sb.AppendLine($"Url: {httpInfo.Url}");
                }

                if (httpInfo.StatusCode.HasValue)
                {
                    sb.AppendLine($"Status: {httpInfo.StatusCode.Value}");
                }
            }

            foreach (var keyValuePair in info.Values)
            {
                sb.AppendLine($"{keyValuePair.Key}: {keyValuePair.Value}");
            }

            _logger.LogDebug(sb.ToString());
        }
Exemplo n.º 20
0
        public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
        {
            // add trace log for debug and performance tuning
            if ((request.Headers).MessageId.IsGuid)
            {
                ServiceStopWatch = Stopwatch.StartNew();
                Guid messageId;
                (request.Headers).MessageId.TryGetGuid(out messageId);

                // retrieve sessionid in message header, then remove it
                string sessionId = string.Empty;
                if (OperationContext.Current.IncomingMessageHeaders.FindHeader("sessionid", "ns") >= 0)
                {
                    sessionId = OperationContext.Current.IncomingMessageHeaders.GetHeader<string>("sessionid", "ns");
                    OperationContext.Current.IncomingMessageHeaders.RemoveAt(OperationContext.Current.IncomingMessageHeaders.FindHeader("sessionid", "ns"));
                }

                CurrentTraceInfo = new TraceInfo()
                {
                    SessionId = sessionId,
                    TraceType = TraceType.WcfActionServerCall,
                    TraceName = request.Headers.Action,
                    TraceUniqueId = messageId.ToString()
                };
                TraceLogger.Instance.TraceServiceStart(CurrentTraceInfo, false);
            }

            return null;
        }
Exemplo n.º 21
0
        public void Process(DataSample data, TimeSpan relativeTime)
        {
            var camDriver = CreateCamDriver(data, relativeTime);

            if (camDriver != null)
            {
                if (lastCamDriver == null ||
                    lastCamDriver.UserName != camDriver.CurrentDriver.UserName ||
                    lastCamDriver.Position != camDriver.CurrentDriver.Position)
                {
                    var position = camDriver.CurrentDriver.Position != null?camDriver.CurrentDriver.Position.Value.ToString() : "";

                    var indicator = camDriver.CurrentDriver.Position != null?camDriver.CurrentDriver.Position.Value.Ordinal() : "";

                    TraceInfo.WriteLine("{0} Camera on {1} {2} in position {3}{4}",
                                        data.Telemetry.SessionTimeSpan,
                                        camDriver.CurrentDriver.UserName,
                                        camDriver.CurrentDriver.CarNumber,
                                        position, indicator);

                    lastCamDriver = camDriver.CurrentDriver;
                    //add camDriver to list only if either drivername or position has changed
                    overlayData.CamDrivers.Add(camDriver);
                }
            }
        }
Exemplo n.º 22
0
 private void LogTraceInfo(TraceInfo info)
 {
     if (info.TraceInfoStep == TraceInfoStep.BeforeExecute)
     {
         Debug.WriteLine(info.SqlText);
         Output?.WriteLine(info.SqlText);
     }
 }
Exemplo n.º 23
0
 private void dgTrace_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     m_TraceInfo = dgTrace.SelectedItem as TraceInfo;
     if (m_TraceInfo != null)
     {
         txtName.Text = m_TraceInfo.Name;
     }
 }
Exemplo n.º 24
0
        public override void OnSuccess(MethodExecutionArgs args)
        {
            base.OnSuccess(args);
            _stopwatch.Stop();
            TraceInfo traceinfo = new TraceInfo(_methodFullName, args.Arguments.ToArray());

            Logger.Debug(string.Format("{0} invoke ends in {1}ms", traceinfo.Parameters[0], _stopwatch.Elapsed.Milliseconds));
            _traceManager.TraceFinish(traceinfo, args.ReturnValue, _stopwatch.Elapsed);
        }
Exemplo n.º 25
0
        public override void OnEntry(MethodExecutionArgs args)
        {
            _stopwatch.Restart();
            TraceInfo traceInfo = new TraceInfo(_methodFullName, args.Arguments.ToArray());

            _traceManager.TraceStart(traceInfo);
            Logger.Debug(string.Format("{0} invoked.", traceInfo.Parameters[0]));
            base.OnEntry(args);
        }
Exemplo n.º 26
0
        public override void OnException(MethodExecutionArgs args)
        {
            _stopwatch.Stop();
            TraceInfo traceinfo = new TraceInfo(_methodFullName, args.Arguments.ToArray());

            _traceManager.TraceException(traceinfo, args.Exception, _stopwatch.Elapsed);
            Logger.Error(string.Format("{0} invoke exception {1} in {2}ms", traceinfo.Parameters[0], args.Exception, _stopwatch.Elapsed.Milliseconds));
            base.OnException(args);
        }
Exemplo n.º 27
0
        public static void CreateNewTrace()
        {
            lock (_synclock)
            {
                CurrentTrace = new TraceInfo();

                _traces.Add(CurrentTrace);
            }
        }
Exemplo n.º 28
0
        public static void CreateNewTrace()
        {
            lock (_synclock)
            {
                CurrentTrace = new TraceInfo();

                _traces.Add(CurrentTrace);
            }
        }
Exemplo n.º 29
0
 void AddIncident(Incident incident)
 {
     incidents.Add(incident);
     TraceInfo.WriteLine("Noting incident for driver {0} starting on lap {1} from {2}",
                         incident.Car.UserName,
                         incident.LapNumber,
                         incident.StartSessionTime,
                         incident.EndSessionTime);
 }
Exemplo n.º 30
0
        private void button1_Click(object sender, EventArgs e)
        {
            Settings.Default.SendUsageData = this.sendUsageData.Checked;
            Settings.Default.Save();


            TraceInfo.WriteLine(Settings.Default.SendUsageData ? "User has accepted usage data submission" : "user has declined usage data submission");
            this.Close();
        }
Exemplo n.º 31
0
        static List <OverlayData.RaceEvent> ExtractEditedEvents(
            double totalTime,
            double percentage,
            List <OverlayData.RaceEvent> raceEvents,
            InterestState interest,
            bool byPosition = false)
        {
            TraceInfo.WriteLine("Extracting {0} from a total set of {1}", interest, raceEvents.Count);

            if (raceEvents.Count <= 2)
            {
                return(raceEvents);
            }

            var duration       = 0d;
            var targetDuration = totalTime * percentage;

            var orderedRaceEvents = raceEvents.OrderBy(r => r.StartTime).ToList();
            var firstEvent        = orderedRaceEvents.First();
            var lastEvent         = orderedRaceEvents.Last();

            var searchRaceEvents = new List <_RaceEvent>();

            searchRaceEvents.Add(new _RaceEvent {
                RaceEvent = firstEvent, Level = 0
            });
            searchRaceEvents.Add(new _RaceEvent {
                RaceEvent = lastEvent, Level = 0
            });

            var result = new List <OverlayData.RaceEvent>();

            if (byPosition)
            {
                foreach (var p in raceEvents.OrderBy(r => r.Position).Select(r => r.Position).Distinct())
                {
                    TraceInfo.WriteLine("Scanning for {0}s for position {1}", interest, p);
                    duration = ExtractUptoTargetDuration(raceEvents.Where(r => r.Position == p).ToList(), duration, targetDuration, firstEvent, lastEvent, searchRaceEvents, result);
                }
            }
            else
            {
                TraceInfo.WriteLine("Scanning for {0}s", interest);
                duration = ExtractUptoTargetDuration(raceEvents, duration, targetDuration, firstEvent, lastEvent, searchRaceEvents, result);
            }

            foreach (var r in result.OrderBy(x => x.StartTime))
            {
                TraceInfo.WriteLine("Highlight edit {0} @ position {4}: {1} - {2}, duration: {3}", r.Interest, r.StartTime.Seconds(), r.EndTime.Seconds(), r.Duration.Seconds(), r.Position);
            }

            TraceInfo.WriteLine("Highlight Edits: {0}.  Target Duration: {1}, Percentage: {2:00}%, Resolved Duration: {3}",
                                interest.ToString(), targetDuration.Seconds(), (int)(percentage * 100), duration.Seconds());

            return(result);
        }
Exemplo n.º 32
0
        protected AbstractBackgroundTask(string taskName)
        {
            var name = taskName ?? GetType().Name;

            m_workerThread              = new Thread(new ThreadStart(WorkerThreadWrapper));
            m_workerThread.Name         = name + "Thread";
            m_workerThread.IsBackground = true;
            WaitHandle = new ManualResetEvent(false);
            TraceInfo  = new TraceInfo(new TraceSource(name));
        }
Exemplo n.º 33
0
        void SwitchToIncident(DataSample data)
        {
            pitBoxStartTime = 0;

            var incidentCar = nextIncident.Current.Car;

            TraceInfo.WriteLine("{0} Showing incident with {1} starting from {2}", data.Telemetry.SessionTimeSpan, incidentCar.UserName, nextIncident.Current.StartSessionTime);

            cameraControl.CameraOnDriver(incidentCar.CarNumberRaw, cameraControl.IncidentCameraNumber);
        }
 protected override void WriteTrace(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message, Guid? relatedActivityId, object[] data)
 {
     // Note: References stored, so info could be mutable,
     // however (unlike InMemoryTraceListener) this class is only for testing,
     // so should not be an issue.
     var traceInfo = new TraceInfo()
     {
         EventCache = eventCache,
         Source = source,
         EventType = eventType,
         Id = id,
         Message = message,
         RelatedActivityId = relatedActivityId,
         Data = data
     };
     MethodCallInformation.Add(traceInfo);
 }
Exemplo n.º 35
0
 public static string GetStackFrameInfo(StackFrame frame, TraceInfo traceInfo)
 {
     if (frame != null)
     {
         switch (traceInfo)
         {
             case TraceInfo.LineNumber:
                 return frame.GetFileLineNumber().ToString();
             case TraceInfo.FileName:
                 return frame.GetFileName();
             case TraceInfo.Method:
                 return frame.GetMethod().Name;
             case TraceInfo.ColumnNumber:
                 return frame.GetFileColumnNumber().ToString();
             case TraceInfo.Full:
                 return new StackTrace(frame).ToString();
         }
     }
     return "Error: StackFrame==null";
 }
Exemplo n.º 36
0
        public void TraceFunction(string name, IEnumerable<FunctionCallParameter> parameters, Action<TranslationCPU, uint, string, IEnumerable<object>> callback,
            FunctionCallParameter? returnParameter = null, Action<TranslationCPU, uint, string, IEnumerable<object>> returnCallback = null)
        {
            if(registeredCallbacks.ContainsKey(name))
            {
                throw new RecoverableException("Function {0} is already being traced.".FormatWith(name));
            }
            cpu.Log(LogLevel.Info, "Going to trace function '{0}'.", name);

            Symbol symbol;
            try
            {
                var address = cpu.Bus.GetSymbolAddress(name);
                symbol = cpu.Bus.Lookup.GetSymbolByAddress(address);
            }
            catch(RecoverableException)
            {
                cpu.Log(LogLevel.Warning, "Symbol {0} not found, exiting.", name);
                throw;
            }

            var traceInfo = new TraceInfo();
            traceInfo.Begin = symbol.Start;
            traceInfo.BeginCallback = (pc) => EvaluateTraceCallback(pc, name, parameters, callback);

            cpu.AddHook(traceInfo.Begin, traceInfo.BeginCallback);
            if(returnCallback != null && returnParameter.HasValue)
            {
                traceInfo.HasEnd = true;
                traceInfo.End = (uint)(symbol.End - (symbol.IsThumbSymbol ? 2 : 4));
                traceInfo.EndCallback = (pc) => EvaluateTraceCallback(pc, name, new[] { returnParameter.Value }, returnCallback);
                cpu.Log(LogLevel.Debug, "Address is @ 0x{0:X}, end is @ 0x{1:X}.", traceInfo.Begin, traceInfo.End);
                cpu.AddHook(traceInfo.End, traceInfo.EndCallback);
            }
            else
            {
                cpu.Log(LogLevel.Debug, "Address is @ 0x{0:X}, end is not traced.", traceInfo.Begin);
            }

            registeredCallbacks[name] = traceInfo;
        }
Exemplo n.º 37
0
        override public void update(float dt)
        {
            if (pursueCountDown >= 0)
            {
                pursueCountDown -= dt;

                attackVector = new Vector2(owner.hitBox.Center.X - target.hitBox.Center.X, owner.hitBox.Center.Y - target.hitBox.Center.Y);
                attackVector.Normalize();
                attackVector *= owner.reach;
                attackVector.X += target.hitBox.Center.X;
                attackVector.Y += target.hitBox.Center.Y;
                double distance = Math.Sqrt(Math.Pow(attackVector.X - owner.hitBox.Center.X, 2) + Math.Pow(attackVector.Y - owner.hitBox.Center.Y, 2));
                if (distance > owner.reach)
                {
                    attackPos = new Point((int)attackVector.X, (int)attackVector.Y);
                    movement = new Vector2((float)(attackPos.X - owner.hitBox.Center.X), (float)(attackPos.Y - owner.hitBox.Center.Y));
                    movement.Normalize();
                    movement *= owner.maxSpeed;
                    owner.velocity.X = movement.X;
                    owner.velocity.Y = movement.Y;
                    owner.isWalking = true;
                    owner.setGaze(attackPos);
                }
                else
                {
                    if (attackCoolDown <= 0)
                    {
                        owner.setGaze(target.hitBox.Center);
                        owner.Light_Attack();
                        attackCoolDown = (float)(.5f);
                    }
                    else
                    {
                        attackCoolDown -= dt;
                    }
                }
                
            }
            else
            {
                elapsed = 0;
                traceInfo = owner.world.traceWorld(owner.hitBox.Center, target.hitBox.Center);
                if (traceInfo.hitWorld)
                {
                    Pursue pursue = new Pursue(ownerList, owner, target);
                    ownerList.pushFront(pursue);
                    //onEnd();
                }
                else
                    pursueCountDown = 2.5f;
            }
        }
Exemplo n.º 38
0
 /// <summary>
 /// This function gets the tracing information from the application configuration file
 /// </summary>
 /// <returns>TraceInfo read from the application configuration file</returns>
 #endregion
 private static TraceInfo GetTraceInfoFromAppConfig()
 {
     TraceInfo traceInfo = new TraceInfo();
     traceInfo.IsTracingEnabled = (bool)AppConfigHelper.GetValueFromConfig
         (LoggingConstants.KEY_TRACING_ENABLED, typeof(bool), traceInfo.IsTracingEnabled);
     traceInfo.FileSizeInMB =(float)AppConfigHelper.GetValueFromConfig
         (LoggingConstants.KEY_TRACE_FILE_SIZE, typeof(float), traceInfo.FileSizeInMB);
     return traceInfo;
 }
Exemplo n.º 39
0
 /// <summary>
 /// Static Constructor
 /// </summary>
 #endregion
 static OMETrace()
 {
     m_TraceInfo = GetTraceInfoFromAppConfig();
 }