@Override public boolean load(Document doc) { super.load(doc); Node node; node = doc.selectSingleNode("//depth"); if (node != null) { setZ(Double.parseDouble(node.getText())); if (getZ() >= 0) setZUnits(Z_UNITS.DEPTH); else { setZUnits(Z_UNITS.ALTITUDE); setZ(-getZ()); } } node = doc.selectSingleNode("//height"); if (node != null) { setZUnits(Z_UNITS.HEIGHT); setZ(Double.parseDouble(node.getText())); } node = doc.selectSingleNode("//altitude"); if (node != null) { setZUnits(Z_UNITS.ALTITUDE); setZ(Double.parseDouble(node.getText())); } node = doc.selectSingleNode("//z"); if (node != null) setZ(Double.parseDouble(node.getText())); node = doc.selectSingleNode("//zunits"); if (node != null) setZUnits(Z_UNITS.valueOf(node.getText())); return true; }
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; }
public void setZ(DesiredZ desiredZ) { if (desiredZ == null) { reference.setFlags((short) (reference.getFlags() ^ Reference.FLAG_Z)); reference.setZ(null); loc.setZUnits(ManeuverLocation.Z_UNITS.NONE); zUnits = ManeuverLocation.Z_UNITS.NONE; } else { reference.setZ(new DesiredZ((float) desiredZ.getValue(), desiredZ.getZUnits())); reference.setFlags((short) (reference.getFlags() | Reference.FLAG_Z)); loc.setZ(desiredZ.getValue()); loc.setZUnits(ManeuverLocation.Z_UNITS.valueOf(desiredZ.getZUnits().name())); zUnits = loc.getZUnits(); z = loc.getZ(); } }
public ManeuverLocation clone() { ManeuverLocation loc = new ManeuverLocation(); loc.setLocation(this); loc.setZ(getZ()); loc.setZUnits(getZUnits()); return loc; }
public static void main(String[] args) { ManeuverLocation loc = new ManeuverLocation(); loc.setZ(10); loc.setZUnits(Z_UNITS.ALTITUDE); String xml = loc.asXML(); ManeuverLocation loc2 = new ManeuverLocation(); loc2.load(xml); NeptusLog.pub().info("<###> " + loc2.asXML()); }
@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; } }
@Override public void propertiesChanged() { loc.setZ(z); loc.setZUnits(zUnits); reference = new Reference(); if (loiter) reference.setRadius(loiterRadius); reference.setLat(loc.getLatitudeAsDoubleValueRads()); reference.setLon(loc.getLongitudeAsDoubleValueRads()); if (loc.getZUnits() != ManeuverLocation.Z_UNITS.NONE) reference.setZ(new DesiredZ((float) loc.getZ(), Z_UNITS.valueOf(loc.getZUnits().name()))); if (defineSpeed) reference.setSpeed(new DesiredSpeed(speed, speedUnits)); reference.setFlags( (short) (Reference.FLAG_LOCATION | (defineSpeed ? Reference.FLAG_SPEED : 0) | (loc.getZUnits() != ManeuverLocation.Z_UNITS.NONE ? Reference.FLAG_Z : 0) | (loiter ? Reference.FLAG_RADIUS : 0))); }