コード例 #1
0
        public HBridgeMotor (IPwm pwm = null)
        {
            CalibrationInput = AddInput ("CalibrationInput", Units.Ratio, 1);
            SpeedInput = AddInput ("SpeedInput", Units.Ratio, 0);
            IsNeutralInput = AddInput ("IsNeutralInput", Units.Boolean, 0);

            A1Output = AddOutput ("A1Output", Units.Digital, 0);
            A2Output = AddOutput ("A2Output", Units.Digital, 0);

            PwmFrequencyOutput = AddOutput ("PwmFrequencyOutput", Units.Frequency, DefaultFrequency);
            PwmDutyCycleOutput = AddOutput ("PwmDutyCycleOutput", Units.Ratio, SpeedInput.Value);

            // This is a direct connection.
            SpeedInput.ValueChanged += (s, e) => Update ();
            IsNeutralInput.ValueChanged += (s, e) => Update ();

            if (pwm != null) {
                PwmFrequencyOutput.ConnectTo (pwm.FrequencyInput);
                PwmDutyCycleOutput.ConnectTo (pwm.DutyCycleInput);                
            }
        }
コード例 #2
0
        public HBridgeMotor(IPwm pwm = null)
        {
            CalibrationInput = AddInput("CalibrationInput", Units.Ratio, 1);
            SpeedInput       = AddInput("SpeedInput", Units.Ratio, 0);
            IsNeutralInput   = AddInput("IsNeutralInput", Units.Boolean, 0);

            A1Output = AddOutput("A1Output", Units.Digital, 0);
            A2Output = AddOutput("A2Output", Units.Digital, 0);

            PwmFrequencyOutput = AddOutput("PwmFrequencyOutput", Units.Frequency, DefaultFrequency);
            PwmDutyCycleOutput = AddOutput("PwmDutyCycleOutput", Units.Ratio, SpeedInput.Value);

            // This is a direct connection.
            SpeedInput.ValueChanged     += (s, e) => Update();
            IsNeutralInput.ValueChanged += (s, e) => Update();

            if (pwm != null)
            {
                PwmFrequencyOutput.ConnectTo(pwm.FrequencyInput);
                PwmDutyCycleOutput.ConnectTo(pwm.DutyCycleInput);
            }
        }