private int _ConnectDevice() { uint index, bitRate; var sbVersion = new StringBuilder(10); string version; int result; ushort[] deviceIndex = new ushort[16]; string[] deviceSerialNumber = new string[16]; version = Mcp2221Api.Mcp2221GetLibraryVersionApi(); if (!version.Equals("2.2b")) { MessageBox.Show("MCP2221 library: " + sbVersion.ToString() + " != 2.2b !!"); goto error; } Mcp2221Api.Mcp2221FindDevicesExtApi(16, deviceIndex, 16, deviceSerialNumber); if (mcp2221Adapter != IntPtr.Zero) { return(0); } if (Mcp2221Api.Mcp2221GetConnectedDevicesApi() < 0) { goto error; } uint.TryParse(tbBitrate.Text, out bitRate); bitRate = bitRate * 1000; if ((bitRate < 46875) || (bitRate > 500000)) { MessageBox.Show("bitRate out of range: " + bitRate); goto error; } uint.TryParse(tbPort.Text, out index); mcp2221Adapter = Mcp2221Api.Mcp2221OpenByIndexApi(index); if (mcp2221Adapter == IntPtr.Zero) { goto error; } result = Mcp2221Api.Mcp2221SetBitrateApi(mcp2221Adapter, bitRate); if (result < 0) { MessageBox.Show("Mcp2221_SetSpeed() fail: " + result); goto error; } return(0); error: return(-1); }