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
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 Details
-
SoftwarePwmOutputDevice
public SoftwarePwmOutputDevice(String key, DeviceFactoryInterface deviceFactory, GpioDigitalOutputDeviceInterface digitalOutputDevice, int frequencyHz, float initialValue)
-
-
Method Details
-
start
public void start() -
stop
public void stop() -
run
public void run() -
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
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
-