Subversion Repositories Projects

Rev

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

/**************************************
 *
 * WatchDog for MK-Connection
 *                      
 * Author:        Marcus -LiGi- Bueschleb
 *
 * see README for further Infos
 *
 *
 **************************************/


public class MKWatchDog
    implements Runnable,DUBwiseDefinitions
{

    MKCommunicator mk=null;

    int debug_data_count_buff=-123;
    int lcd_data_count_buff=-123;


    public MKWatchDog(MKCommunicator _mk)
    {

        mk=_mk;
        new Thread( this ).start(); // fire up main Thread
    }

    int lcd_timeout=0; // detect if we lost packets

    public int act_paramset=0;

    public void run()
    {
       


       
        // get all params
       
        int act_debug_name=0;


        while(true)
            {

                try { Thread.sleep(30); } // 3000
                catch (Exception e)  {   }
               
                if (mk.connected&&(!mk.force_disconnect))
                    {

                        if ( mk.version.major==-1 )
                            {
                                try { Thread.sleep(150); }
                                catch (Exception e)  {   }
                                mk.get_version();
                            }
                        else  if ((act_paramset<5)&&(mk.root.canvas.user_intent==USER_INTENT_PARAMS) &&(! mk.root.canvas.ufo_prober.is_navi()))
                            {
                                mk.get_params(act_paramset+1);
                               
                                try { Thread.sleep(450); }
                                catch (Exception e)  {   }
                               
                                if(mk.params.field[act_paramset]!=null)
                                    act_paramset++;
                            }
                        else if (( act_debug_name<32)&&(mk.root.canvas.user_intent==USER_INTENT_RAWDEBUG))
                            {
                                mk.get_debug_name(act_debug_name);
                               
                                try { Thread.sleep(350); }
                                catch (Exception e)  {   }
                               

                                if (mk.debug_data.got_name[act_debug_name]) act_debug_name++;
                            }
                   

               
           



                        /*


                        if (debug_data_count_buff==mk.debug_data_count)
                            {
                                //                              mk.close_connections(false);
                            }

                        */


                        /*if (mk.version.major==-1)
                            mk.get_version();
                        else
                        */
 
                        /*for ( int cnt=0;cnt<5;cnt++)
                            if (mk.params.field[cnt]==null)
                                {
                                    mk.get_params(cnt+1);
                                    break;
                                    }*/

                        /*
                        for (int c=0;c<32;c++)
                            if (!mk.debug_data.got_name[c])
                                {
                                    mk.get_debug_name(c);
                                    break;
                                }
                        */


                        else if ((lcd_data_count_buff!=mk.lcd_data_count)||(mk.lcd_data_count==0)||(lcd_timeout==23))
                            {
                                lcd_timeout=0;
                                lcd_data_count_buff=mk.lcd_data_count;
                                mk.LCD.trigger_LCD();
                                try { Thread.sleep(50); }
                                catch (Exception e)  {   }
                                //debug_data_count_buff=mk.debug_data_count;
                               
                            }
                        else
                            {
                                lcd_timeout++;
                            }
                       

                       
                    }
               

            }
    }

   
}