Package com.diozero.internal
Class SoftwarePwmOutputDevice
- java.lang.Object
-
- com.diozero.internal.spi.AbstractDevice
-
- com.diozero.internal.SoftwarePwmOutputDevice
-
- All Implemented Interfaces:
DeviceInterface
,GpioDeviceInterface
,InternalDeviceInterface
,PwmOutputDeviceInterface
,AutoCloseable
,Runnable
public class SoftwarePwmOutputDevice extends AbstractDevice implements PwmOutputDeviceInterface, Runnable
Generate a very poor approximation of a PWM signal - use at your own risk! All timing is in milliseconds hence it is strongly recommend to use a frequency of 50Hz to minimise integer rounding errors.
-
-
Constructor Summary
Constructors Constructor Description SoftwarePwmOutputDevice(String key, DeviceFactoryInterface deviceFactory, GpioDigitalOutputDeviceInterface digitalOutputDevice, int frequencyHz, float initialValue)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
closeDevice()
int
getGpio()
int
getPwmFrequency()
Get the PWM frequency in Hzint
getPwmNum()
Get the device PWM output device numberfloat
getValue()
Get the current PWM output value (0..1)void
run()
void
setPwmFrequency(int frequencyHz)
Set the PWM output frequencyvoid
setValue(float value)
Set the PWM output value (0..1)void
start()
void
stop()
-
Methods inherited from class com.diozero.internal.spi.AbstractDevice
close, getDeviceFactory, getKey, isOpen
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.diozero.api.DeviceInterface
close
-
Methods inherited from interface com.diozero.internal.spi.InternalDeviceInterface
getKey, isOpen
-
Methods inherited from interface com.diozero.internal.spi.PwmOutputDeviceInterface
getMode
-
-
-
-
Constructor Detail
-
SoftwarePwmOutputDevice
public SoftwarePwmOutputDevice(String key, DeviceFactoryInterface deviceFactory, GpioDigitalOutputDeviceInterface digitalOutputDevice, int frequencyHz, float initialValue)
-
-
Method Detail
-
start
public void start()
-
stop
public void stop()
-
closeDevice
protected void closeDevice()
- Specified by:
closeDevice
in classAbstractDevice
-
getGpio
public int getGpio()
- Specified by:
getGpio
in interfaceGpioDeviceInterface
-
getPwmNum
public int getPwmNum()
Description copied from interface:PwmOutputDeviceInterface
Get the device PWM output device number- Specified by:
getPwmNum
in interfacePwmOutputDeviceInterface
- Returns:
- Device native PWM output
-
getValue
public float getValue()
Description copied from interface:PwmOutputDeviceInterface
Get the current PWM output value (0..1)- Specified by:
getValue
in interfacePwmOutputDeviceInterface
- Returns:
- Range is 0..1
-
setValue
public void setValue(float value)
Description copied from interface:PwmOutputDeviceInterface
Set the PWM output value (0..1)- Specified by:
setValue
in interfacePwmOutputDeviceInterface
- Parameters:
value
- Relative value in the range 0..1
-
getPwmFrequency
public int getPwmFrequency()
Description copied from interface:PwmOutputDeviceInterface
Get the PWM frequency in Hz- Specified by:
getPwmFrequency
in interfacePwmOutputDeviceInterface
- Returns:
- frequency in Hz
-
setPwmFrequency
public void setPwmFrequency(int frequencyHz) throws RuntimeIOException
Description copied from interface:PwmOutputDeviceInterface
Set the PWM output frequency- Specified by:
setPwmFrequency
in interfacePwmOutputDeviceInterface
- Parameters:
frequencyHz
- frequency in Hz- Throws:
RuntimeIOException
- if an I/O error occurs
-
-