Пример #1
0
void processline(  char ch[])
{
    if(ch[0]=='d' && ch[5]=='b')
    {
       
   char src1[8];
   char src2[8];
   char dist[5];
   char bear[3];
  
   int distance;
   int bearing;
   //ugly fix cause it was turning me crazy
   //the incoming format is d####b## with d before the distance and b before the bearing
   strcpy(src1, ch);
   strcpy(src2, ch);
   dist[0] = ch[1];
   dist[1] = ch[2];
   dist[2] = ch[3];
   dist[3] = ch[4];
   dist[4] = '\0';
   
   bear[0] = ch[6];
   bear[1] = ch[7];
   bear[2] = ch[8];
   bear[3] = '\0';
   
   
   
   //memset(dist, '\0', sizeof(dist));
//   strcpy(src, ch);
//   strncpy(dist, ch+1, 4);
   
   //memset(bearing, '\0', sizeof(bearing));
//   strncpy(bear, src+6, 2);
//
    char *ptr;
   distance = strtol(dist, &ptr, 10); //string2int(dist);
   bearing = strtol(bear, &ptr, 10);//string2int(bear);
   
        
        //retrieving the bearing part of the string
//       char* bearing;
//       strncpy(bearing, ch+6, 2); 
       display(distance);
        
        //retrieving the distance part of the string
//       memset(ch, '\0', sizeof( ch ));
//       char* substr;
//       strncpy(substr, ch+1, 4); 
       goToPos(bearing);
       
       
       
    }
}
Пример #2
0
	void goToRel(int32_t rel_pos){
		goToPos(position + rel_pos);
	}