public ModernRoboticsI2cGyro(
     final DeviceInterfaceModule deviceInterfaceModule, final int physicalPort) {
   this.a = 32;
   this.b = deviceInterfaceModule;
   this.g = physicalPort;
   this.c = deviceInterfaceModule.getI2cReadCache(physicalPort);
   this.d = deviceInterfaceModule.getI2cReadCacheLock(physicalPort);
   this.e = deviceInterfaceModule.getI2cWriteCache(physicalPort);
   this.f = deviceInterfaceModule.getI2cWriteCacheLock(physicalPort);
   this.h = HeadingMode.HEADING_CARDINAL;
   deviceInterfaceModule.enableI2cReadMode(physicalPort, 32, 0, 18);
   deviceInterfaceModule.setI2cPortActionFlag(physicalPort);
   deviceInterfaceModule.writeI2cCacheToController(physicalPort);
   deviceInterfaceModule.registerForI2cPortReadyCallback(
       (I2cController.I2cPortReadyCallback) this, physicalPort);
   this.transactionQueue = new ConcurrentLinkedQueue<GyroI2cTransaction>();
   this.j = new a();
   this.i = MeasurementMode.GYRO_NORMAL;
 }