/// <summary> /// changes the frequency but not the duty cycle /// changes frequency as long as passed in frequency is differnt than spec frequency /// </summary> /// <param name="spec"></param> /// <param name="freqHz"></param> public PwmOutputUpdateCommand(PwmOutputSpec spec, int freqHz) { this.PwmDef = spec; this.DutyCycle = float.NaN; this.PulseWidthUSec = float.NaN; this.RequestedFrequency = freqHz; }
/// <summary> /// change frequency ans duty cycle /// </summary> /// <param name="spec"></param> /// <param name="freqHz"></param> /// <param name="dutyCycle"></param> public PwmOutputUpdateDutyCycleCommand(PwmOutputSpec spec, int freqHz, float dutyCycle) { if (freqHz <= 0) { throw new ArgumentException("Frequency must be > 0 when frequency specified" + freqHz); } this.PwmDef = spec; this.DutyCycle = dutyCycle; this.RequestedFrequency = freqHz; this.PulseWidthUSec = float.NaN; }
/// <summary> /// changes the duty cycle but not the frequency /// </summary> /// <param name="spec"></param> /// <param name="dutyCycle"></param> public PwmOutputUpdateDutyCycleCommand(PwmOutputSpec spec, float dutyCycle) { if (spec.Frequency <= 0) { throw new ArgumentException("Spec Frequency must be > 0 when frequency not specified" + spec.Frequency); } this.PwmDef = spec; this.DutyCycle = dutyCycle; this.PulseWidthUSec = float.NaN; this.RequestedFrequency = spec.Frequency; }
private void ConfigurePwm(IOIOMessageCommandFactory commandFactory) { DigitalOutputSpec pwmPinSpec = new DigitalOutputSpec(SERVO_PIN, DigitalOutputSpecMode.NORMAL); IPwmOutputConfigureCommand createPwm = commandFactory.CreatePwmOutputConfigure(pwmPinSpec, 100); OurImpl_.PostMessage(createPwm); // message post fills in pin def so pick that up. runs in a thread so wait until command completes // have to capture the PwmDef to get the frequencey while (createPwm.PwmDef.Frequency < 0) { System.Threading.Thread.Sleep(10); } this.ServoPinDef_ = createPwm.PwmDef; // value should match minimum of the slider IPwmOutputUpdatePulseWidthCommand command = new IOIOMessageCommandFactory().CreatePwmPulseWithOutputUpdate(this.ServoPinDef_, 600.0f); OurImpl_.PostMessage(command); }
public IPwmOutputCloseCommand CreatePwmOutputClose(PwmOutputSpec spec) { return(new PwmOutputCloseCommand(spec)); }
public IPwmOutputUpdatePulseWidthCommand CreatePwmPulseWithOutputUpdate(PwmOutputSpec spec, float pulseWithUSec) { return(new PwmOutputUpdatePulseWidthCommand(spec, pulseWithUSec)); }
public IPwmOutputUpdateDutyCycleCommand CreatePwmDutyCycleOutputUpdate(PwmOutputSpec spec, float dutyCycle) { return(new PwmOutputUpdateDutyCycleCommand(spec, dutyCycle)); }
public IPwmOutputUpdateCommand CreatePwmOutputUpdate(PwmOutputSpec spec, int freqHz) { return(new PwmOutputUpdateCommand(spec, freqHz)); }
public PwmOutputCloseCommand(PwmOutputSpec spec) { this.PwmDef = spec; }