Skip to content

Commit 47f400a

Browse files
authored
Adding Xml Docs to the package (#544)
* Adding Xml Docs to the package * Also Add xml docs to iot.device.bindings package
1 parent f0b5576 commit 47f400a

38 files changed

+82
-44
lines changed

Diff for: Directory.Build.targets

+6
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@
4747
<TfmSpecificPackageFile Include="$(OutputPath)notsupported\$(MSBuildProjectName).dll">
4848
<PackagePath>lib/$(TargetFramework)</PackagePath>
4949
</TfmSpecificPackageFile>
50+
<TfmSpecificPackageFile Include="$(OutputPath)linux\$(MSBuildProjectName).xml">
51+
<PackagePath>lib/$(TargetFramework)</PackagePath>
52+
</TfmSpecificPackageFile>
5053
</ItemGroup>
5154
</Target>
5255

@@ -55,6 +58,9 @@
5558
<RIDSpecificPackageFile Include="$(TargetPath)">
5659
<PackagePath>runtimes/$(RuntimeIdentifier)/lib/$(TargetFramework)</PackagePath>
5760
</RIDSpecificPackageFile>
61+
<RIDSpecificPackageFile Include="$(DocumentationFile)">
62+
<PackagePath>runtimes/$(RuntimeIdentifier)/lib/$(TargetFramework)</PackagePath>
63+
</RIDSpecificPackageFile>
5864
</ItemGroup>
5965
</Target>
6066
</Project>

Diff for: src/Iot.Device.Bindings/Iot.Device.Bindings.csproj

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
<EnableDefaultItems>false</EnableDefaultItems>
77
<IsPackable>true</IsPackable>
88
<DeviceRoot>$(MSBuildThisFileDirectory)../devices/</DeviceRoot>
9+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
910
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
10-
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackageRefAssembly</TargetsForTfmSpecificContentInPackage>
11+
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackageRefAssemblyAndDocXml</TargetsForTfmSpecificContentInPackage>
1112
<!--Disabling default items so samples source won't get build by the main library-->
1213
</PropertyGroup>
1314

@@ -25,11 +26,14 @@
2526
</ProjectReference>
2627
</ItemGroup>
2728

28-
<Target Name="PackageRefAssembly">
29+
<Target Name="PackageRefAssemblyAndDocXml">
2930
<ItemGroup>
3031
<TfmSpecificPackageFile Include="$(TargetRefPath)">
3132
<PackagePath>ref/$(TargetFramework)</PackagePath>
3233
</TfmSpecificPackageFile>
34+
<TfmSpecificPackageFile Include="$(DocumentationFile)">
35+
<PackagePath>ref/$(TargetFramework)</PackagePath>
36+
</TfmSpecificPackageFile>
3337
</ItemGroup>
3438
</Target>
3539

Diff for: src/System.Device.Gpio/Interop/Unix/Libc/Interop.mmap.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ internal enum MemoryMappedFlags
3232
/// The BCM GPIO registers expose the data/direction/interrupt/etc functionality of pins.
3333
/// Each register is 64 bits, where each bit represents a logical register number.
3434
///
35-
/// For example, writing HIGH to register 20 would translate to (registerViewPointer).GPSET[0] | (1U << 20).
35+
/// For example, writing HIGH to register 20 would translate to (registerViewPointer).GPSET[0] | (1U &lt;&lt; 20).
3636
/// </summary>
3737
[StructLayout(LayoutKind.Explicit)]
3838
internal unsafe struct RegisterView

Diff for: src/System.Device.Gpio/Interop/Unix/libgpiod/Interop.libgpiod.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ internal partial class libgpiod
121121
/// <summary>
122122
/// Release a previously reserved line.
123123
/// </summary>
124-
/// <param name="line">GPIO line handle</param>
124+
/// <param name="lineHandle">GPIO line handle</param>
125125
[DllImport(LibgpiodLibrary)]
126126
internal static extern void gpiod_line_release(IntPtr lineHandle);
127127

@@ -138,6 +138,7 @@ internal partial class libgpiod
138138
/// Wait for an event on a single line.
139139
/// </summary>
140140
/// <param name="line">GPIO line handle</param>
141+
/// <param name="timeout">The TimeSpec to wait for before timing out</param>
141142
/// <returns>0 if wait timed out, -1 if an error occurred, 1 if an event occurred.</returns>
142143
[DllImport(LibgpiodLibrary, SetLastError = true)]
143144
internal static extern WaitEventResult gpiod_line_event_wait(SafeLineHandle line, ref TimeSpec timeout);
@@ -146,6 +147,7 @@ internal partial class libgpiod
146147
/// Read the last event from the GPIO line.
147148
/// </summary>
148149
/// <param name="line">GPIO line handle</param>
150+
/// <param name="gpioEvent">Reference to the gpio event that was detected</param>
149151
/// <returns>1 if rising edge event occured, 2 on falling edge, -1 on error.</returns>
150152
[DllImport(LibgpiodLibrary, SetLastError = true)]
151153
internal static extern int gpiod_line_event_read(SafeLineHandle line, ref GpioLineEvent gpioEvent);

Diff for: src/System.Device.Gpio/System.Device.Gpio.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<ProduceReferenceAssembly Condition="'$(TargetsLinux)' == 'true'">true</ProduceReferenceAssembly>
99
<TargetRefPath>$(OutputPath)$(TargetFramework)\ref\$(MSBuildProjectName).dll</TargetRefPath>
1010
<IsPackable>true</IsPackable>
11+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1112
<GeneratePlatformNotSupportedAssembly Condition="'$(RuntimeIdentifier)' == ''">true</GeneratePlatformNotSupportedAssembly>
1213
<Configurations>Debug;Release;Windows-Debug;Linux-Debug</Configurations>
1314
</PropertyGroup>

Diff for: src/System.Device.Gpio/System/Device/Gpio/Drivers/HummingBoardDriver.Linux.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ protected internal override WaitForEventResult WaitForEvent(int pinNumber, PinEv
106106
/// </summary>
107107
/// <param name="pinNumber">The pin number in the driver's logical numbering scheme.</param>
108108
/// <param name="eventTypes">The event types to wait for.</param>
109-
/// <param name="token">The cancellation token of when the operation should stop waiting for an event.</param>
109+
/// <param name="cancellationToken">The cancellation token of when the operation should stop waiting for an event.</param>
110110
/// <returns>A task representing the operation of getting the structure that contains the result of the waiting operation</returns>
111111
protected internal override ValueTask<WaitForEventResult> WaitForEventAsync(int pinNumber, PinEventTypes eventTypes, CancellationToken cancellationToken)
112112
{

Diff for: src/System.Device.Gpio/System/Device/Gpio/Drivers/RaspberryPi3Driver.Linux.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ protected internal override WaitForEventResult WaitForEvent(int pinNumber, PinEv
276276
/// </summary>
277277
/// <param name="pinNumber">The pin number in the driver's logical numbering scheme.</param>
278278
/// <param name="eventTypes">The event types to wait for.</param>
279-
/// <param name="token">The cancellation token of when the operation should stop waiting for an event.</param>
279+
/// <param name="cancellationToken">The cancellation token of when the operation should stop waiting for an event.</param>
280280
/// <returns>A task representing the operation of getting the structure that contains the result of the waiting operation</returns>
281281
protected internal override ValueTask<WaitForEventResult> WaitForEventAsync(int pinNumber, PinEventTypes eventTypes, CancellationToken cancellationToken)
282282
{

Diff for: src/System.Device.Gpio/System/Device/Gpio/GpioDriver.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public abstract class GpioDriver : IDisposable
8383
/// </summary>
8484
/// <param name="pinNumber">The pin number in the driver's logical numbering scheme.</param>
8585
/// <param name="eventTypes">The event types to wait for.</param>
86-
/// <param name="token">The cancellation token of when the operation should stop waiting for an event.</param>
86+
/// <param name="cancellationToken">The cancellation token of when the operation should stop waiting for an event.</param>
8787
/// <returns>A task representing the operation of getting the structure that contains the result of the waiting operation</returns>
8888
protected internal virtual ValueTask<WaitForEventResult> WaitForEventAsync(int pinNumber, PinEventTypes eventTypes, CancellationToken cancellationToken)
8989
{

Diff for: src/devices/BrickPi3/BrickPi3.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ public BrickPiVoltage BrickPi3Voltage
6161
/// <summary>
6262
/// Initialize the brick including SPI communication
6363
/// </summary>
64-
/// <param name="spiAddress"></param>
64+
/// <param name="spiAddress">The Spi Address of the brick</param>
65+
/// <param name="busId">The bus id that the device is connected to</param>
66+
/// <param name="ChipSelectLine">The chip select line that the device is connected to</param>
6567
public Brick(byte spiAddress = 1, int busId = 0, int ChipSelectLine = 1)
6668
{
6769
try

Diff for: src/devices/BrickPi3/Movement/Motor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public class Motor : INotifyPropertyChanged
3333
/// <summary>
3434
/// Create a motor
3535
/// </summary>
36+
/// <param name="brick">The brick controlling the motor</param>
3637
/// <param name="port">Motor port</param>
3738
public Motor(Brick brick, BrickPortMotor port) : this(brick, port, 1000) { }
3839

Diff for: src/devices/BrickPi3/Movement/Vehicle.cs

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public sealed class Vehicle
2323
/// <summary>
2424
/// Create a vehicule with 2 motors, one left and one right
2525
/// </summary>
26+
/// <param name="brick">The main brick controlling the motor</param>
2627
/// <param name="left">Motor port for left motor</param>
2728
/// <param name="right">Motor port for right motor</param>
2829
public Vehicle(Brick brick, BrickPortMotor left, BrickPortMotor right)

Diff for: src/devices/BrickPi3/Movement/Vehicule.cs

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public sealed class Vehicule
2323
/// <summary>
2424
/// Create a vehicule with 2 motors, one left and one right
2525
/// </summary>
26+
/// <param name="brick">The brick controlling the motor</param>
2627
/// <param name="left">Motor port for left motor</param>
2728
/// <param name="right">Motor port for right motor</param>
2829
public Vehicule(Brick brick, BrickPortMotor left, BrickPortMotor right)

Diff for: src/devices/BrickPi3/Sensors/EV3ColorSensor.cs

+3
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,22 @@ public class EV3ColorSensor : INotifyPropertyChanged, ISensor
3333
/// <summary>
3434
/// Initialize an EV3 Color Sensor
3535
/// </summary>
36+
/// <param name="brick"></param>
3637
/// <param name="port">Sensor port</param>
3738
public EV3ColorSensor(Brick brick, SensorPort port) : this(brick, port, ColorSensorMode.Color, 1000) { }
3839

3940
/// <summary>
4041
/// Initialize an EV3 Color Sensor
4142
/// </summary>
43+
/// <param name="brick"></param>
4244
/// <param name="port">Sensor port</param>
4345
/// <param name="mode">Color mode</param>
4446
public EV3ColorSensor(Brick brick, SensorPort port, ColorSensorMode mode) : this(brick, port, mode, 1000) { }
4547

4648
/// <summary>
4749
/// Initilaize an EV3 Color Sensor
4850
/// </summary>
51+
/// <param name="brick"></param>
4952
/// <param name="port">Sensor port</param>
5053
/// <param name="mode">Color mode</param>
5154
/// <param name="timeout">Period in millisecond to check sensor value changes</param>

Diff for: src/devices/BrickPi3/Sensors/EV3GyroSensor.cs

+3
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,22 @@ public class EV3GyroSensor : INotifyPropertyChanged, ISensor
4444
/// <summary>
4545
/// Initialize an EV3 Gyro Sensor
4646
/// </summary>
47+
/// <param name="brick"></param>
4748
/// <param name="port">Sensor port</param>
4849
public EV3GyroSensor(Brick brick, SensorPort port) : this(brick, port, GyroMode.Angle) { }
4950

5051
/// <summary>
5152
/// Initialize an EV3 Gyro Sensor
5253
/// </summary>
54+
/// <param name="brick"></param>
5355
/// <param name="port">Sensor port</param>
5456
/// <param name="mode">Gyro mode</param>
5557
public EV3GyroSensor(Brick brick, SensorPort port, GyroMode mode) : this(brick, port, mode, 1000) { }
5658

5759
/// <summary>
5860
/// Initialize an EV3 Gyro Sensor
5961
/// </summary>
62+
/// <param name="brick"></param>
6063
/// <param name="port">Sensor port</param>
6164
/// <param name="mode">Gyro mode</param>
6265
/// <param name="timeout">Period in millisecond to check sensor value changes</param>

Diff for: src/devices/BrickPi3/Sensors/EV3IRSensor.cs

+4
Original file line numberDiff line numberDiff line change
@@ -86,18 +86,22 @@ public class EV3InfraredSensor : INotifyPropertyChanged, ISensor
8686
/// <summary>
8787
/// Initialize an EV3 IR Sensor
8888
/// </summary>
89+
/// <param name="brick"></param>
8990
/// <param name="port">Sensor port</param>
9091
public EV3InfraredSensor(Brick brick, SensorPort port) : this(brick, port, IRMode.Proximity, 1000) { }
9192

9293
/// <summary>
9394
/// Initializes an EV3 IS Sensor
9495
/// </summary>
96+
/// <param name="brick"></param>
97+
/// <param name="port"></param>
9598
/// <param name="mode">IR mode</param>
9699
public EV3InfraredSensor(Brick brick, SensorPort port, IRMode mode) : this(brick, port, mode, 1000) { }
97100

98101
/// <summary>
99102
/// Initialize an EV3 IR Sensor
100103
/// </summary>
104+
/// <param name="brick"></param>
101105
/// <param name="port">Sensor port</param>
102106
/// <param name="mode">IR mode</param>
103107
/// <param name="timeout">Period in millisecond to check sensor value changes</param>

Diff for: src/devices/BrickPi3/Sensors/EV3TouchSensor.cs

+2
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@ public class EV3TouchSensor : INotifyPropertyChanged, ISensor
2525
/// <summary>
2626
/// Initialise an EV3 Touch sensor
2727
/// </summary>
28+
/// <param name="brick"></param>
2829
/// <param name="port">Sensor port</param>
2930
public EV3TouchSensor(Brick brick, SensorPort port) : this(brick, port, 1000) { }
3031

3132
/// <summary>
3233
/// Initialize an EV3 Touch Sensor
3334
/// </summary>
35+
/// <param name="brick"></param>
3436
/// <param name="port">Sensor port</param>
3537
/// <param name="timeout">Period in millisecond to check sensor value changes</param>
3638
public EV3TouchSensor(Brick brick, SensorPort port, int timeout)

Diff for: src/devices/BrickPi3/Sensors/EV3UltraSonicSensor.cs

+3
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,22 @@ public class EV3UltraSonicSensor : INotifyPropertyChanged, ISensor
2626
/// <summary>
2727
/// Initialize an EV3 Ulrasonic sensor
2828
/// </summary>
29+
/// <param name="brick"></param>
2930
/// <param name="port">Sensor port</param>
3031
public EV3UltraSonicSensor(Brick brick, SensorPort port) : this(brick, port, UltraSonicMode.Centimeter, 1000) { }
3132

3233
/// <summary>
3334
/// Initialize an EV3 Ultrasonic sensor
3435
/// </summary>
36+
/// <param name="brick"></param>
3537
/// <param name="port">Sensor mode</param>
3638
/// <param name="usmode">Ultrasonic mode</param>
3739
public EV3UltraSonicSensor(Brick brick, SensorPort port, UltraSonicMode usmode) : this(brick, port, usmode, 1000) { }
3840

3941
/// <summary>
4042
/// Initialize an EV3 Ultrasonic Sensor
4143
/// </summary>
44+
/// <param name="brick"></param>
4245
/// <param name="port">Sensor port</param>
4346
/// <param name="usmode">Ultrasonic mode</param>
4447
/// <param name="timeout">Period in millisecond to check sensor value changes</param>

Diff for: src/devices/BrickPi3/Sensors/NXTColorSensor.cs

+3
Original file line numberDiff line numberDiff line change
@@ -89,19 +89,22 @@ public class NXTColorSensor : INotifyPropertyChanged, ISensor
8989
/// <summary>
9090
/// Initialize a NXT Color Sensor
9191
/// </summary>
92+
/// <param name="brick"></param>
9293
/// <param name="port">Sensor port</param>
9394
public NXTColorSensor(Brick brick, SensorPort port) : this(brick, port, ColorSensorMode.Color, 1000) { }
9495

9596
/// <summary>
9697
/// Initialize a NXT Color Sensor
9798
/// </summary>
99+
/// <param name="brick"></param>
98100
/// <param name="port">Sensor port</param>
99101
/// <param name="mode">Color mode</param>
100102
public NXTColorSensor(Brick brick, SensorPort port, ColorSensorMode mode) : this(brick, port, mode, 1000) { }
101103

102104
/// <summary>
103105
/// Initialize a NXT Color Sensor
104106
/// </summary>
107+
/// <param name="brick"></param>
105108
/// <param name="port">Sensor port</param>
106109
/// <param name="mode">Color mode</param>
107110
/// <param name="timeout">Period in millisecond to check sensor value changes</param>

Diff for: src/devices/BrickPi3/Sensors/NXTLightSensor.cs

+3
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,22 @@ public class NXTLightSensor : INotifyPropertyChanged, ISensor
4343
/// <summary>
4444
/// Initialize a NXT Light Sensor
4545
/// </summary>
46+
/// <param name="brick"></param>
4647
/// <param name="port">Sensor port</param>
4748
public NXTLightSensor(Brick brick, SensorPort port) : this(brick, port, LightMode.Relection, 1000) { }
4849

4950
/// <summary>
5051
/// Initialize a NXT Light Sensor
5152
/// </summary>
53+
/// <param name="brick"></param>
5254
/// <param name="port">Sensor port</param>
5355
/// <param name="mode">Light mode</param>
5456
public NXTLightSensor(Brick brick, SensorPort port, LightMode mode) : this(brick, port, mode, 1000) { }
5557

5658
/// <summary>
5759
/// Initialize a NXT Light Sensor
5860
/// </summary>
61+
/// <param name="brick"></param>
5962
/// <param name="port">Sensor port</param>
6063
/// <param name="mode">Light mode</param>
6164
/// <param name="timeout">Period in millisecond to check sensor value changes</param>

Diff for: src/devices/BrickPi3/Sensors/NXTSoundSensor.cs

+2
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@ public class NXTSoundSensor : INotifyPropertyChanged, ISensor
2727
/// <summary>
2828
/// Initialize a NXT Sound Sensor
2929
/// </summary>
30+
/// <param name="brick"></param>
3031
/// <param name="port">Sensor Port</param>
3132
public NXTSoundSensor(Brick brick, SensorPort port) : this(brick, port, 1000) { }
3233

3334
/// <summary>
3435
/// Initialize a NXT Sound Sensor
3536
/// </summary>
37+
/// <param name="brick"></param>
3638
/// <param name="port">Sensor port</param>
3739
/// <param name="timeout">Period in millisecond to check sensor value changes</param>
3840
public NXTSoundSensor(Brick brick, SensorPort port, int timeout)

Diff for: src/devices/BrickPi3/Sensors/NXTTouchSensor.cs

+2
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@ public class NXTTouchSensor : INotifyPropertyChanged, ISensor
2424
/// <summary>
2525
/// Initialize a new NXT Touch sensor
2626
/// </summary>
27+
/// <param name="brick"></param>
2728
/// <param name="port">Sensor port</param>
2829
public NXTTouchSensor(Brick brick, SensorPort port) : this(brick, port, 1000) { }
2930

3031
/// <summary>
3132
/// Initialize a new NXT Touch sensor
3233
/// </summary>
34+
/// <param name="brick"></param>
3335
/// <param name="port">Sensor port</param>
3436
/// <param name="timeout">Period in millisecond to check sensor value changes</param>
3537
public NXTTouchSensor(Brick brick, SensorPort port, int timeout)

Diff for: src/devices/BrickPi3/Sensors/NXTUltraSonicSensor.cs

+3
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,22 @@ public class NXTUltraSonicSensor : INotifyPropertyChanged, ISensor
4747
/// <summary>
4848
/// Initialize a NXT Ultrasonic sensor
4949
/// </summary>
50+
/// <param name="brick"></param>
5051
/// <param name="port">Sensor port</param>
5152
public NXTUltraSonicSensor(Brick brick, SensorPort port) : this(brick, port, UltraSonicMode.Centimeter, 1000) { }
5253

5354
/// <summary>
5455
/// Initialize a NXT Ultrasonic sensor
5556
/// </summary>
57+
/// <param name="brick"></param>
5658
/// <param name="port">Sensor port</param>
5759
/// <param name="mode">Ultrasonic mode</param>
5860
public NXTUltraSonicSensor(Brick brick, SensorPort port, UltraSonicMode mode) : this(brick, port, mode, 1000) { }
5961

6062
/// <summary>
6163
/// Initialize a NXT Ultrasonic sensor
6264
/// </summary>
65+
/// <param name="brick"></param>
6366
/// <param name="port">Sensor port</param>
6467
/// <param name="mode">Ultrasonic mode</param>
6568
/// <param name="timeout">Period in millisecond to check sensor value changes</param>

Diff for: src/devices/GoPiGo3/GoPiGo3.cs

+1-3
Original file line numberDiff line numberDiff line change
@@ -336,9 +336,7 @@ public Version GetFirmwareVersion()
336336
/// Set the led color
337337
/// </summary>
338338
/// <param name="led">The led, either Left, Right, Blinky Left, Blinky Right and Wifi. Note you should only control the wifi one if you are sure to be connected to wifi</param>
339-
/// <param name="red">The red component</param>
340-
/// <param name="green">The green component</param>
341-
/// <param name="blue">The blue component</param>
339+
/// <param name="ledColor">The Color of the <paramref name="led"/></param>
342340
public void SetLed(byte led, Color ledColor)
343341
{
344342

Diff for: src/devices/GoPiGo3/Movements/Motor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class Motor
2828
/// <summary>
2929
/// Create a motor
3030
/// </summary>
31+
/// <param name="brick"></param>
3132
/// <param name="port">Motor port</param>
3233
public Motor(GoPiGo brick, MotorPort port) : this(brick, port, 1000) { }
3334

Diff for: src/devices/GrovePi/Sensors/Relay.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public Relay(GrovePi grovePi, GrovePort port) : this(grovePi, port, false)
2020
/// <summary>
2121
/// Relay constructor
2222
/// </summary>
23-
/// <param name="goPiGo">The GrovePi class</param>
23+
/// <param name="grovePi">The GrovePi class</param>
2424
/// <param name="port">The grove Port, need to be in the list of SupportedPorts</param>
2525
/// <param name="inverted">If inverted, the relay is on when output is low and off when output is high</param>
2626
public Relay(GrovePi grovePi, GrovePort port, bool inverted) : base(grovePi, port)

0 commit comments

Comments
 (0)