public DriveContext(StateType initialStateType, GPS gate) { this.gate = gate; // GPSDriveState is default unless specified this.driveState = StateTypeHelper.ToDriveState(initialStateType, gate); this.stateType = initialStateType; this.sendDriveCommandLock = new Object(); }
//TODO look at this function /// <summary> /// Change the current DriveState if required and return the corresponding StateType of the new DriveState. /// </summary> /// <returns>StateType - the StateType for the new DriveState</returns> public StateType ChangeState(StateType nextState) { if (!this.IsStateChangeRequired(nextState)) { return(this.stateType); } this.driveState = StateTypeHelper.ToDriveState(nextState, this.gate); this.stateType = nextState; return(nextState); }