public static ActuatorCommandProcessResult Create(ParameterType parameter, CommandImpact impact) => new ActuatorCommandProcessResult { ExecutedCommand = new ParameterCommand { Parameter = parameter, CommandImpact = impact } };
public static bool IsLessOrSameFromSameDirection(this CommandImpact value, CommandImpact toCompare) { return(value.IsSameChangeDirection(toCompare) && Math.Abs((int)value) <= Math.Abs((int)toCompare)); }
public static bool IsSameChangeDirection(this CommandImpact value, CommandImpact toCompare) { return(value == toCompare || (value > 0 && toCompare > 0) || (value < 0 && toCompare < 0)); }
private bool IsActuatorApplicable(IActuator actuator, CommandImpact requestedImpact) { return(!actuator.ActuatorDeviceInfo.IsConstantImpact && actuator.ActuatorDeviceInfo.Impacts.Any(x => x.IsLessOrSameFromSameDirection(requestedImpact))); }