/** * Set the tracker's measurement mode. * * @param mode must be one of: "ADM", "IFM", "IFM set by ADM" * @return confirmation that the mode was changed * @throws TrackerException thrown if not connected */ String setMeasureMode(TrackerMeasureMode mode) throws TrackerException { if (mode == null) throw new NullPointerException("New measurement mode is null."); isConnected(); switch (mode) { case IFM: trk.changeDistanceMeasureMode(new InterferometerOnly()); Bookkeeper.getInstance().setTrkMeasmode(TrackerMeasureMode.IFM); break; case ADM: trk.changeDistanceMeasureMode(new ADMOnly()); Bookkeeper.getInstance().setTrkMeasmode(TrackerMeasureMode.ADM); break; case IFMBYADM: trk.changeDistanceMeasureMode(new InterferometerSetByADM()); Bookkeeper.getInstance().setTrkMeasmode(TrackerMeasureMode.IFMBYADM); break; default: assert false; // There are only three measurement modes. } return "Measure mode set to: " + mode + ".\n"; }