private void ForwardCompReport(UrbanChallenge.Behaviors.CompletionReport.CompletionReport report) { if (forwardPackets) { ForwardObject(report, false, compReportStream); } }
public void SendCompletionReport(UrbanChallenge.Behaviors.CompletionReport.CompletionReport report) { //OperationalTrace.WriteInformation("sending completion report {0}, listener {1}", report, listener == null ? "<null>" : listener.ToString()); OperationalListener l = listener; if (l != null) { try { l.OnCompletionReport(report); OperationalTrace.WriteVerbose("completion report succeeded"); } catch (Exception ex) { OperationalTrace.WriteWarning("completion report send failed: {0}", ex); } ForwardCompReport(report); } }
public abstract void OnCompletionReport(CompletionReport report);
protected override void ForwardCompletionReport(CompletionReport report) { // we only want to forward success completion reports if (report is SuccessCompletionReport) { base.ForwardCompletionReport(report); } else { // otherwise, we have a blockage // if it's dynamically infeasible, then we want to do a reverse and try again Console.WriteLine("zone trizavel: intercepted blockage report"); if (reverseGear) { Console.WriteLine("in reverse, switch to forward"); // we're in reverse, switch back to forward reverseGear = false; lastDynInfeasibleTime = null; prevCurvature = double.NaN; } else { if (arcMode) { Console.WriteLine("arc mode blocked, switch to reverse"); reverseGear = true; lastDynInfeasibleTime = null; prevCurvature = double.NaN; InitializeReverse(); } else { Console.WriteLine("switch to arc mode"); arcMode = true; lastDynInfeasibleTime = null; arcModeTimer = Stopwatch.StartNew(); prevCurvature = double.NaN; } } } }
protected override void ForwardCompletionReport(CompletionReport report) { if (reverseGear && report is TrajectoryBlockedReport) { // just because we're assholes, replace the blockage with a success when we're in reverse and // execute a hold brake Services.BehaviorManager.Execute(new HoldBrakeBehavior(), null, true); base.ForwardCompletionReport(new SuccessCompletionReport(typeof(StayInLaneBehavior))); } else { base.ForwardCompletionReport(report); } }
public CompletionReport TestBehavior(Behavior b) { IOperationalBehavior operBehavior = null; try { testMode = true; Console.WriteLine("Testing behavior " + b.ToString() + " -- type " + b.GetType().Name); cachedCompletionReport = new SuccessCompletionReport(b.GetType()); HandleDecorators(b.Decorators); operBehavior = MapBehavior(b); operBehavior.Initialize(b); operBehavior.Process(null); Console.WriteLine("Result: " + cachedCompletionReport.ToString()); cachedCompletionReport.BehaviorId = b.UniqueId(); return cachedCompletionReport; } catch (Exception ex) { TraceSource.TraceEvent(TraceEventType.Error, 0, "error testing behavior {0}: {1}", b.GetType(), ex); throw; } finally { if (operBehavior != null && operBehavior is IDisposable) { ((IDisposable)operBehavior).Dispose(); } } }
public void ForwardCompletionReport(CompletionReport report) { if (testMode) { cachedCompletionReport = report; Console.WriteLine("forward comp report: " + report.ToString()); } else { if (report is TrajectoryBlockedReport) { ((TrajectoryBlockedReport)report).SAUDILevel = saudiLevel; } if (Services.Operational != null) { Services.Operational.SendCompletionReport(report); } } }
protected virtual void ForwardCompletionReport(CompletionReport report) { Services.BehaviorManager.ForwardCompletionReport(report); }