private int _ConnectDevice() { int port, bitrate; if (iHandle > 0) { return(1); } port = Convert.ToInt32(tbPort.Text); if ((port <= 0) && (port > 10)) { MessageBox.Show("Port out of range (1 ~ 10)!!"); goto Error; } bitrate = Convert.ToInt32(tbBitrate.Text); if ((bitrate < 10) || (bitrate > 400)) { MessageBox.Show("Bitrate out of range (10 ~ 400)!!"); goto Error; } // Open the device iHandle = AardvarkApi.aa_open(port); if (iHandle <= 0) { MessageBox.Show("Please check I2C adapter connect!!"); goto Error; } // Ensure that the I2C subsystem is enabled AardvarkApi.aa_configure(iHandle, AardvarkConfig.AA_CONFIG_SPI_I2C); // Enable the I2C bus pullup resistors (2.2k resistors). // This command is only effective on v2.0 hardware or greater. // The pullup resistors on the v1.02 hardware are enabled by default. AardvarkApi.aa_i2c_pullup(iHandle, AardvarkApi.AA_I2C_PULLUP_BOTH); // Set the bitrate bitrate = AardvarkApi.aa_i2c_bitrate(iHandle, bitrate); tbPort.ReadOnly = true; tbBitrate.ReadOnly = true; cbConnectState.Checked = true; return(0); Error: if (_DisconnectDevice() < 0) { MessageBox.Show("_DisconnectDevice() fail!!"); } return(-1); }
private int _WaitTriggerAndDelay() { int port, bitrate, delay; byte bTmp; AardvarkApi.AardvarkExt aaExt = new AardvarkApi.AardvarkExt(); port = Convert.ToInt32(tbPort.Text); if ((port <= 0) && (port > 10)) { MessageBox.Show("Port out of range (1 ~ 10)!!"); return(-1); } bitrate = Convert.ToInt32(tbBitrate.Text); if ((bitrate < 10) || (bitrate > 400)) { MessageBox.Show("Bitrate out of range (10 ~ 400)!!"); return(-1); } delay = Convert.ToInt32(tbTriggerDelay.Text); iHandle = AardvarkApi.aa_open_ext(0, ref aaExt); if (iHandle <= 0) { MessageBox.Show("Unable to open Aardvark device on port 0"); return(-1); } AardvarkApi.aa_configure(iHandle, AardvarkConfig.AA_CONFIG_GPIO_ONLY); AardvarkApi.aa_i2c_pullup(iHandle, AardvarkApi.AA_I2C_PULLUP_NONE); AardvarkApi.aa_gpio_set(iHandle, 0x00); do { bTmp = (byte)AardvarkApi.aa_gpio_get(iHandle); } while (bTmp != 3); AardvarkApi.aa_i2c_pullup(iHandle, AardvarkApi.AA_I2C_PULLUP_BOTH); AardvarkApi.aa_configure(iHandle, AardvarkConfig.AA_CONFIG_SPI_I2C); bitrate = AardvarkApi.aa_i2c_bitrate(iHandle, bitrate); tbPort.ReadOnly = true; tbBitrate.ReadOnly = true; cbConnectState.Checked = true; System.Threading.Thread.Sleep(delay); return(0); }