Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        public ActuatorBase(ActuatorConfig config, ActuatorState state)
        {
            Config = config;
            PrivateState = state;

            logger = new Logging.Logger(config.Name, Logging.LogGate.All);

            PrivateState.TargetPos = PrivateState.PosState = config.InitialPos;
            PrivateState.TargetPosStr = PrivateState.PosStateStr = config.ToString(config.InitialPos);
            PrivateState.TimeStamp = QpcTimeStamp.Now;

            logger.Info.Emit("Initial state is:{0} [{1}]", PrivateState.PosStateStr, PrivateState.PosState);

            PublishState();
        }