/// <summary> /// Scans the I2C bus. /// </summary> /// <returns>QUantity of modules scanned.</returns> public virtual int ScanBus() { RescanPending = true; ClearModules(); byte[] moduleList = new byte[0x78]; int iNbModules = Biccp.BICCP_ScanBus(ref moduleList); int i = 0; for (byte l = 0; l < 0x78; l++) { if (moduleList[l] > 0) { var ccMod = GetModuleIdent(l); if (ccMod == null) { System.Threading.Thread.Sleep(10); ccMod = GetModuleIdent(l); } if (ccMod != null) { ccMod.ID = l; Modules.Add(l, ccMod); } else { ccMod = ModuleFactory.CreateInstance(ICCConstants.BICCP_GRP_UNKNOWN); ccMod.ID = l; Modules.Add(l, ccMod); } i++; } } RaiseBusRescanned(); RescanPending = false; return(i); }