public ReferenceWaypoint(Reference ref) {
    try {
      this.reference = Reference.clone(ref);
    } catch (Exception e) {
      e.printStackTrace();
    }

    loc = new ManeuverLocation();
    loc.setLatitudeRads(ref.getLat());
    loc.setLongitudeRads(ref.getLon());
    if (ref.getZ() != null) {
      loc.setZ(ref.getZ().getValue());
      loc.setZUnits(ManeuverLocation.Z_UNITS.valueOf(ref.getZ().getZUnits().name()));
    }
    boolean defineZ = (ref.getFlags() & Reference.FLAG_Z) != 0;
    if (!defineZ) loc.setZUnits(ManeuverLocation.Z_UNITS.NONE);

    loiter = (ref.getFlags() & Reference.FLAG_RADIUS) != 0;
    this.loiterRadius = ref.getRadius();

    this.latitude = loc.getLatitudeAsDoubleValue();
    this.longitude = loc.getLongitudeAsDoubleValue();
    this.z = loc.getZ();
    this.zUnits = loc.getZUnits();
    if (ref.getSpeed() != null) {
      this.speedUnits = ref.getSpeed().getSpeedUnits();
      this.speed = ref.getSpeed().getValue();
    }
    defineSpeed = (ref.getFlags() & Reference.FLAG_SPEED) != 0;
  }
Esempio n. 2
0
  @Override
  public void parseIMCMessage(IMCMessage message) {
    if (!DEFAULT_ROOT_ELEMENT.equalsIgnoreCase(message.getAbbrev())) return;
    pt.lsts.imc.Elevator elev = null;
    try {
      elev = pt.lsts.imc.Elevator.clone(message);
    } catch (Exception e) {
      e.printStackTrace();
      return;
    }

    setMaxTime(elev.getTimeout());
    ManeuverLocation loc = new ManeuverLocation();
    loc.setLatitudeRads(elev.getLat());
    loc.setLongitudeRads(elev.getLon());
    loc.setZ(elev.getEndZ());
    NeptusLog.pub().info("<###> " + elev.getEndZUnits());
    //
    // loc.setZUnits(pt.lsts.neptus.mp.ManeuverLocation.Z_UNITS.valueOf(elev.getEndZUnits().toString()));
    loc.setZUnits(ManeuverLocation.Z_UNITS.valueOf(message.getString("end_z_units").toString()));
    setManeuverLocation(loc);
    startZ = (float) elev.getStartZ();
    startZUnits = ManeuverLocation.Z_UNITS.valueOf(message.getString("start_z_units").toString());
    setRadius((float) elev.getRadius());
    setSpeed(elev.getSpeed());
    setStartFromCurrentPosition((elev.getFlags() & pt.lsts.imc.Elevator.FLG_CURR_POS) != 0);
    setCustomSettings(elev.getCustom());

    switch (elev.getSpeedUnits()) {
      case RPM:
        speedUnits = "RPM";
        break;
      case METERS_PS:
        speedUnits = "m/s";
        break;
      case PERCENTAGE:
        speedUnits = "%";
        break;
      default:
        break;
    }
  }