Subversion Repositories Projects

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

/*********************************************
 *                                            
 * class representing the DebugData Structure
 *                                            
 * Author:        Marcus -LiGi- Bueschleb    
 *
 * see README for further Infos
 *
 ********************************************/


public class MKGPSPosition

{

    public final static int MAX_WAYPOINTS=100;

    int[] LongWP;
    int[] LatWP;

    int last_wp=0;


    int Longitude;
    int Latitude;

    int TargetLongitude;
    int TargetLatitude;

    int Distance2Target;
    int Angle2Target;

    byte Used_Sat;


    public void push_wp()
    {
        LongWP[last_wp]=Longitude;
        LatWP[last_wp]=Latitude;
        last_wp++;
    }


    public String dec_to_min_sec(int val)
    {
        return "" +  val/10000000 + "^" +  ((val%10000000)*60)/10000000 + "'" + ((((val%10000000)*60)%10000000)*60)/10000000 +  "." + ((((val%10000000)*60)%10000000)*60)%10000000;
    }


    public String WP_Latitude_min_sec(int id)
    {
       
        return "" +  dec_to_min_sec(LatWP[id])+ "''N"  ;
    }

    public String WP_Longitude_min_sec(int id)
    {
        return "" +  dec_to_min_sec(LongWP[id])+ "''E"  ;

    }



    public String Latitude_min_sec()
    {
       
        return "" +  dec_to_min_sec(Latitude)+ "''N"  ;
    }

    public String Longitude_min_sec()
    {
        return "" +  dec_to_min_sec(Longitude)+ "''E"  ;

    }

    public String Latitude_str()
    {
        return "" + Latitude/10000000 + "." +Latitude%10000000  ;
    }

    public String Longitude_str()
    {
        return "" + Longitude/10000000 + "." +Longitude%10000000  ;
    }

    public MKGPSPosition()
    {

        LongWP=new int[MAX_WAYPOINTS];
        LatWP=new int[MAX_WAYPOINTS];

    }

    private int parse_arr(int offset,int[] in_arr)
    {
        return ((in_arr[offset+3]<<24) |
                (in_arr[offset+2]<<16) |
                (in_arr[offset+1]<<8)  |
                (in_arr[offset+0]));
    }

    public void set_by_mk_data(int[] in_arr,MKVersion version)
    {
        Longitude=parse_arr(0,in_arr);
        Latitude=parse_arr(4,in_arr);

        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];

    }



}