public void scanPorts() { List <XsPortInfo> scannedDevicesSet = new List <XsPortInfo>(); XsPortInfoArray scannedDevices = XsScanner.scanPorts(); // Check if we found new devices. for (uint i = 0; i < scannedDevices.size(); i++) { XsPortInfo port = scannedDevices.at(i); scannedDevicesSet.Add(port); if (!findPortInfo(port)) { if (port.deviceId().isWirelessMaster()) { if (WirelessMasterDetected != null) { WirelessMasterDetected(this, new PortInfoArg(port)); } } else if (port.deviceId().isMtw()) { if (DockedMtwDetected != null) { DockedMtwDetected(this, new PortInfoArg(port)); } } } } // Check if we have lost devices (that are not opened already). foreach (XsPortInfo portD in _DetectedDevices) { bool found = false; String did = portD.deviceId().toXsString().toString(); foreach (XsPortInfo portS in scannedDevicesSet) { if (portS.deviceId().toXsString().toString() == portD.deviceId().toXsString().toString()) { found = true; } } if (!found) { if (portD.deviceId().isMtw() && MtwUndocked != null) { MtwUndocked(this, new PortInfoArg(portD)); } } } _DetectedDevices = scannedDevicesSet; }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(XsScanner obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }