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. |