Changeset 443

Show
Ignore:
Timestamp:
02/18/07 19:24:08 (2 years ago)
Author:
anthony_rowe
Message:

output mask

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/projects/cmucam2/cmucam2.c

    r441 r443  
    7070  BUF_MODE, 
    7171  READ_FRAME, 
     72  OUTPUT_MASK, 
    7273  PACKET_FILTER, 
    7374  CONF_HISTOGRAM, 
     
    109110  //  RM raw mode 
    110111  cmucam2_cmds[PACKET_FILTER] = "PF"; 
    111   //  OM output packet mask 
     112  cmucam2_cmds[OUTPUT_MASK] = "OM"; 
    112113 
    113114  /* Servo Commands */ 
     
    190191 
    191192bool packet_filter_flag; 
     193uint8_t t_pkt_mask; 
     194uint8_t s_pkt_mask; 
    192195 
    193196int main (void) 
     
    247250  buf_mode = false; 
    248251  packet_filter_flag = false; 
     252  t_pkt_mask= 0xFF; 
     253  s_pkt_mask= 0xFF; 
    249254  h_pkt.bins = 28; 
    250255  t_pkt.track_invert = false; 
     
    331336        cc3_pixbuf_load (); 
    332337        break; 
     338    
     339     case OUTPUT_MASK: 
     340        if (n != 2 || arg_list[0]>1) { 
     341          error = true; 
     342          break; 
     343        } 
     344        if(arg_list[0]==0) t_pkt_mask=arg_list[1]; 
     345        if(arg_list[0]==1) s_pkt_mask=arg_list[1]; 
     346        print_ACK (); 
     347        break; 
     348 
    333349 
    334350      case GET_VERSION: 
     
    10671083  { 
    10681084    if(packet_filter_flag==0) 
    1069         printf ("T 0 0 0 0 0 0 0 0"); 
    1070     if(packet_filter_flag==1) 
     1085     { 
     1086        printf( "T" ); 
     1087        if((t_pkt_mask & 0x01) !=0) printf( " 0"); 
     1088        if((t_pkt_mask & 0x02) !=0) printf( " 0"); 
     1089        if((t_pkt_mask & 0x04) !=0) printf( " 0"); 
     1090        if((t_pkt_mask & 0x08) !=0) printf( " 0"); 
     1091        if((t_pkt_mask & 0x10) !=0) printf( " 0"); 
     1092        if((t_pkt_mask & 0x20) !=0) printf( " 0"); 
     1093        if((t_pkt_mask & 0x40) !=0) printf( " 0"); 
     1094        if((t_pkt_mask & 0x80) !=0) printf( " 0"); 
     1095     } 
     1096    if(packet_filter_flag==1 && empty_cnt==0) 
    10711097    { 
    1072         if(empty_cnt==0) printf ("T 0 0 0 0 0 0 0 0"); 
     1098        printf( "T" ); 
     1099        if((t_pkt_mask & 0x01) !=0) printf( " 0"); 
     1100        if((t_pkt_mask & 0x02) !=0) printf( " 0"); 
     1101        if((t_pkt_mask & 0x04) !=0) printf( " 0"); 
     1102        if((t_pkt_mask & 0x08) !=0) printf( " 0"); 
     1103        if((t_pkt_mask & 0x10) !=0) printf( " 0"); 
     1104        if((t_pkt_mask & 0x20) !=0) printf( " 0"); 
     1105        if((t_pkt_mask & 0x40) !=0) printf( " 0"); 
     1106        if((t_pkt_mask & 0x80) !=0) printf( " 0"); 
    10731107    } 
    10741108  } 
     
    10761110  { 
    10771111    empty_cnt=0; 
    1078     printf ("T %d %d %d %d %d %d %d %d", pkt->centroid_x, pkt->centroid_y, 
    1079             pkt->x0, pkt->y0, pkt->x1, pkt->y1, pkt->num_pixels, 
    1080             pkt->int_density); 
     1112    printf( "T" ); 
     1113    if((t_pkt_mask & 0x01) !=0) printf( " %d",pkt->centroid_x ); 
     1114    if((t_pkt_mask & 0x02) !=0) printf( " %d",pkt->centroid_y ); 
     1115    if((t_pkt_mask & 0x04) !=0) printf( " %d",pkt->x0); 
     1116    if((t_pkt_mask & 0x08) !=0) printf( " %d",pkt->y0); 
     1117    if((t_pkt_mask & 0x10) !=0) printf( " %d",pkt->x1); 
     1118    if((t_pkt_mask & 0x20) !=0) printf( " %d",pkt->y1); 
     1119    if((t_pkt_mask & 0x40) !=0) printf( " %d",pkt->num_pixels); 
     1120    if((t_pkt_mask & 0x80) !=0) printf( " %d",pkt->int_density); 
     1121    //printf ("T %d %d %d %d %d %d %d %d", pkt->centroid_x, pkt->centroid_y, 
     1122      //      pkt->x0, pkt->y0, pkt->x1, pkt->y1, pkt->num_pixels, 
     1123        //    pkt->int_density); 
    10811124  } 
    10821125  if(servo_settings->x_report) printf( " %d",servo_settings->x ); 
     
    11081151void cmucam2_write_s_packet (cc3_color_info_pkt_t * pkt) 
    11091152{ 
    1110   printf ("S %d %d %d %d %d %d\r", pkt->mean.channel[0], pkt->mean.channel[1], 
    1111           pkt->mean.channel[2], pkt->deviation.channel[0], 
    1112           pkt->deviation.channel[1], pkt->deviation.channel[2]); 
     1153 
     1154  printf( "S" ); 
     1155  if((s_pkt_mask & 0x01) !=0) printf( " %d",pkt->mean.channel[0]); 
     1156  if((s_pkt_mask & 0x02) !=0) printf( " %d",pkt->mean.channel[1]); 
     1157  if((s_pkt_mask & 0x04) !=0) printf( " %d",pkt->mean.channel[2]); 
     1158  if((s_pkt_mask & 0x08) !=0) printf( " %d",pkt->deviation.channel[0]); 
     1159  if((s_pkt_mask & 0x10) !=0) printf( " %d",pkt->deviation.channel[1]); 
     1160  if((s_pkt_mask & 0x20) !=0) printf( " %d",pkt->deviation.channel[2]); 
     1161  printf( "\r" ); 
    11131162 
    11141163}