Example #1
0
  /**
   * 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";
  }