public ActuatorBase(string name, ActuatorConfig config, IActuatorState initialState = null) { Config = new ActuatorConfig(config); initialState = initialState ?? Config.GetDefaultInitialActuatorState(); slewRateLimitTool = new SlewRateLimitTool(minValue: 0.0, maxValue: 100.0, initialValue: initialState.PositionInPercent, initialTarget: initialState.TargetPositionInPercent, maxRatePerSec: 0.0); UpdateMotionRates(); privateState = new ActuatorState(initialState); logger = new Logging.Logger(name, Logging.LogGate.All); if (config.InitialPos.IsTargetPositionValid(allowInBetween: true)) { privateState.TargetPos = privateState.PosState = config.InitialPos; privateState.TargetPositionInPercent = privateState.PositionInPercent = GetTargetPositionInPercent(config.InitialPos, mapInBetweenToHalfWay: true); privateState.TargetPosStr = privateState.PosStateStr = config.ToString(config.InitialPos); } logger.Debug.Emit("Initial state is:{0} [{1} {2:f0}%]", privateState.PosStateStr, privateState.PosState, privateState.PositionInPercent); PublishState(); }
public virtual bool Equals(IActuatorState other) { return(other != null && TargetPos == other.TargetPos && TargetPosStr == other.TargetPosStr && TargetPositionInPercent == other.TargetPositionInPercent && PosState == other.PosState && PosStateStr == other.PosStateStr && PositionInPercent == other.PositionInPercent ); }
public ActuatorState SetFrom(IActuatorState other) { if (other != null) { TargetPos = other.TargetPos; TargetPosStr = other.TargetPosStr; TargetPositionInPercent = other.TargetPositionInPercent; PosState = other.PosState; PosStateStr = other.PosStateStr; PositionInPercent = other.PositionInPercent; } else { TargetPos = ActuatorPosition.None; TargetPosStr = TargetPos.ToString(); TargetPositionInPercent = 0.0; PosState = ActuatorPosition.Undefined; PosStateStr = TargetPos.ToString(); PositionInPercent = 0.0; } return(this); }
public ActuatorPlugin(string name, ActuatorConfig config, IActuatorState initialState = null) : base(name, config, initialState) { }
public ActuatorState(IActuatorState other) { SetFrom(other); }