// Get the CFHEADER module at address 0 var cfheader0 = Cfheader.Instances[0]; // Open USB communcation with the CFHEADER module cfheader0.Open(); // Get all possible IO module instances var allIOModules = ((IEnumerable<IIOModule>)cfheader0.AnalogInputModules) .Concat(cfheader0.AnalogOutputModules) .Concat(cfheader0.DigitalInputModules) .Concat(cfheader0.DigitalOutputModules); // Reset the IO module's I²C status so I²C communication will be attempted again on the next call to `Sync`. foreach(var ioModule in allIOModules) { ioModule.AcknowledgeI2cFailure(); } // Test i2c communication for each IO module cfheader0.Sync(); // Identify each IO module whose I²C communication succeeded. foreach(var ioModule in allIOModules) { if (ioModule.I2cStatus == I2cResult.Success) { Console.WriteLine($"Found {ioModule.GetType().Name} at address {ioModule.Address}"); } } // Close USB communication with the CFHEADER module cfheader0.Close();
