1,98 → 1,16 |
package dongfang.mkt.frames; |
|
import dongfang.mkt.datatype.GPSBearingAndRange; |
import dongfang.mkt.datatype.GPSPosition; |
|
public class OSDDataResponseFrame extends ResponseFrame { |
|
public static class GPSPosition { |
int longitude; // in 1E-7 degrees. 32 bit signed. |
int latitude; // in 1E-7 degrees. 32 bit signed. |
long altitude; // in mm. 32 bit signed. |
int status; |
public int getLongitude() { |
return longitude; |
} |
public int getLatitude() { |
return latitude; |
} |
public long getAltitude() { |
return altitude; |
} |
public int getStatus() { |
return status; |
} |
public void setLongitude(int longitude) { |
this.longitude = longitude; |
} |
public void setLatitude(int latitude) { |
this.latitude = latitude; |
} |
public void setAltitude(long altitude) { |
this.altitude = altitude; |
} |
public void setStatus(int status) { |
this.status = status; |
} |
|
public String toXML() { |
double latitude = Math.abs(this.latitude); |
String result = "latitude=\"" + latitude/1E7; |
if (this.latitude < 0) result+= "S"; else result+="N"; |
result += "\""; |
double longitude= Math.abs(this.longitude); |
result += " longitude=\"" + longitude/1E7; |
if (this.longitude < 0) result+= "W"; else result+="E"; |
result += "\""; |
return result; |
} |
|
public String toString() { |
double latitude = Math.abs(this.latitude); |
String result = "" + latitude/1E7; |
if (this.latitude < 0) result+= "S"; else result+="N"; |
result += " "; |
double longitude= Math.abs(this.longitude); |
result += "" + longitude/1E7; |
if (this.longitude < 0) result+= "W"; else result+="E"; |
return result; |
} |
} |
|
public static class GPSDistanceAndBearing { |
int distance; // in m/10. 16 bit unsigned. |
int bearing; // in degrees. 16 bit signed. |
public int getDistance() { |
return distance; |
} |
public int getBearing() { |
return bearing; |
} |
public void setDistance(int distance) { |
this.distance = distance; |
} |
public void setBearing(int bearing) { |
this.bearing = bearing; |
} |
public String toXML() { |
String result = "distance=\"" + ((double)this.distance)/10; |
result += "\" bearing=\""; |
result += this.bearing; |
result += "\""; |
return result; |
} |
public String toString() { |
String result = "" + ((double)this.distance)/10; |
result += "m @"; |
result += this.bearing; |
result += "deg"; |
return result; |
} |
} |
|
private int version; |
private GPSPosition currentPosition; |
private GPSPosition targetPosition; |
private GPSDistanceAndBearing currentToTarget; |
private GPSBearingAndRange currentToTarget; |
private GPSPosition homePosition; |
private GPSDistanceAndBearing currentToHome; |
private GPSBearingAndRange currentToHome; |
|
private int waypointIndex; |
private int waypointCount; |
140,13 → 58,13 |
public GPSPosition getTargetPosition() { |
return targetPosition; |
} |
public GPSDistanceAndBearing getCurrentToTarget() { |
public GPSBearingAndRange getCurrentToTarget() { |
return currentToTarget; |
} |
public GPSPosition getHomePosition() { |
return homePosition; |
} |
public GPSDistanceAndBearing getCurrentToHome() { |
public GPSBearingAndRange getCurrentToHome() { |
return currentToHome; |
} |
public int getWaypointIndex() { |
230,13 → 148,13 |
public void setTargetPosition(GPSPosition targetPosition) { |
this.targetPosition = targetPosition; |
} |
public void setCurrentToTarget(GPSDistanceAndBearing currentToTarget) { |
public void setCurrentToTarget(GPSBearingAndRange currentToTarget) { |
this.currentToTarget = currentToTarget; |
} |
public void setHomePosition(GPSPosition homePosition) { |
this.homePosition = homePosition; |
} |
public void setCurrentToHome(GPSDistanceAndBearing currentToHome) { |
public void setCurrentToHome(GPSBearingAndRange currentToHome) { |
this.currentToHome = currentToHome; |
} |
public void setWaypointIndex(int waypointIndex) { |