private MotionControllerDevice FindScannerDevice(MotionControllerDevice[] motionControllerDevices, MotionControllerDevice device) { MotionControllerDevice result = null; foreach (var scannerDevice in motionControllerDevices) { if (scannerDevice.Equals(device)) { result = scannerDevice; break; } } return(result); }
private async Task <List <MotionControllerDevice> > GetDevices(string familyName) { var result = new List <MotionControllerDevice>(); var protocolStackNames = GetProtocolStackNames(familyName); var scanningSettings = _settings.Scanning; foreach (var protocolStackName in protocolStackNames) { if (scanningSettings.Skip.SkipProtocolStack(protocolStackName)) { MsgLogger.WriteDebug($"{GetType().Name} - method", $"skip protocol stack name: {protocolStackName}"); continue; } var interfaceNames = GetProtocolInterfaceNames(familyName, protocolStackName); foreach (var interfaceName in interfaceNames) { if (scanningSettings.Skip.SkipInterface(interfaceName)) { MsgLogger.WriteDebug($"{GetType().Name} - method", $"skip interface name: {interfaceName}"); continue; } var portNames = await GetPortNamesAsync(familyName, protocolStackName, interfaceName); foreach (var portName in portNames) { var device = new MotionControllerDevice(familyName, "" /*TODO*/, 1) { ProtocolStackName = protocolStackName, InterfaceName = interfaceName, Family = familyName, PortName = portName }; if (FindScannerDevice(result.ToArray(), device) == null) { result.Add(device); } } } } return(result); }