Class WaveBuilder
Provides methods to build and render waveforms.
Implements
Inherited Members
Namespace: Unosquare.PiGpio.ManagedModel
Syntax
public sealed class WaveBuilder : IDisposable
Properties
IsPrepared
Gets a value indicating whether this wave is prepared in the DMA registers.
Declaration
public bool IsPrepared { get; }
Property Value
Type | Description |
---|---|
Boolean |
Pulses
Gets a read-only collection of pulses.
Declaration
public ReadOnlyCollection<GpioPulse> Pulses { get; }
Property Value
Type | Description |
---|---|
ReadOnlyCollection<GpioPulse> |
WaveId
Gets the wave identifier. Returns a negative number if the wave has not been prepared.
Declaration
public int WaveId { get; }
Property Value
Type | Description |
---|---|
Int32 |
Methods
AddCarrierPulses(Double, Double, Double, GpioPin[])
Adds carrier pulses to the wave (useful for stuff like Infrared pulses).
Declaration
public void AddCarrierPulses(double frequency, double durationMicroSecs, double dutyCycle, params GpioPin[] pins)
Parameters
Type | Name | Description |
---|---|---|
Double | frequency | The frequency. |
Double | durationMicroSecs | The duration micro secs. |
Double | dutyCycle | The duty cycle. |
GpioPin[] | pins | The pins. |
AddCarrierPulses(Double, Double, Double, UserGpio[])
Adds carrier pulses to the wave (useful for stuff like Infrared pulses).
Declaration
public void AddCarrierPulses(double frequency, double durationMicroSecs, double dutyCycle, params UserGpio[] pins)
Parameters
Type | Name | Description |
---|---|---|
Double | frequency | The frequency. |
Double | durationMicroSecs | The duration micro secs. |
Double | dutyCycle | The duty cycle. |
UserGpio[] | pins | The pins. |
AddCarrierPulses(Double, Double, GpioPin[])
Adds carrier pulses to the wave (useful for stuff like Infrared pulses).
Declaration
public void AddCarrierPulses(double frequency, double durationMicroSecs, params GpioPin[] pins)
Parameters
Type | Name | Description |
---|---|---|
Double | frequency | The frequency. |
Double | durationMicroSecs | The duration micro secs. |
GpioPin[] | pins | The pins. |
AddCarrierPulses(Double, Double, UserGpio[])
Adds carrier pulses to the wave (useful for stuff like Infrared pulses).
Declaration
public void AddCarrierPulses(double frequency, double durationMicroSecs, params UserGpio[] pins)
Parameters
Type | Name | Description |
---|---|---|
Double | frequency | The frequency. |
Double | durationMicroSecs | The duration micro secs. |
UserGpio[] | pins | The pins. |
AddPulse(Boolean, Int32, GpioPin[])
Adds a pulse.
Declaration
public void AddPulse(bool value, int durationMicroSecs, params GpioPin[] pins)
Parameters
Type | Name | Description |
---|---|---|
Boolean | value | if set to |
Int32 | durationMicroSecs | The duration micro secs. |
GpioPin[] | pins | The pins. |
AddPulse(Boolean, Int32, UserGpio[])
Adds a pulse.
Declaration
public void AddPulse(bool value, int durationMicroSecs, params UserGpio[] pins)
Parameters
Type | Name | Description |
---|---|---|
Boolean | value | if set to |
Int32 | durationMicroSecs | The duration micro secs. |
UserGpio[] | pins | The pins. |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | When the wave has been prepared. |
AddPulse(Int32, IEnumerable<GpioPin>, IEnumerable<GpioPin>)
Adds a pulse.
Declaration
public void AddPulse(int durationMicroSecs, IEnumerable<GpioPin> onPins, IEnumerable<GpioPin> offPins)
Parameters
Type | Name | Description |
---|---|---|
Int32 | durationMicroSecs | The duration micro secs. |
IEnumerable<GpioPin> | onPins | The on pins. |
IEnumerable<GpioPin> | offPins | The off pins. |
AddPulse(Int32, IEnumerable<UserGpio>, IEnumerable<UserGpio>)
Adds a pulse.
Declaration
public void AddPulse(int durationMicroSecs, IEnumerable<UserGpio> onPins, IEnumerable<UserGpio> offPins)
Parameters
Type | Name | Description |
---|---|---|
Int32 | durationMicroSecs | The duration micro secs. |
IEnumerable<UserGpio> | onPins | The on pins. |
IEnumerable<UserGpio> | offPins | The off pins. |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | When the wave has been prepared. |
AddPulse(GpioPulse)
Adds a pulse.
Declaration
public void AddPulse(GpioPulse pulse)
Parameters
Type | Name | Description |
---|---|---|
GpioPulse | pulse | The pulse. |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | When the wave has been prepared. |
ClearPulses()
Clears all previously added pulses.
Declaration
public void ClearPulses()
Exceptions
Type | Condition |
---|---|
InvalidOperationException | When the wave has been prepared. |
Dispose()
Declaration
public void Dispose()
Prepare()
Prepares the waveform to be rendered by DMA.
Declaration
public void Prepare()
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | When the wave has been disposed. |
Send(WaveMode)
Begins rendering the waveform pulses. Do not forget to set the pin direction/mode as an output pin. The wave is automatically prepared if it has not been prepared before.
Declaration
public void Send(WaveMode mode)
Parameters
Type | Name | Description |
---|---|---|
WaveMode | mode | The mode. |