public SensorData GetData() { lock (bus) { if (rawData == null) { rawData = new Byte[6]; getDataWriteTransaction = I2CDevice.CreateWriteTransaction(new[] { (Byte)RegisterMap.DataX0 }); getDataReadTransaction = I2CDevice.CreateReadTransaction(rawData); getDataTransaction = new I2CDevice.I2CTransaction[] { getDataWriteTransaction, getDataReadTransaction }; } bus.Config = configuration; bus.Execute(getDataTransaction, 50); } // Convert the raw byte data into the raw acceleration data for each axis and convert it into Gs return new SensorData { X = resolutionMultiplier * (short)(rawData[1] << 8 | rawData[0]), Y = resolutionMultiplier * (short)(rawData[3] << 8 | rawData[2]), Z = resolutionMultiplier * (short)(rawData[5] << 8 | rawData[4]) }; }
public void InitializeI2C() { myI2CDeviceConfiguration = new I2CDevice.Configuration(0x0, 0x0); myI2CDevice = new I2CDevice(myI2CDeviceConfiguration); #if false myI2CDeviceRead = new I2CDevice.I2CReadTransaction( ); myI2CDeviceTrans = new I2CDevice.I2CTransaction(); myI2CDeviceWrite = new I2CDevice.I2CWriteTransaction(); #endif }