Remarks
DipSwitch | |
---|---|
Status | |
Source code | GitHub |
NuGet package |
DipSwitch represents a DIP-switch wired in a bus configuration, in which all switches are terminated to the same ground/common or high pin.
public class MeadowApp : App<F7Micro, MeadowApp>
{
protected DipSwitch dipSwitch;
public MeadowApp()
{
Console.WriteLine("Initializing...");
IDigitalInputPort[] ports =
{
Device.CreateDigitalInputPort(Device.Pins.D06, InterruptMode.EdgeRising, ResistorMode.InternalPullDown),
Device.CreateDigitalInputPort(Device.Pins.D07, InterruptMode.EdgeFalling, ResistorMode.InternalPullDown),
Device.CreateDigitalInputPort(Device.Pins.D08, InterruptMode.EdgeFalling, ResistorMode.InternalPullDown),
Device.CreateDigitalInputPort(Device.Pins.D09, InterruptMode.EdgeFalling, ResistorMode.InternalPullDown),
Device.CreateDigitalInputPort(Device.Pins.D10, InterruptMode.EdgeFalling, ResistorMode.InternalPullDown),
Device.CreateDigitalInputPort(Device.Pins.D11, InterruptMode.EdgeFalling, ResistorMode.InternalPullDown),
Device.CreateDigitalInputPort(Device.Pins.D12, InterruptMode.EdgeFalling, ResistorMode.InternalPullDown),
Device.CreateDigitalInputPort(Device.Pins.D13, InterruptMode.EdgeFalling, ResistorMode.InternalPullDown),
};
dipSwitch = new DipSwitch(ports);
dipSwitch.Changed += (s,e) =>
{
Console.WriteLine("Switch " + e.ItemIndex + " changed to " + (((ISwitch)e.Item).IsOn ? "on" : "off"));
};
Console.WriteLine("DipSwitch...");
}
}
Sample projects available on GitHub
Code Example
protected DipSwitch dipSwitch;
public override Task Initialize()
{
Resolver.Log.Info("Initializing...");
IDigitalInputPort[] ports =
{
Device.CreateDigitalInputPort(Device.Pins.D06, InterruptMode.EdgeRising, ResistorMode.InternalPullDown),
};
dipSwitch = new DipSwitch(ports);
dipSwitch.Changed += (s,e) =>
{
Resolver.Log.Info("Switch " + e.ItemIndex + " changed to " + (((ISwitch)e.Item).IsOn ? "on" : "off"));
};
Resolver.Log.Info("DipSwitch...");
return Task.CompletedTask;
}
Sample project(s) available on GitHub
Wiring Example
<img src="../../API_Assets/Meadow.Foundation.Sensors.Switches.DipSwitch/DipSwitch_Fritzing.svg"
Characteristic | Locus |
---|---|
Inheritance | System.Object > DipSwitch |
Namespace | Meadow.Foundation.Sensors.Switches |
Assembly | Meadow.Foundation.dll |
Syntax
public class DipSwitch : object
Constructors
DipSwitch(IDigitalInputPort[])
Creates a new DipSwitch connected to an array of Interrupt Ports
Declaration
public DipSwitch(IDigitalInputPort[] interruptPorts)
Parameters
Type | Name | Description |
---|---|---|
IDigitalInputPort[] | interruptPorts |
DipSwitch(IPin[], InterruptMode, ResistorMode)
Creates a new DipSwitch connected to the specified switchPins, with the InterruptMode and ResisterMode specified by the type parameters.
Declaration
public DipSwitch(IPin[] switchPins, InterruptMode interruptMode, ResistorMode resistorMode)
Parameters
Type | Name | Description |
---|---|---|
IPin[] | switchPins | An array of pins for each switch |
InterruptMode | interruptMode | The interrupt mode for all pins |
ResistorMode | resistorMode | The resistor mode for all pins |
DipSwitch(IPin[], InterruptMode, ResistorMode, TimeSpan, TimeSpan)
Creates a new DipSwitch connected to the specified switchPins, with the InterruptMode and ResisterMode specified by the type parameters.
Declaration
public DipSwitch(IPin[] switchPins, InterruptMode interruptMode, ResistorMode resistorMode, TimeSpan debounceDuration, TimeSpan glitchFilterCycleCount)
Parameters
Type | Name | Description |
---|---|---|
IPin[] | switchPins | |
InterruptMode | interruptMode | |
ResistorMode | resistorMode | |
TimeSpan | debounceDuration | |
TimeSpan | glitchFilterCycleCount |
Properties
Item[Int32]
Returns the ISwitch at the specified index.
Declaration
public ISwitch this[int i] { get; }
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | i |
Property Value
Type | Description |
---|---|
ISwitch |
Switches
Returns the switch array.
Declaration
public ISwitch[] Switches { get; }
Property Value
Type | Description |
---|---|
ISwitch[] |
Methods
HandleSwitchChanged(Int32)
Event handler when switch value has been changed
Declaration
protected void HandleSwitchChanged(int switchNumber)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | switchNumber |
Events
Changed
Raised when one of the switches is switched on or off.
Declaration
public event ArrayEventHandler Changed
Event Type
Type | Description |
---|---|
ArrayEventHandler |