test_class.declarator: IGNORE = 0b0
test_class.modifier: private
test_class.original_string: private byte IGNORE = 0b0;
test_class.type: byte
test_class.var_name: IGNORE
test_class.declarator: TEST_ACCELERATION_PACKET = new byte[] {IGNORE, -102, -1,  86, -3, -52, 96, 11}
test_class.modifier: private
test_class.original_string: private byte[] TEST_ACCELERATION_PACKET = new byte[] {IGNORE, -102, -1,  86, -3, -52, 96, 11};
test_class.type: byte[]
test_class.var_name: TEST_ACCELERATION_PACKET
test_class.declarator: TEST_MAGNETIC_PACKET =     new byte[] {IGNORE,   48, 31, -43, -7, -56, 62, 1}
test_class.modifier: private
test_class.original_string: private byte[] TEST_MAGNETIC_PACKET =     new byte[] {IGNORE,   48, 31, -43, -7, -56, 62, 1};
test_class.type: byte[]
test_class.var_name: TEST_MAGNETIC_PACKET
test_class.declarator: ALLOWED_DELTA = 80
test_class.modifier: private static final
test_class.original_string: private static final double ALLOWED_DELTA = 80;
test_class.type: double
test_class.var_name: ALLOWED_DELTA
test_class.file: app/src/test/java/org/hwyl/sexytopo/comms/CalibrationProtocolTest.java
test_class.identifier: CalibrationProtocolTest
test_case.body: @Test
      public void testReadDoubleByteGz() {
          double result = CalibrationProtocol.readDoubleByte(
                  TEST_ACCELERATION_PACKET,
                  CalibrationProtocol.ACCELERATION_GZ_LOW_BYTE,
                  CalibrationProtocol.ACCELERATION_GZ_HIGH_BYTE);
          Assert.assertEquals(24785, result, ALLOWED_DELTA);
      }
test_case.class_method_signature: CalibrationProtocolTest.testReadDoubleByteGz()
test_case.full_signature: @Test public void testReadDoubleByteGz()
test_case.identifier: testReadDoubleByteGz
test_case.invocations: readDoubleByte assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testReadDoubleByteGz()
focal_class.declarator: ACCELERATION_ADMIN = 0
focal_class.modifier: public static final
focal_class.original_string: public static final int ACCELERATION_ADMIN = 0;
focal_class.type: int
focal_class.var_name: ACCELERATION_ADMIN
focal_class.declarator: ACCELERATION_GX_LOW_BYTE = 1
focal_class.modifier: public static final
focal_class.original_string: public static final int ACCELERATION_GX_LOW_BYTE = 1;
focal_class.type: int
focal_class.var_name: ACCELERATION_GX_LOW_BYTE
focal_class.declarator: ACCELERATION_GX_HIGH_BYTE = 2
focal_class.modifier: public static final
focal_class.original_string: public static final int ACCELERATION_GX_HIGH_BYTE = 2;
focal_class.type: int
focal_class.var_name: ACCELERATION_GX_HIGH_BYTE
focal_class.declarator: ACCELERATION_GY_LOW_BYTE = 3
focal_class.modifier: public static final
focal_class.original_string: public static final int ACCELERATION_GY_LOW_BYTE = 3;
focal_class.type: int
focal_class.var_name: ACCELERATION_GY_LOW_BYTE
focal_class.declarator: ACCELERATION_GY_HIGH_BYTE = 4
focal_class.modifier: public static final
focal_class.original_string: public static final int ACCELERATION_GY_HIGH_BYTE = 4;
focal_class.type: int
focal_class.var_name: ACCELERATION_GY_HIGH_BYTE
focal_class.declarator: ACCELERATION_GZ_LOW_BYTE = 5
focal_class.modifier: public static final
focal_class.original_string: public static final int ACCELERATION_GZ_LOW_BYTE = 5;
focal_class.type: int
focal_class.var_name: ACCELERATION_GZ_LOW_BYTE
focal_class.declarator: ACCELERATION_GZ_HIGH_BYTE = 6
focal_class.modifier: public static final
focal_class.original_string: public static final int ACCELERATION_GZ_HIGH_BYTE = 6;
focal_class.type: int
focal_class.var_name: ACCELERATION_GZ_HIGH_BYTE
focal_class.declarator: ACCELERATION_NOT_USED = 7
focal_class.modifier: public static final
focal_class.original_string: public static final int ACCELERATION_NOT_USED = 7;
focal_class.type: int
focal_class.var_name: ACCELERATION_NOT_USED
focal_class.declarator: MAGNETIC_ADMIN = 0
focal_class.modifier: public static final
focal_class.original_string: public static final int MAGNETIC_ADMIN = 0;
focal_class.type: int
focal_class.var_name: MAGNETIC_ADMIN
focal_class.declarator: MAGNETIC_MX_LOW_BYTE = 1
focal_class.modifier: public static final
focal_class.original_string: public static final int MAGNETIC_MX_LOW_BYTE = 1;
focal_class.type: int
focal_class.var_name: MAGNETIC_MX_LOW_BYTE
focal_class.declarator: MAGNETIC_MX_HIGH_BYTE = 2
focal_class.modifier: public static final
focal_class.original_string: public static final int MAGNETIC_MX_HIGH_BYTE = 2;
focal_class.type: int
focal_class.var_name: MAGNETIC_MX_HIGH_BYTE
focal_class.declarator: MAGNETIC_MY_LOW_BYTE = 3
focal_class.modifier: public static final
focal_class.original_string: public static final int MAGNETIC_MY_LOW_BYTE = 3;
focal_class.type: int
focal_class.var_name: MAGNETIC_MY_LOW_BYTE
focal_class.declarator: MAGNETIC_MY_HIGH_BYTE = 4
focal_class.modifier: public static final
focal_class.original_string: public static final int MAGNETIC_MY_HIGH_BYTE = 4;
focal_class.type: int
focal_class.var_name: MAGNETIC_MY_HIGH_BYTE
focal_class.declarator: MAGNETIC_MZ_LOW_BYTE = 5
focal_class.modifier: public static final
focal_class.original_string: public static final int MAGNETIC_MZ_LOW_BYTE = 5;
focal_class.type: int
focal_class.var_name: MAGNETIC_MZ_LOW_BYTE
focal_class.declarator: MAGNETIC_MZ_HIGH_BYTE = 6
focal_class.modifier: public static final
focal_class.original_string: public static final int MAGNETIC_MZ_HIGH_BYTE = 6;
focal_class.type: int
focal_class.var_name: MAGNETIC_MZ_HIGH_BYTE
focal_class.declarator: MAGNETIC_NOT_USED = 7
focal_class.modifier: public static final
focal_class.original_string: public static final int MAGNETIC_NOT_USED = 7;
focal_class.type: int
focal_class.var_name: MAGNETIC_NOT_USED
focal_class.declarator: calibrationReading = null
focal_class.modifier: private
focal_class.original_string: private CalibrationReading calibrationReading = null;
focal_class.type: CalibrationReading
focal_class.var_name: calibrationReading
focal_class.declarator: accelerationDuplicated = 0
focal_class.modifier: private
focal_class.original_string: private int accelerationDuplicated = 0, magneticDuplicated = 0;
focal_class.type: int
focal_class.var_name: accelerationDuplicated
focal_class.file: app/src/main/java/org/hwyl/sexytopo/comms/CalibrationProtocol.java
focal_class.identifier: CalibrationProtocol
focal_class.class_method_signature: CalibrationProtocol.CalibrationProtocol(
              SexyTopoActivity activity, BluetoothDevice bluetoothDevice, SurveyManager dataManager)
focal_class.full_signature: public  CalibrationProtocol(
              SexyTopoActivity activity, BluetoothDevice bluetoothDevice, SurveyManager dataManager)
focal_class.identifier: CalibrationProtocol
focal_class.modifiers: public
focal_class.parameters: (
              SexyTopoActivity activity, BluetoothDevice bluetoothDevice, SurveyManager dataManager)
focal_class.signature:  CalibrationProtocol(
              SexyTopoActivity activity, BluetoothDevice bluetoothDevice, SurveyManager dataManager)
focal_class.class_method_signature: CalibrationProtocol.go(DataInputStream inStream, DataOutputStream outStream)
focal_class.full_signature: @Override public void go(DataInputStream inStream, DataOutputStream outStream)
focal_class.identifier: go
focal_class.modifiers: @Override public
focal_class.parameters: (DataInputStream inStream, DataOutputStream outStream)
focal_class.return: void
focal_class.signature: void go(DataInputStream inStream, DataOutputStream outStream)
focal_class.class_method_signature: CalibrationProtocol.checkExcessiveDuplication(
              int count, DataInputStream inStream, DataOutputStream outStream)
focal_class.full_signature: private void checkExcessiveDuplication(
              int count, DataInputStream inStream, DataOutputStream outStream)
focal_class.identifier: checkExcessiveDuplication
focal_class.modifiers: private
focal_class.parameters: (
              int count, DataInputStream inStream, DataOutputStream outStream)
focal_class.return: void
focal_class.signature: void checkExcessiveDuplication(
              int count, DataInputStream inStream, DataOutputStream outStream)
focal_class.class_method_signature: CalibrationProtocol.updateAccelerationSensorReading(byte[] packet, CalibrationReading reading)
focal_class.full_signature: private static void updateAccelerationSensorReading(byte[] packet, CalibrationReading reading)
focal_class.identifier: updateAccelerationSensorReading
focal_class.modifiers: private static
focal_class.parameters: (byte[] packet, CalibrationReading reading)
focal_class.return: void
focal_class.signature: void updateAccelerationSensorReading(byte[] packet, CalibrationReading reading)
focal_class.class_method_signature: CalibrationProtocol.updateMagneticSensorReading(byte[] packet, CalibrationReading reading)
focal_class.full_signature: private static void updateMagneticSensorReading(byte[] packet, CalibrationReading reading)
focal_class.identifier: updateMagneticSensorReading
focal_class.modifiers: private static
focal_class.parameters: (byte[] packet, CalibrationReading reading)
focal_class.return: void
focal_class.signature: void updateMagneticSensorReading(byte[] packet, CalibrationReading reading)
focal_class.class_method_signature: CalibrationProtocol.readDoubleByte(byte[] packet, int lowByteIndex, int highByteIndex)
focal_class.full_signature: public static int readDoubleByte(byte[] packet, int lowByteIndex, int highByteIndex)
focal_class.identifier: readDoubleByte
focal_class.modifiers: public static
focal_class.parameters: (byte[] packet, int lowByteIndex, int highByteIndex)
focal_class.return: int
focal_class.signature: int readDoubleByte(byte[] packet, int lowByteIndex, int highByteIndex)
focal_class.superclass: extends DistoXProtocol
focal_method.body: public static int readDoubleByte(byte[] packet, int lowByteIndex, int highByteIndex) {
          int low = packet[lowByteIndex] & 0xff;
          int high = packet[highByteIndex] & 0xff;
          int combined = (high * 256) + low;
  
          if (combined > 32768)
              combined -= 65536;
  
          return combined;
      }
focal_method.class_method_signature: CalibrationProtocol.readDoubleByte(byte[] packet, int lowByteIndex, int highByteIndex)
focal_method.full_signature: public static int readDoubleByte(byte[] packet, int lowByteIndex, int highByteIndex)
focal_method.identifier: readDoubleByte
focal_method.modifiers: public static
focal_method.parameters: (byte[] packet, int lowByteIndex, int highByteIndex)
focal_method.return: int
focal_method.signature: int readDoubleByte(byte[] packet, int lowByteIndex, int highByteIndex)