private static DebugState BuildDebugState(IDSFDataObject dataObject, StateType stateType, bool hasErrors, string existingErrors, DateTime?workflowStartTime, bool durationVisible, Guid parentInstanceId, string name, bool hasError) { var debugState = new DebugState { ID = dataObject.OriginalInstanceID, ParentID = parentInstanceId, WorkspaceID = dataObject.WorkspaceID, StateType = stateType, StartTime = workflowStartTime ?? DateTime.Now, EndTime = DateTime.Now, ActivityType = ActivityType.Workflow, DisplayName = dataObject.ServiceName, IsSimulation = dataObject.IsOnDemandSimulation, ServerID = dataObject.ServerID, OriginatingResourceID = dataObject.ResourceID, OriginalInstanceID = dataObject.OriginalInstanceID, Server = name, Version = string.Empty, SessionID = dataObject.DebugSessionID, EnvironmentID = dataObject.DebugEnvironmentId, ClientID = dataObject.ClientID, SourceResourceID = dataObject.SourceResourceID, Name = stateType.ToString(), HasError = hasErrors || hasError, ErrorMessage = existingErrors, IsDurationVisible = durationVisible }; return(debugState); }
public IState GetState(StateType stateType) { var stateName = stateType.ToString() + Constants.State; var type = _stateService.StateTypes.First(x => x.Name.Equals(stateName)); return((IState)Activator.CreateInstance(type)); }
// FSM Control IEnumerator GuardFSM() { // Execute the current coroutine (state) while (true) { ControlAnimation(); yield return(StartCoroutine(currentState.ToString())); } }
public static void WriteDataPoint(int playerNumber, StateType type, float value) { string filename = @"\Statestics\" + SceneManager.GetActiveScene().name + @"\player_" + playerNumber + @"\" + type.ToString() + ".csv"; using (StreamWriter w = File.AppendText(Directory.GetCurrentDirectory().ToString() + filename)) { w.WriteLine(Time.time + ";" + type.ToString() + ";" + value + "\n"); } }
/// <summary> /// Get the unique state name for the given {type, analyzer} tuple. /// Note that this name is used by the underlying persistence stream of the corresponding <see cref="DiagnosticState"/> to Read/Write diagnostic data into the stream. /// If any two distinct {type, analyzer} tuples have the same diagnostic state name, we will end up sharing the persistence stream between them, leading to duplicate/missing/incorrect diagnostic data. /// </summary> private static ValueTuple<string, VersionStamp> GetNameAndVersion(DiagnosticAnalyzer analyzer, StateType type) { Contract.ThrowIfNull(analyzer); // Get the unique ID for given diagnostic analyzer. // note that we also put version stamp so that we can detect changed analyzer. var tuple = analyzer.GetAnalyzerIdAndVersion(); return ValueTuple.Create(UserDiagnosticsPrefixTableName + "_" + type.ToString() + "_" + tuple.Item1, tuple.Item2); }
void updateState() { StateType state = getState(); if (state != current_state) { if (vocal) { Debug.Log("Setting state for (from " + current_state.ToString().ToUpper() + " to " + state.ToString().ToUpper() + ") for " + this.gameObject.name + "\n"); } } if (state == StateType.No && current_state != StateType.No) { SetInteractable(false); } if (state == StateType.NoResources && current_state == StateType.No) { SetInteractable(true); } if (state == StateType.NoResources) { if (Moon.Instance.WaveInProgress || Peripheral.Instance.WaveCountdownOngoing()) { remaining_time -= Time.deltaTime; } button.time.text = Mathf.CeilToInt(remaining_time).ToString(); button.SetButtonInteractable(remaining_time <= 0); } if (state == StateType.Yes && current_state != StateType.Yes) { SetInteractable(true); if (button.time != null) { button.time.text = Mathf.CeilToInt(remaining_time).ToString(); } button.SetButtonInteractable(remaining_time <= 0); } if (state == StateType.Yes && current_state == StateType.Yes && !button.gameObject.activeSelf) { if (vocal) { Debug.Log("Button's button is interactable " + button.my_button.interactable + "\n"); } if (vocal) { Debug.Log("Button gameObject is active " + button.gameObject.activeSelf + "\n"); } SetInteractable(true); } current_state = state; }
/// <summary> /// Get the unique state name for the given {type, provider} tuple. /// Note that this name is used by the underlying persistence stream of the corresponding <see cref="DiagnosticState"/> to Read/Write diagnostic data into the stream. /// If any two distinct {type, provider} tuples have the same diagnostic state name, we will end up sharing the persistence stream between them, leading to duplicate/missing/incorrect diagnostic data. /// </summary> private static ValueTuple <string, VersionStamp> GetUniqueDiagnosticStateNameAndVersion(StateType type, ProviderId providerId, DiagnosticAnalyzer provider) { Contract.ThrowIfNull(provider); // Get the unique ID for given diagnostic analyzer. // note that we also put version stamp so that we can detect changed analyzer. var tuple = WorkspaceAnalyzerManager.GetUniqueIdForAnalyzer(provider); return(ValueTuple.Create(UserDiagnosticsPrefixTableName + "_" + type.ToString() + "_" + tuple.Item1, tuple.Item2)); }
public void UpdateStates() { if (current != next) { current = next; Debug.Log("next states is " + current.ToString()); StartCurrentState(); Debug.Log("updateStates"); } }
/// <summary> /// Get the unique state name for the given {type, analyzer} tuple. /// Note that this name is used by the underlying persistence stream of the corresponding <see cref="DiagnosticState"/> to Read/Write diagnostic data into the stream. /// If any two distinct {type, analyzer} tuples have the same diagnostic state name, we will end up sharing the persistence stream between them, leading to duplicate/missing/incorrect diagnostic data. /// </summary> private static ValueTuple <string, VersionStamp> GetNameAndVersion(DiagnosticAnalyzer analyzer, StateType type) { Contract.ThrowIfNull(analyzer); // Get the unique ID for given diagnostic analyzer. // note that we also put version stamp so that we can detect changed analyzer. var tuple = analyzer.GetUniqueId(); return(ValueTuple.Create(UserDiagnosticsPrefixTableName + "_" + type.ToString() + "_" + tuple.Item1, tuple.Item2)); }
public void should_return_the_state_of_the_cell() { const int xCoordinate = 0; const int yCoordinate = 0; _grid.Initialize(); StateType state = _grid.GetCellState(xCoordinate, yCoordinate); Assert.IsNotEmpty(state.ToString()); }
/// <summary> /// Get the unique state name for the given {type, provider} tuple. /// Note that this name is used by the underlying persistence stream of the corresponding <see cref="DiagnosticState"/> to Read/Write diagnostic data into the stream. /// If any two distinct {type, provider} tuples have the same diagnostic state name, we will end up sharing the persistence stream between them, leading to duplicate/missing/incorrect diagnostic data. /// </summary> private static ValueTuple <string, VersionStamp> GetUniqueDiagnosticStateNameAndVersion(StateType type, ProviderId providerId, DiagnosticAnalyzer provider) { Contract.ThrowIfNull(provider); // Get the unique ID for given diagnostic analyzer. // note that we also put version stamp so that we can detect changed provider var providerType = provider.GetType(); var location = providerType.Assembly.Location; return(ValueTuple.Create(UserDiagnosticsPrefixTableName + "_" + type.ToString() + "_" + providerType.AssemblyQualifiedName, GetProviderVersion(location))); }
/// <summary> /// Function to set the game state to the one passed as parameter. /// </summary> /// <param name="state"> State to change to.</param> public void SetGameState(StateType state) { if (gameState != state) { gameState = state; } else { Debug.LogWarning("State already in " + state.ToString()); } }
public void ChangeState(StateType state) { if (_state != null) { _state.Exit(); } switch (state) { case StateType.Idle: _state = new StateIdle(this); break; case StateType.Walk: _state = new StateWalk(this); break; case StateType.Run: _state = new StateRun(this); break; case StateType.Prostrate: _state = new StateProstrate(this); break; case StateType.Sit: _state = new StateSit(this); break; case StateType.Jump: throw new System.NotImplementedException("まだ未実装です : " + state.ToString()); default: throw new System.NotImplementedException("想定外のステートです : " + state.ToString()); } _state.Enter(); }
public static void Write(string writeFileData, LevelType level) { if (_LogState == StateType.Stop) { return; } if (_LogCacheList.Count > _LogMaxCapacity) { _LogCacheList.Clear(); } if (!string.IsNullOrEmpty(writeFileData)) { writeFileData = "Log State:" + _LogState.ToString() + "/" + DateTime.Now.ToString() + "/" + writeFileData; if (level == LevelType.High) { writeFileData = "@@@ Error Or Warring Or Important !!! @@@" + writeFileData; //重要信息或者错误或者?????? } switch (_LogState) { case StateType.Develop: AppendDataToFile(writeFileData); break; case StateType.Speacial: if (level == LevelType.High || level == LevelType.Special) { AppendDataToFile(writeFileData); } break; case StateType.Deploy: if (level == LevelType.High) { AppendDataToFile(writeFileData); } break; case StateType.Stop: break; default: break; } } }
public IEnumerator Started() { while (isActiveAndEnabled) { yield return(new WaitForSeconds(1)); if (Done) { int s = Random.Range(0, ((int)StateType.size - stage)); StateType state = (StateType)s; string name = state.ToString(); print(name); StartCoroutine(name); } } }
/// <summary> ///删除状态 /// </summary> public void DeleteState(StateType type) { // Check for NullState before deleting if (type == StateType.NullState) { Debug.LogError("FSM ERROR: NullStateID is not allowed for a real state"); return; } // Search the List and delete the state if it's inside it if (states.ContainsKey(type)) { states.Remove(type); return; } Debug.LogErrorFormat("FSM ERROR: Impossible to delete state {0} . It was not on the list of states", type.ToString()); }
private TextWithStyle StateConveter(StateType state) { TextWithStyle vws = new TextWithStyle(state.ToString()); if (state == StateType.Done) { vws.HtmlClass = "cl-green"; } else if (state == StateType.InProgress) { vws.HtmlClass = "cl-blue font-bold"; } else if (state == StateType.Planned) { vws.HtmlClass = "cl-gray"; } return(vws); }
/// <summary> /// 添加状态 /// </summary> public void AddState(StateType type, FSMState <T> state) { if (state == null) { Debug.LogError("FSM ERROR: Null reference is not allowed"); } if (states.Count == 0) { CurrentState = state; CurrentStateType = state.StateType; } if (states.ContainsKey(type)) { Debug.LogErrorFormat("FSM ERROR: Impossible to add state {0} because state has already been added", type.ToString()); return; } states.Add(type, state); }
static void Main(string[] args) { string Tape = Console.ReadLine() + '\0'; StateType State = StateType.s1; CommandType Command; Dictionary <SC, StateType> Automaton = new Dictionary <SC, StateType>(); Automaton.Add(new SC(StateType.s1, CommandType.cMain), StateType.s2); Automaton.Add(new SC(StateType.s2, CommandType.cMain), StateType.s2); Automaton.Add(new SC(StateType.s2, CommandType.cAt), StateType.s3); Automaton.Add(new SC(StateType.s3, CommandType.cMain), StateType.s4); Automaton.Add(new SC(StateType.s4, CommandType.cMain), StateType.s4); Automaton.Add(new SC(StateType.s4, CommandType.cDot), StateType.s5); Automaton.Add(new SC(StateType.s5, CommandType.cMain), StateType.sF); Automaton.Add(new SC(StateType.sF, CommandType.cMain), StateType.sF); Automaton.Add(new SC(StateType.sF, CommandType.cDot), StateType.s5); try { while (true) { Console.WriteLine("State: " + State.ToString()); Command = convertCommand(Tape[0]); Tape = Tape.Substring(1); if (Command == CommandType.cEnd) { break; } State = Automaton[new SC(State, Command)]; } } catch (Exception) { Console.WriteLine("Incorrect transition"); } }
// flat file output methods public string ToFlatFileStringAllData() { const string del = ", "; StringBuilder dataStr = new StringBuilder(); // output string dataStr.Append(_securityObj.Name); dataStr.Append(del); dataStr.Append(TimeStamp.ToString("yyyy/MM/dd hh:mm:ss.ffffff")); dataStr.Append(del); dataStr.Append(BinCnt.ToString()); dataStr.Append(del); dataStr.Append(StateType.ToString()); dataStr.Append(del); dataStr.Append(Bid.ToString()); dataStr.Append(del); dataStr.Append(BidVol.ToString()); dataStr.Append(del); dataStr.Append(BidOpen.ToString()); dataStr.Append(del); dataStr.Append(BidVolOpen.ToString()); dataStr.Append(del); dataStr.Append(BidVolChg.ToString()); dataStr.Append(del); dataStr.Append(BidVolChgSum.ToString()); dataStr.Append(del); dataStr.Append(BidVolChgCnt.ToString()); dataStr.Append(del); dataStr.Append(VolAtBid.ToString()); dataStr.Append(del); dataStr.Append(TrdCntBid.ToString()); dataStr.Append(del); dataStr.Append(Ask.ToString()); dataStr.Append(del); dataStr.Append(AskVol.ToString()); dataStr.Append(del); dataStr.Append(AskOpen.ToString()); dataStr.Append(del); dataStr.Append(AskVolOpen.ToString()); dataStr.Append(del); dataStr.Append(AskVolChg.ToString()); dataStr.Append(del); dataStr.Append(AskVolChgSum.ToString()); dataStr.Append(del); dataStr.Append(AskVolChgCnt.ToString()); dataStr.Append(del); dataStr.Append(VolAtAsk.ToString()); dataStr.Append(del); dataStr.Append(TrdCntAsk.ToString()); dataStr.Append(del); dataStr.Append(Mid.ToString()); dataStr.Append(del); dataStr.Append(MidOpen.ToString()); dataStr.Append(del); dataStr.Append(MidScaled.ToString("#.0000")); dataStr.Append(del); dataStr.Append(MidScaledOpen.ToString("#.0000")); dataStr.Append(del); dataStr.Append(LastTrdPrice.ToString()); dataStr.Append(del); dataStr.Append(LastPriceOpn.ToString()); dataStr.Append(del); dataStr.Append(LastTrdSize.ToString()); return(dataStr.ToString()); }
public void EvaluteTime() { var now = Netomity.Utility.SystemTime.Now; var tod = now.TimeOfDay; CalcTimes(now); var morning = Sunrise.TimeOfDay - Offset; var evening = Sunset.TimeOfDay + Offset; StateType calcState = null; if (tod < morning || tod > evening) { calcState = StateType.Dark; } else { calcState = StateType.Light; } if (this.State.Primary != calcState) { this.Command(Conversions.ValueToStringEnum <CommandType>(calcState.ToString())); } }
public void ApplyState(StateType state, params object[] args) { if (_currentState != state) { OnStateChange(_currentState, state, args); _currentState = state; _animator.Play(_currentState.ToString().ToLower(), -1, 0f); switch (_currentState) { case StateType.Fight: case StateType.Idle: case StateType.Sticker: break; case StateType.Walk: OnWalk(args); break; default: break; } } }
public string ToStringAllData() { string dataStr = _securityObj.Name + " " + TimeStamp.ToLongTimeString() + " Type " + StateType.ToString() + //" Bid " + Bid.ToString() + //" BidOpn " + BidOpen.ToString() + //" BidVol " + BidVol.ToString() + //" BidVolOpen " + BidVolOpen.ToString() + //" BidVolChg " + BidVolChg.ToString() + //" BidVolChgSum " + BidVolChgSum.ToString() + " BidVolChgCnt " + BidVolChgCnt.ToString() + //" VolAtBid " + VolAtBid.ToString() + //" TrdCntBid " + TrdCntBid.ToString() + //" Ask " + Ask.ToString() + //" AskOpen " + AskOpen.ToString() + //" AskVol " + AskVol.ToString() + //" AskVolOpen " + AskVolOpen.ToString() + //" AskVolChg " + AskVolChg.ToString() + //" AskVolChgSum " + AskVolChgSum.ToString() + " AskVolChgCnt " + AskVolChgCnt.ToString() + //" VolAtAsk " + VolAtAsk.ToString() + //" TrdCntAsk " + TrdCntAsk.ToString() + " Mid " + Mid.ToString() + //" MidOpn " + MidOpen.ToString() + //" MidScaled " + MidScaled.ToString("#.00") + //" MidScaledOpen " + MidScaledOpen.ToString("#.00") + //" LastPrice " + LastTrdPrice.ToString() + //" LastPriceOpn " + LastPriceOpn.ToString() + " LastSize " + LastTrdSize.ToString(); // dataStr = SecurityObj.Name + Environment.NewLine + " {" + Environment.NewLine + // " LastSize " + LastTrdSize.ToString() + Environment.NewLine + " }"; return(dataStr); }
public Entry(Text scoreBoard, StateType stateType) { rowName = stateType.ToString().ToLower(); this.scoreBoard = scoreBoard; }
/// <summary> /// 触发事件 /// </summary> /// <param name="stateEvent">State event.</param> /// <param name="toStateId">To state identifier.</param> /// <param name="objs">Objects.</param> public void ActionEvent(StateEvent stateEvent, StateType toStateId, params object[] objs) { Dictionary <int, int> dic; if (!stateEventDic.TryGetValue((int)stateEvent, out dic)) { Debug.LogError("stateEvent" + stateEvent.ToString() + "没有注册"); return; } if (!dic.ContainsKey(curStateId)) { Debug.LogError("stateEvent" + stateEvent.ToString() + "不能触发" + "cursateId is " + curStateId.ToString() + "nextStateId is " + toStateId.ToString()); return; } if (dic[curStateId] != (int)toStateId) { Debug.LogError("stateEvent" + stateEvent.ToString() + "不能触发" + "cursateId is " + curStateId.ToString() + "nextStateId is " + toStateId.ToString()); return; } ChangeState((int)toStateId, objs); }
public override string ToString() { string repetitions = String.Empty; if (MinRepetitions != 1 || MaxRepetitions != 1) { repetitions = "{" + MinRepetitions.ToString() + "," + MaxRepetitions.ToString() + "}"; } return(string.Format("{0}{1}{2}" , StateName , StateType == StateType.NotApplicable?string.Empty:"(" + StateType.ToString() + ")" , repetitions)); }
public void DispatchDebugState(IDSFDataObject dataObject, StateType stateType, bool hasErrors, string existingErrors, out ErrorResultTO errors, DateTime?workflowStartTime = null, bool interrogateInputs = false, bool interrogateOutputs = false, bool durationVisible = true) { errors = new ErrorResultTO(); if (dataObject != null) { Guid parentInstanceId; Guid.TryParse(dataObject.ParentInstanceID, out parentInstanceId); bool hasError = dataObject.Environment.HasErrors(); var errorMessage = String.Empty; if (hasError) { errorMessage = dataObject.Environment.FetchErrors(); } if (String.IsNullOrEmpty(existingErrors)) { existingErrors = errorMessage; } else if (!existingErrors.Contains(errorMessage)) { existingErrors += Environment.NewLine + errorMessage; } string name = "localhost"; Guid remoteID; bool hasRemote = Guid.TryParse(dataObject.RemoteInvokerID, out remoteID); if (hasRemote) { var res = ResourceCatalog.Instance.GetResource(GlobalConstants.ServerWorkspaceID, remoteID); if (res != null) { name = remoteID != Guid.Empty ? ResourceCatalog.Instance.GetResource(GlobalConstants.ServerWorkspaceID, remoteID).ResourceName : "localhost"; } } var debugState = new DebugState { ID = dataObject.OriginalInstanceID, ParentID = parentInstanceId, WorkspaceID = dataObject.WorkspaceID, StateType = stateType, StartTime = workflowStartTime ?? DateTime.Now, EndTime = DateTime.Now, ActivityType = ActivityType.Workflow, DisplayName = dataObject.ServiceName, IsSimulation = dataObject.IsOnDemandSimulation, ServerID = dataObject.ServerID, OriginatingResourceID = dataObject.ResourceID, OriginalInstanceID = dataObject.OriginalInstanceID, Server = name, Version = string.Empty, SessionID = dataObject.DebugSessionID, EnvironmentID = dataObject.DebugEnvironmentId, ClientID = dataObject.ClientID, Name = stateType.ToString(), HasError = hasErrors || hasError, ErrorMessage = existingErrors, IsDurationVisible = durationVisible }; if (interrogateInputs) { ErrorResultTO invokeErrors; var defs = DataListUtil.GenerateDefsFromDataListForDebug(FindServiceShape(dataObject.WorkspaceID, dataObject.ResourceID), enDev2ColumnArgumentDirection.Input); var inputs = GetDebugValues(defs, dataObject, out invokeErrors); errors.MergeErrors(invokeErrors); debugState.Inputs.AddRange(inputs); } if (interrogateOutputs) { ErrorResultTO invokeErrors; var defs = DataListUtil.GenerateDefsFromDataListForDebug(FindServiceShape(dataObject.WorkspaceID, dataObject.ResourceID), enDev2ColumnArgumentDirection.Output); var inputs = GetDebugValues(defs, dataObject, out invokeErrors); errors.MergeErrors(invokeErrors); debugState.Outputs.AddRange(inputs); } if (stateType == StateType.End) { debugState.NumberOfSteps = dataObject.NumberOfSteps; } if (stateType == StateType.Start) { debugState.ExecutionOrigin = dataObject.ExecutionOrigin; debugState.ExecutionOriginDescription = dataObject.ExecutionOriginDescription; } if (dataObject.IsDebugMode() || dataObject.RunWorkflowAsync && !dataObject.IsFromWebServer) { var debugDispatcher = _getDebugDispatcher(); if (debugState.StateType == StateType.End) { while (!debugDispatcher.IsQueueEmpty) { Thread.Sleep(100); } debugDispatcher.Write(debugState, dataObject.RemoteInvoke, dataObject.RemoteInvokerID, dataObject.ParentInstanceID, dataObject.RemoteDebugItems); } else { debugDispatcher.Write(debugState); } } } }
public void DispatchDebugState(IDSFDataObject dataObject, StateType stateType, bool hasErrors, string existingErrors, out ErrorResultTO errors, DateTime? workflowStartTime = null, bool interrogateInputs = false, bool interrogateOutputs = false) { errors = new ErrorResultTO(); if(dataObject != null) { Guid parentInstanceId; Guid.TryParse(dataObject.ParentInstanceID, out parentInstanceId); IDataListCompiler compiler = DataListFactory.CreateDataListCompiler(); bool hasError = dataObject.Environment.HasErrors(); var errorMessage = String.Empty; if(hasError) { errorMessage = dataObject.Environment.FetchErrors(); } if(String.IsNullOrEmpty(existingErrors)) { existingErrors = errorMessage; } else { existingErrors += Environment.NewLine + errorMessage; } var debugState = new DebugState { ID = dataObject.OriginalInstanceID, ParentID = parentInstanceId, WorkspaceID = dataObject.WorkspaceID, StateType = stateType, StartTime = workflowStartTime ?? DateTime.Now, EndTime = DateTime.Now, ActivityType = ActivityType.Workflow, DisplayName = dataObject.ServiceName, IsSimulation = dataObject.IsOnDemandSimulation, ServerID = dataObject.ServerID, OriginatingResourceID = dataObject.ResourceID, OriginalInstanceID = dataObject.OriginalInstanceID, Server = string.Empty, Version = string.Empty, SessionID = dataObject.DebugSessionID, EnvironmentID = dataObject.EnvironmentID, ClientID = dataObject.ClientID, Name = stateType.ToString(), HasError = hasErrors || hasError, ErrorMessage = existingErrors }; if(interrogateInputs) { ErrorResultTO invokeErrors; var defs = compiler.GenerateDefsFromDataListForDebug(FindServiceShape(dataObject.WorkspaceID, dataObject.ResourceID), enDev2ColumnArgumentDirection.Input); var inputs = GetDebugValues(defs, dataObject, out invokeErrors); errors.MergeErrors(invokeErrors); debugState.Inputs.AddRange(inputs); } if(interrogateOutputs) { ErrorResultTO invokeErrors; var defs = compiler.GenerateDefsFromDataListForDebug(FindServiceShape(dataObject.WorkspaceID, dataObject.ResourceID), enDev2ColumnArgumentDirection.Output); var inputs = GetDebugValues(defs, dataObject, out invokeErrors); errors.MergeErrors(invokeErrors); debugState.Outputs.AddRange(inputs); } if(stateType == StateType.End) { debugState.NumberOfSteps = dataObject.NumberOfSteps; } if(stateType == StateType.Start) { debugState.ExecutionOrigin = dataObject.ExecutionOrigin; debugState.ExecutionOriginDescription = dataObject.ExecutionOriginDescription; } if(dataObject.IsDebugMode() || (dataObject.RunWorkflowAsync && !dataObject.IsFromWebServer)) { var debugDispatcher = GetDebugDispatcher(); if(debugState.StateType == StateType.End) { while(!debugDispatcher.IsQueueEmpty) { Thread.Sleep(100); } debugDispatcher.Write(debugState, dataObject.RemoteInvoke, dataObject.RemoteInvokerID, dataObject.ParentInstanceID, dataObject.RemoteDebugItems); } else { debugDispatcher.Write(debugState); } } } }
/// <summary> /// Main execution function for AutonomousService. /// </summary> public void Execute(Object source, ElapsedEventArgs e) { // Don't execute if existing execution is not complete if (!Monitor.TryEnter(executeLock)) { return; } // TODO debugging - delete //Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}", e.SignalTime); // this is for when we're running out of time and just roll back to only gps and hope for the best if (!this.panic && (DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() - this.startTimeStamp.ToUnixTimeMilliseconds() > this.fuckItGoForItCountDown)) { StatusHandler.SendDebugAIPacket(Status.AIS_LOG, "Starting hail mary"); this.panic = true; this.driveContext.HandleFinalCountDown(); } // If detected an obstacle within the last 5 seconds, continue straight to clear obstacle if (IsLastObstacleWithinInterval(OBSTACLE_WATCHDOG_MILLIS)) { StatusHandler.SendSimpleAIPacket(Status.AIS_OUT_WATCHDOG); Console.WriteLine("Watchdog"); // If more than 0.5 seconds have passed since last event, it's safe to start issuing drive // commands - otherwise race condition may occur when continually detecting an obstacle if (!IsLastObstacleWithinInterval(CLEAR_OBSTACLE_DELAY_MILLIS)) { this.driveContext.Drive(DriveCommand.Straight(Speed.CLEAR_OBSTACLE)); } return; } // Get DriveCommand from current drive state, issue DriveCommand DriveCommand driveCommand = this.driveContext.FindNextDriveCommand(); this.driveContext.Drive(driveCommand); // If state change is required, change state StateType nextState = this.driveContext.GetNextStateType(); if (this.driveContext.IsStateChangeRequired(nextState)) { Console.WriteLine("Switching from state: " + this.driveContext.StateType.ToString() + " to: " + nextState.ToString()); this.driveContext.ChangeState(nextState); } Monitor.Exit(executeLock); }
public override string ToString() { return(stateType.ToString()); }
/// <summary> /// Get the unique state name for the given {type, provider} tuple. /// Note that this name is used by the underlying persistence stream of the corresponding <see cref="DiagnosticState"/> to Read/Write diagnostic data into the stream. /// If any two distinct {type, provider} tuples have the same diagnostic state name, we will end up sharing the persistence stream between them, leading to duplicate/missing/incorrect diagnostic data. /// </summary> private static ValueTuple<string, VersionStamp> GetUniqueDiagnosticStateNameAndVersion(StateType type, ProviderId providerId, DiagnosticAnalyzer provider) { Contract.ThrowIfNull(provider); // Get the unique ID for given diagnostic analyzer. // note that we also put version stamp so that we can detect changed provider var providerType = provider.GetType(); var location = providerType.Assembly.Location; return ValueTuple.Create(UserDiagnosticsPrefixTableName + "_" + type.ToString() + "_" + providerType.AssemblyQualifiedName, GetProviderVersion(location)); }
public override string ToString() { return("[" + Id + "]" + "[" + Type.ToString() + "]" + StateType.ToString()); }
public void WriteXml(XmlWriter writer) { //------Always log these for reconstruction------------ writer.WriteAttributeString("DisplayName", DisplayName); writer.WriteAttributeString("ID", ID.ToString()); writer.WriteAttributeString("OriginalInstanceID", OriginalInstanceID.ToString()); writer.WriteAttributeString("ParentID", ParentID.ToString()); writer.WriteAttributeString("ServerID", ServerID.ToString()); writer.WriteAttributeString("StateType", StateType.ToString()); writer.WriteElementString("HasError", HasError.ToString()); writer.WriteAttributeString("SessionID", SessionID.ToString()); if (HasError) { writer.WriteElementString("ErrorMessage", ErrorMessage); } //----------------------------- var settings = WorkflowLoggger.LoggingSettings; //Version if (settings.IsVersionLogged && !string.IsNullOrWhiteSpace(Version)) { writer.WriteElementString("Version", Version); } //Type if (settings.IsTypeLogged) { writer.WriteElementString("Name", Name); writer.WriteElementString("ActivityType", ActivityType.ToString()); } //Duration if (settings.IsDurationLogged) { if (Duration != default(TimeSpan)) { writer.WriteElementString("Duration", DurationString); } } //DateTime if (settings.IsDataAndTimeLogged) { if (StartTime != DateTime.MinValue) { writer.WriteElementString("StartTime", StartTime.ToString("G")); } if (EndTime != DateTime.MinValue) { writer.WriteElementString("EndTime", EndTime.ToString("G")); } } //Input if (settings.IsInputLogged && Inputs.Count > 0) { writer.WriteStartElement("Inputs"); writer.WriteAttributeString("Count", Inputs.Count.ToString(CultureInfo.InvariantCulture)); var inputSer = new XmlSerializer(typeof(DebugItem)); foreach (var other in Inputs) { inputSer.Serialize(writer, other); } writer.WriteEndElement(); } //Output if (settings.IsOutputLogged && Outputs.Count > 0) { writer.WriteStartElement("Outputs"); writer.WriteAttributeString("Count", Outputs.Count.ToString(CultureInfo.InvariantCulture)); var outputSer = new XmlSerializer(typeof(DebugItem)); foreach (var other in Outputs) { outputSer.Serialize(writer, other); } writer.WriteEndElement(); } //StartBlock if (IsFirstStep()) { if (ExecutionOrigin != ExecutionOrigin.Unknown) { writer.WriteElementString("ExecutionOrigin", ExecutionOrigin.ToString()); } if (!string.IsNullOrWhiteSpace(ExecutingUser)) { writer.WriteElementString("ExecutingUser", ExecutingUser); } } //EndBlock if (IsFinalStep()) { writer.WriteElementString("NumberOfSteps", NumberOfSteps.ToString(CultureInfo.InvariantCulture)); } }