21,12 → 21,11 |
|
import java.lang.Math; |
public class MKGPSPosition |
implements DUBwiseDefinitions |
{ |
public final byte GPS_FORMAT_DECIMAL=0; |
public final byte GPS_FORMAT_MINSEC=1; |
public final byte GPS_FORMAT_COUNT=2; |
|
byte act_gps_format=GPS_FORMAT_DECIMAL; |
public byte act_gps_format=GPS_FORMAT_DECIMAL; |
public byte act_speed_format=SPEED_FORMAT_KMH; |
|
public final static int MAX_WAYPOINTS=100; |
|
220,10 → 219,10 |
last_wp++; |
} |
|
public void next_gps_format() |
/* public void next_gps_format() |
{ |
act_gps_format=(byte)((act_gps_format+1)%GPS_FORMAT_COUNT); |
} |
}*/ |
|
public String act_gps_format_str(int val) |
{ |
238,6 → 237,32 |
} |
} |
|
|
|
public String act_speed_format_str(int val) |
{ |
switch(act_speed_format) |
{ |
case SPEED_FORMAT_KMH: |
return "" + ((((val*60)/100)*60)/1000) + " km/h"; |
|
case SPEED_FORMAT_MPH: |
return "" + (((((val*60)/100)*60)/1000)*10)/16 + " m/h"; |
|
case SPEED_FORMAT_CMS: |
return "" + val+ " cm/s"; |
|
default: |
return "invalid speed format"; |
} |
} |
|
public String GroundSpeed_str() |
{ |
return act_speed_format_str(GroundSpeed); |
|
} |
|
public String WP_Latitude_str(int id) |
{ |
|
252,7 → 277,6 |
|
public String Latitude_str() |
{ |
|
return act_gps_format_str(Latitude) ; |
} |
|
259,7 → 283,6 |
public String Longitude_str() |
{ |
return act_gps_format_str(Longitude) ; |
|
} |
|
|
275,7 → 298,6 |
|
public String HomeLatitude_str() |
{ |
|
return act_gps_format_str(HomeLatitude) ; |
} |
|
285,8 → 307,6 |
} |
|
|
|
|
// Constructor |
public MKGPSPosition() |
{ |
314,7 → 334,6 |
|
last_wp=0; |
} |
|
private int parse_arr_4(int offset,int[] in_arr) |
{ |
return ((in_arr[offset+3]<<24) | |
323,11 → 342,10 |
(in_arr[offset+0])); |
} |
|
|
private int parse_arr_2(int offset,int[] in_arr) |
{ |
return ((in_arr[offset+1]<<8) | |
(in_arr[offset+0])); |
return (((in_arr[offset+1]&0xFF)<<8) | |
(in_arr[offset+0]&0xFF )); |
} |
|
|
367,6 → 385,7 |
|
UBatt= in_arr[56]; |
|
|
GroundSpeed= parse_arr_2(57,in_arr); |
Heading= parse_arr_2(59,in_arr); |
CompasHeading= parse_arr_2(61,in_arr); |
381,37 → 400,6 |
ErrorCode=in_arr[67]; |
|
|
// ground_speed 54 / 55 |
/* |
if (version.compare(0,11)==version.VERSION_PREVIOUS) |
{ |
|
TargetLongitude=parse_arr(8,in_arr); |
TargetLatitude=parse_arr(12,in_arr); |
Distance2Target=parse_arr(16,in_arr); |
Angle2Target=parse_arr(20,in_arr); |
Used_Sat=(byte)in_arr[24]; |
} |
else |
{ |
|
Longitude=parse_arr(0,in_arr); |
Latitude=parse_arr(4,in_arr); |
|
TargetLongitude=parse_arr(13,in_arr); |
TargetLatitude=parse_arr(17,in_arr); |
|
Distance2Target=-23 ; //parse_arr(16,in_arr); |
Angle2Target=parse_arr(20,in_arr); |
|
WayPointNumber=-1; |
WayPointIndex=-1; |
Used_Sat=(byte)in_arr[24]; |
|
|
|
} |
*/ |
} |
|
|