title: How to update glut window continuously?
body: <p>I have a real robot that is ordering my virtual robot in open gl. I want show every movement of my master robot(real robot) in slave (virtual one in open gl) online, so i need to update my glut window continuously, actually as long as real robot moves my virtual one moves too, and all these movement should be online.</p>
  
  <p>I get data from master always with get data function, but I dont know how I should update the window.</p>
  
  <p>Here is my code:</p>
  
  <p><strong><em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>****</strong>/</p>
  
  <pre><code>  void OnIdle(void){  
      initSocket();
  
    printf("\n  Defining Step Time Parameters and Initial Conditions for solving Dynamic equations\n");
  
    xi=0;
    xf=0.1;
    printf("\n    end value x         : %f ",xf); 
    i=0;  yi[i]=0; 
    i++;yi[i]=-1.570796;
    i++;yi[i]=-1.570796;
    i++;yi[i]=0;
    i++;yi[i]=0;
    i++;yi[i]=0;
    ndata=2; fi=1;
  
    double counter=0.1;
  
    Eqdifp(v1,v2,v3,v4,v5,v6,xi,xf,yi,ndata,p,fi);
  
  
    for(int i=0;i&lt;50;i++)
      //while(1)
    {
  
        getData();
  
        printf("\n");
        for(int i=0;i&lt;6; i++)
        {
  
            printf("%d = %.3f\n", i,drecvbuf[i]);
        }
        printf("\n");
  
     yi[0]=v1[ndata];
     yi[1]=v2[ndata];
     yi[2]=v3[ndata];
     yi[3]=v4[ndata];
     yi[4]=v5[ndata];
     yi[5]=v6[ndata];
      printf("my nadata %f\n",v1[ndata]);
      counter=counter+0.1;
  
      Eqdifp(v1,v2,v3,v4,v5,v6,xi,xf,yi,ndata,p,fi);
      glutPostRedisplay();
   }
    }
  /////////////////////////////////////////////////////
    int main(int argc, char **argv)
  {
      glutInit(&amp;argc, argv);
      glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
      glutInitWindowSize(900,500);
      int u=glutCreateWindow("3DOF robot");
      myinit();
      createMenu();
      glutIdleFunc (OnIdle);
      glutDisplayFunc(Display);
      glutReshapeFunc(reshape);
      glutKeyboardFunc(KeyDown);
  
      glutMainLoop(); 
  
      System::Timers::Timer^ aTimer = gcnew System::Timers::Timer( 100 );
  
        // Hook up the Elapsed event for the timer.
      aTimer-&gt;Elapsed += gcnew System::Timers::ElapsedEventHandler( OnTimedEvent );
  
        // Set the Interval to 2 seconds (2000 milliseconds).
      aTimer-&gt;Enabled = true;
      return 0;
  
    }
  </code></pre>