Subversion Repositories Projects

Rev

Rev 206 | Rev 223 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

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


package org.ligi.ufo;

public class MKDebugData
{

    public int[] analog;
    public String[] names;
    public boolean[] got_name;
    public int motor_complete=-1;

   
    private int i;

    public int motor_val(int id) {      return analog[12+id];    }
    public int nick_int() {     return analog[0];    }
    public int roll_int() {     return analog[1];    }
    public int accnick() {      return analog[2];    }
    public int accroll() {      return analog[3];    }


    public int UBatt() {        return analog[9];    }
    public int SenderOkay() {   return analog[10];    }


   

    public MKDebugData()
    {
        names=new String[32];
        analog=new int[32];
        got_name=new boolean[32];
        for (i=0;i<32;i++)
            {
            analog[i]=-1;
            names[i]="-#"+i+"->";
            got_name[i]=false;
            }

    }

    public void set_names_by_mk_data(int[] in_arr)
    {
        int id=in_arr[0];
        names[id]="";
        for (i=0;i<16;i++)
            {
                if ((char)in_arr[i+1]!=' ')
                    names[id]+=(char)in_arr[i+1];
                got_name[id]=true;
            }
        names[id]+=":";
    }

    public int parse_signed_int_2(int i1,int i2)
    {
        int res=(int)((i2<<8)|i1);
        if ((res&(1<<15))!=0)
            return -(res&(0xFFFF-1))^(0xFFFF-1);
        else
            return res;

    }
    public void set_by_mk_data(int[] in_arr,MKVersion version)
    {

        for (i=0;i<32;i++)
            //      {
                analog[i]=parse_signed_int_2( in_arr[2+i*2], in_arr[3+i*2] );
                    //(int)((in_arr[3+i*2]<<8) | in_arr[2+i*2]);
                    //          if ((analog[i]&(1<<15))!=0)
                    //analog[i]=-(analog[i]&(0xFFFF-1))^(0xFFFF-1);
        //          }
   
        motor_complete=motor_val(0)+motor_val(1)+motor_val(2)+motor_val(3);


    }



}