Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
Sample project(s) available on GitHub
Syntax
public class Pca9671 : I2cCommunications, II2cCommunications, IByteCommunications, IDigitalOutputController, IDigitalInputController, IPinController, II2cPeripheral, IDisposable
Constructors
Pca9671(II2cBus, byte, IDigitalOutputPort?)
Creates a new Pca9671 instance
Declaration
public Pca9671(II2cBus i2cBus, byte peripheralAddress, IDigitalOutputPort? resetPort = null)
Parameters
Type | Name | Description |
---|---|---|
II2cBus | i2cBus | The I2C buss the peripheral is connected to |
byte | peripheralAddress | The i2cBus address of the peripheral |
IDigitalOutputPort | resetPort | The optional pin connected to the peripheral's reset |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
Pca9671(II2cBus, byte, IPin?)
Creates a new Pca9671 instance
Declaration
public Pca9671(II2cBus i2cBus, byte peripheralAddress, IPin? resetPin = null)
Parameters
Type | Name | Description |
---|---|---|
II2cBus | i2cBus | The I2C buss the peripheral is connected to |
byte | peripheralAddress | The i2cBus address of the peripheral |
IPin | resetPin | The optional pin connected to the peripheral's reset |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
Properties
DefaultI2cAddress
The default I2C address for the peripheral
Declaration
public byte DefaultI2cAddress { get; }
Property Value
Type | Description |
---|---|
byte |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
IsDisposed
Is the object disposed
Declaration
public bool IsDisposed { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
Pins
Represents a PCA9671 I2C IO Expander
Declaration
public Pca9671.PinDefinitions Pins { get; }
Property Value
Type | Description |
---|---|
Pca9671.PinDefinitions |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
Methods
AllOff()
Convenience method to turn all outputs off
Declaration
public void AllOff()
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
AllOn()
Convenience method to turn all outputs on
Declaration
public void AllOn()
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
CreateDigitalInputPort(IPin, ResistorMode)
Creates an IDigitalInputPort on the specified pin.
Declaration
public IDigitalInputPort CreateDigitalInputPort(IPin pin, ResistorMode resistorMode)
Parameters
Type | Name | Description |
---|---|---|
IPin | pin | The pin on which to create the port. |
ResistorMode | resistorMode | The |
Returns
Type | Description |
---|---|
IDigitalInputPort |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
CreateDigitalOutputPort(IPin, bool, OutputType)
Creates an IDigitalOutputPort on the specified pin.
Declaration
public IDigitalOutputPort CreateDigitalOutputPort(IPin pin, bool initialState = false, OutputType initialOutputType = OutputType.PushPull)
Parameters
Type | Name | Description |
---|---|---|
IPin | pin | The pin on which to create the port. |
bool | initialState | The default initial state of the port,
either |
OutputType | initialOutputType | Whether the port is initially configured as PushPull or OpenDrain. PushPull by default. |
Returns
Type | Description |
---|---|
IDigitalOutputPort |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Declaration
public void Dispose()
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
Dispose(bool)
Dispose of the object
Declaration
protected virtual void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
bool | disposing | Is disposing |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
GetPin(string)
Represents a PCA9671 I2C IO Expander
Declaration
public IPin GetPin(string pinName)
Parameters
Type | Name | Description |
---|---|---|
string | pinName |
Returns
Type | Description |
---|---|
IPin |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
GetState(IPin)
Retrieves the state of a pin
Declaration
public bool GetState(IPin pin)
Parameters
Type | Name | Description |
---|---|---|
IPin | pin | The pin to query |
Returns
Type | Description |
---|---|
bool |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
IsValidPin(IPin)
Represents a PCA9671 I2C IO Expander
Declaration
protected bool IsValidPin(IPin pin)
Parameters
Type | Name | Description |
---|---|---|
IPin | pin |
Returns
Type | Description |
---|---|
bool |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
ReadState()
Reads the peripheral state register
Declaration
protected ushort ReadState()
Returns
Type | Description |
---|---|
ushort |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
Reset()
Resets the peripheral
Declaration
public void Reset()
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
SetState(IPin, bool)
Sets the state of a pin
Declaration
public void SetState(IPin pin, bool state)
Parameters
Type | Name | Description |
---|---|---|
IPin | pin | The pin to affect |
bool | state | True to set the pin state high, False to set it low |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}
WriteState(ushort)
Writes the peripheral state register
Declaration
protected void WriteState(ushort state)
Parameters
Type | Name | Description |
---|---|---|
ushort | state |
Remarks
Pca9671 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
Code Example
private Pca9671 pca;
public override Task Initialize()
{
pca = new Pca9671(Device.CreateI2cBus(), 0x20, Device.Pins.D01);
return base.Initialize();
}
public override Task Run()
{
while (true)
{
//TestBulkDigitalOutputPortWrites(20);
TestDigitalOutputPorts(2);
}
}
private void TestDigitalOutputPorts(int loopCount)
{
var out00 = pca.CreateDigitalOutputPort(pca.Pins.R00);
var out01 = pca.CreateDigitalOutputPort(pca.Pins.R01);
var out02 = pca.CreateDigitalOutputPort(pca.Pins.R02);
var out03 = pca.CreateDigitalOutputPort(pca.Pins.R03);
var out04 = pca.CreateDigitalOutputPort(pca.Pins.R04);
var out05 = pca.CreateDigitalOutputPort(pca.Pins.R05);
var out06 = pca.CreateDigitalOutputPort(pca.Pins.R06);
var out07 = pca.CreateDigitalOutputPort(pca.Pins.R07);
var out08 = pca.CreateDigitalOutputPort(pca.Pins.R08);
var out09 = pca.CreateDigitalOutputPort(pca.Pins.R09);
var out10 = pca.CreateDigitalOutputPort(pca.Pins.R10);
var out11 = pca.CreateDigitalOutputPort(pca.Pins.R11);
var out12 = pca.CreateDigitalOutputPort(pca.Pins.R12);
var out13 = pca.CreateDigitalOutputPort(pca.Pins.R13);
var out14 = pca.CreateDigitalOutputPort(pca.Pins.R14);
var out15 = pca.CreateDigitalOutputPort(pca.Pins.R15);
var outputPorts = new List<IDigitalOutputPort>()
{
out00, out01, out02, out03, out04, out05, out06, out07,
out08, out09, out10, out11, out12, out13, out14, out15
};
foreach (var outputPort in outputPorts)
{
outputPort.State = true;
}
for (int l = 0; l < loopCount; l++)
{
// loop through all the outputs
for (int i = 0; i < outputPorts.Count; i++)
{
// turn them all off
pca.AllOff();
// turn on just one
outputPorts[i].State = true;
Thread.Sleep(250);
}
}
// cleanup
for (int i = 0; i < outputPorts.Count; i++)
{
outputPorts[i].Dispose();
}
}