RaspberryIO_26/Unosquare.RaspberryIO.Abstractions/Enums.cs
2019-12-04 18:57:18 +01:00

528 lines
11 KiB
C#

namespace Unosquare.RaspberryIO.Abstractions
{
/// <summary>
/// Defines the SPI channel numbers.
/// </summary>
public enum SpiChannelNumber
{
/// <summary>
/// The channel 0
/// </summary>
Channel0 = 0,
/// <summary>
/// The channel 1
/// </summary>
Channel1 = 1,
}
/// <summary>
/// Defines the GPIO Pin values 0 for low, 1 for High.
/// </summary>
public enum GpioPinValue
{
/// <summary>
/// Digital high
/// </summary>
High = 1,
/// <summary>
/// Digital low
/// </summary>
Low = 0,
}
/// <summary>
/// The GPIO pin resistor mode. This is used on input pins so that their
/// lines are not floating.
/// </summary>
public enum GpioPinResistorPullMode
{
/// <summary>
/// Pull resistor not active. Line floating
/// </summary>
Off = 0,
/// <summary>
/// Pull resistor sets a default value of 0 on no-connects
/// </summary>
PullDown = 1,
/// <summary>
/// Pull resistor sets a default value of 1 on no-connects
/// </summary>
PullUp = 2,
}
/// <summary>
/// Defines the different drive modes of a GPIO pin.
/// </summary>
public enum GpioPinDriveMode
{
/// <summary>
/// Input drive mode (perform reads)
/// </summary>
Input = 0,
/// <summary>
/// Output drive mode (perform writes)
/// </summary>
Output = 1,
/// <summary>
/// PWM output mode (only certain pins support this -- 2 of them at the moment)
/// </summary>
PwmOutput = 2,
/// <summary>
/// GPIO Clock output mode (only a pin supports this at this time)
/// </summary>
GpioClock = 3,
/// <summary>
/// The alt0 operating mode
/// </summary>
Alt0 = 4,
/// <summary>
/// The alt1 operating mode
/// </summary>
Alt1 = 5,
/// <summary>
/// The alt2 operating mode
/// </summary>
Alt2 = 6,
/// <summary>
/// The alt3 operating mode
/// </summary>
Alt3 = 7,
}
/// <summary>
/// Defines the different threading locking keys.
/// </summary>
public enum ThreadLockKey
{
/// <summary>
/// The lock 0
/// </summary>
Lock0 = 0,
/// <summary>
/// The lock 1
/// </summary>
Lock1 = 1,
/// <summary>
/// The lock 2
/// </summary>
Lock2 = 2,
/// <summary>
/// The lock 3
/// </summary>
Lock3 = 3,
}
/// <summary>
/// Defines the different edge detection modes for pin interrupts.
/// </summary>
public enum EdgeDetection
{
/// <summary>
/// Falling Edge
/// </summary>
FallingEdge,
/// <summary>
/// Rising edge
/// </summary>
RisingEdge,
/// <summary>
/// Both, falling and rising edges
/// </summary>
FallingAndRisingEdge,
}
/// <summary>
/// The hardware revision of the board.
/// </summary>
public enum BoardRevision
{
/// <summary>
/// Revision 1 (the early Model A and B's).
/// </summary>
Rev1 = 1,
/// <summary>
/// Revision 2 (everything else - it covers the B, B+ and CM).
/// </summary>
Rev2 = 2,
}
/// <summary>
/// Defines the Header connectors available.
/// </summary>
public enum GpioHeader
{
/// <summary>
/// Not defined
/// </summary>
None,
/// <summary>
/// P1 connector (main connector)
/// </summary>
P1,
/// <summary>
/// P5 connector (auxiliary, not commonly used)
/// </summary>
P5,
}
/// <summary>
/// Defines all the BCM Pin numbers available for the user.
/// </summary>
public enum BcmPin
{
/// <summary>
/// GPIO 0
/// </summary>
Gpio00 = 0,
/// <summary>
/// GPIO 1
/// </summary>
Gpio01 = 1,
/// <summary>
/// GPIO02
/// </summary>
Gpio02 = 2,
/// <summary>
/// GPIO 3
/// </summary>
Gpio03 = 3,
/// <summary>
/// GPIO 4
/// </summary>
Gpio04 = 4,
/// <summary>
/// GPIO 5
/// </summary>
Gpio05 = 5,
/// <summary>
/// GPIO 6
/// </summary>
Gpio06 = 6,
/// <summary>
/// GPIO 7
/// </summary>
Gpio07 = 7,
/// <summary>
/// GPIO 8
/// </summary>
Gpio08 = 8,
/// <summary>
/// GPIO 9
/// </summary>
Gpio09 = 9,
/// <summary>
/// GPIO 10
/// </summary>
Gpio10 = 10,
/// <summary>
/// GPIO 11
/// </summary>
Gpio11 = 11,
/// <summary>
/// GPIO 12
/// </summary>
Gpio12 = 12,
/// <summary>
/// GPIO 13
/// </summary>
Gpio13 = 13,
/// <summary>
/// GPIO 14
/// </summary>
Gpio14 = 14,
/// <summary>
/// GPIO 15
/// </summary>
Gpio15 = 15,
/// <summary>
/// GPIO 16
/// </summary>
Gpio16 = 16,
/// <summary>
/// GPIO 17
/// </summary>
Gpio17 = 17,
/// <summary>
/// GPIO 18
/// </summary>
Gpio18 = 18,
/// <summary>
/// GPIO 19
/// </summary>
Gpio19 = 19,
/// <summary>
/// GPIO 20
/// </summary>
Gpio20 = 20,
/// <summary>
/// GPIO 21
/// </summary>
Gpio21 = 21,
/// <summary>
/// GPIO 22
/// </summary>
Gpio22 = 22,
/// <summary>
/// GPIO 23
/// </summary>
Gpio23 = 23,
/// <summary>
/// GPIO 24
/// </summary>
Gpio24 = 24,
/// <summary>
/// GPIO 25
/// </summary>
Gpio25 = 25,
/// <summary>
/// GPIO 26
/// </summary>
Gpio26 = 26,
/// <summary>
/// GPIO 27
/// </summary>
Gpio27 = 27,
/// <summary>
/// GPIO 28
/// </summary>
Gpio28 = 28,
/// <summary>
/// GPIO 29
/// </summary>
Gpio29 = 29,
/// <summary>
/// GPIO 30
/// </summary>
Gpio30 = 30,
/// <summary>
/// GPIO 31
/// </summary>
Gpio31 = 31,
}
/// <summary>
/// Enumerates the different pins on the P1 Header.
/// Enumeration values correspond to the physical pin number.
/// </summary>
public enum P1
{
/// <summary>
/// Header P1 Physical Pin 3. GPIO 0 for rev1 or GPIO 2 for rev2.
/// </summary>
Pin03 = 3,
/// <summary>
/// Header P1 Physical Pin 5. GPIO 1 for rev1 or GPIO 3 for rev2.
/// </summary>
Pin05 = 5,
/// <summary>
/// Header P1 Physical Pin 7. GPIO 4.
/// </summary>
Pin07 = 7,
/// <summary>
/// Header P1 Physical Pin 11. GPIO 17.
/// </summary>
Pin11 = 11,
/// <summary>
/// Header P1 Physical Pin 13. GPIO 21 for rev1 or GPIO 27 for rev2.
/// </summary>
Pin13 = 13,
/// <summary>
/// Header P1 Physical Pin 15. GPIO 22.
/// </summary>
Pin15 = 15,
/// <summary>
/// Header P1 Physical Pin 19. GPIO 10.
/// </summary>
Pin19 = 19,
/// <summary>
/// Header P1 Physical Pin 21. GPIO 9.
/// </summary>
Pin21 = 21,
/// <summary>
/// Header P1 Physical Pin 23. GPIO 11.
/// </summary>
Pin23 = 23,
/// <summary>
/// Header P1 Physical Pin 27. GPIO 0.
/// </summary>
Pin27 = 27,
/// <summary>
/// Header P1 Physical Pin 29. GPIO 5.
/// </summary>
Pin29 = 29,
/// <summary>
/// Header P1 Physical Pin 31. GPIO 6.
/// </summary>
Pin31 = 31,
/// <summary>
/// Header P1 Physical Pin 33. GPIO 13.
/// </summary>
Pin33 = 33,
/// <summary>
/// Header P1 Physical Pin 35. GPIO 19.
/// </summary>
Pin35 = 35,
/// <summary>
/// Header P1 Physical Pin 37. GPIO 26.
/// </summary>
Pin37 = 37,
/// <summary>
/// Header P1 Physical Pin 8. GPIO 14.
/// </summary>
Pin08 = 8,
/// <summary>
/// Header P1 Physical Pin 10. GPIO 15.
/// </summary>
Pin10 = 10,
/// <summary>
/// Header P1 Physical Pin 12. GPIO 18.
/// </summary>
Pin12 = 12,
/// <summary>
/// Header P1 Physical Pin 16. GPIO 23.
/// </summary>
Pin16 = 16,
/// <summary>
/// Header P1 Physical Pin 18. GPIO 24.
/// </summary>
Pin18 = 18,
/// <summary>
/// Header P1 Physical Pin 22. GPIO 25.
/// </summary>
Pin22 = 22,
/// <summary>
/// Header P1 Physical Pin 24. GPIO 8.
/// </summary>
Pin24 = 24,
/// <summary>
/// Header P1 Physical Pin 26. GPIO 7.
/// </summary>
Pin26 = 26,
/// <summary>
/// Header P1 Physical Pin 28. GPIO 1.
/// </summary>
Pin28 = 28,
/// <summary>
/// Header P1 Physical Pin 32. GPIO 12.
/// </summary>
Pin32 = 32,
/// <summary>
/// Header P1 Physical Pin 36. GPIO 16.
/// </summary>
Pin36 = 36,
/// <summary>
/// Header P1 Physical Pin 38. GPIO 20.
/// </summary>
Pin38 = 38,
/// <summary>
/// Header P1 Physical Pin 40. GPIO 21.
/// </summary>
Pin40 = 40,
}
/// <summary>
/// Enumerates the different pins on the P5 Header
/// as commonly referenced by Raspberry Pi documentation.
/// Enumeration values correspond to the physical pin number.
/// </summary>
public enum P5
{
/// <summary>
/// Header P5 Physical Pin 3, GPIO 28.
/// </summary>
Pin03 = 3,
/// <summary>
/// Header P5 Physical Pin 4, GPIO 29.
/// </summary>
Pin04 = 4,
/// <summary>
/// Header P5 Physical Pin 5, GPIO 30.
/// </summary>
Pin05 = 5,
/// <summary>
/// Header P5 Physical Pin 6, GPIO 31.
/// </summary>
Pin06 = 6,
}
}