private synchronized void interpretRawSensorData() {
        int sensorDataIndex = 0;
        rawSensorData.remove(0); //The header
        rawSensorData.remove(0); //The n-bytes field
        for (SensorPacket s : sensorPacketsRequested) {
            rawSensorData.remove(0); //The packet ID field
            sensorData[sensorDataIndex] = 0;
            for (int i = 0; i < s.length(); i++) {
                sensorData[sensorDataIndex] *= 256;
                sensorData[sensorDataIndex] += rawSensorData.remove(0);
            }
            if (s.signed() && (sensorData[sensorDataIndex] >= 1 << (8 * s.length() - 1))) {
                sensorData[sensorDataIndex] -= 1 << (8 * s.length());
            }
            sensorDataIndex++;
        }
        rawSensorData.remove(0); //The checksum
    }