/// <summary> /// Main entry point /// </summary> /// <param name="args">Unused</param> public static void Main(string[] args) { Console.WriteLine("Hello I2C, SPI and GPIO FTFI! FT4222"); Console.WriteLine("Select the test you want to run:"); Console.WriteLine(" 1 Run I2C tests with a BNO055"); Console.WriteLine(" 2 Run SPI tests with a simple HC595 with led blinking on all ports"); Console.WriteLine(" 3 Run GPIO tests with a simple led blinking on GPIO2 port and reading the port"); Console.WriteLine(" 4 Run callback test event on GPIO2 on Failing and Rising"); var key = Console.ReadKey(); Console.WriteLine(); var devices = FtCommon.GetDevices(); Console.WriteLine($"{devices.Count} FT4222 elements found"); foreach (var device in devices) { Console.WriteLine($"Description: {device.Description}"); Console.WriteLine($"Flags: {device.Flags}"); Console.WriteLine($"Id: {device.Id}"); Console.WriteLine($"Location Id: {device.LocId}"); Console.WriteLine($"Serial Number: {device.SerialNumber}"); Console.WriteLine($"Device type: {device.Type}"); } var(chip, dll) = FtCommon.GetVersions(); Console.WriteLine($"Chip version: {chip}"); Console.WriteLine($"Dll version: {dll}"); if (key.KeyChar == '1') { TestI2c(); } if (key.KeyChar == '2') { TestSpi(); } if (key.KeyChar == '3') { TestGpio(); } if (key.KeyChar == '4') { TestEvents(); } }
private static Pn5180 Ft4222() { var devices = FtCommon.GetDevices(); Console.WriteLine($"{devices.Count} FT4222 elements found"); foreach (var device in devices) { Console.WriteLine($" Description: {device.Description}"); Console.WriteLine($" Flags: {device.Flags}"); Console.WriteLine($" Id: {device.Id}"); Console.WriteLine($" Location Id: {device.LocId}"); Console.WriteLine($" Serial Number: {device.SerialNumber}"); Console.WriteLine($" Device type: {device.Type}"); Console.WriteLine(); } var(chip, dll) = FtCommon.GetVersions(); Console.WriteLine($"Chip version: {chip}"); Console.WriteLine($"Dll version: {dll}"); var ftSpi = new Ft4222Spi(new SpiConnectionSettings(0, 1) { ClockFrequency = Pn5180.MaximumSpiClockFrequency, Mode = Pn5180.DefaultSpiMode, DataFlow = DataFlow.MsbFirst }); var gpioController = new GpioController(PinNumberingScheme.Board, new Ft4222Gpio()); // REset the device gpioController.OpenPin(0, PinMode.Output); gpioController.Write(0, PinValue.Low); Thread.Sleep(10); gpioController.Write(0, PinValue.High); Thread.Sleep(10); return(new Pn5180(ftSpi, 2, 3, gpioController, true)); }