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; }
@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; } }