private void btnRangefinder_Click(object sender, EventArgs e) { openPort(); byte[] w = { HCSR04_I2C_REGISTRY_STATUS }; byte[] r = new byte[3]; i2c.write(w); Thread.Sleep(10); i2c.read(r); txtRangerfinderRegs.Text = DeviceI2C.ByteArrayToString(r); int range = (((int)r[1]) << 8) + (int)r[2]; txtRangefinderDistance.Text = range.ToString(); }
private void btnRead_Click(object sender, EventArgs e) { string txt = ""; byte[] w = { 0xf3 }; byte[] r = new byte[3]; if (i2c.write(w)) { Thread.Sleep(500); if (i2c.read(r)) { int rawValue = (((int)r[0] << 8) | (int)r[1]) & 0xFFFC; double temp = (rawValue * 175.72 / 65536 - 46.85); txt = temp.ToString(); } else { txt = "read timeout"; } } else { txt = "write failed"; } labelTemp.Text = txt; }
private void btnWrite_Click(object sender, EventArgs e) { byte[] w = DeviceI2C.StringToByteArray(txtWrite.Text); i2c.SlaveAddress = getAddr(); i2c.write(w); }