Changeset 155
- Timestamp:
- 02/26/06 15:33:02 (3 years ago)
- Files:
-
- trunk/lib/cc3_ilp/cc3_color_track.c (modified) (2 diffs)
- trunk/lib/cc3_ilp/cc3_color_track.h (modified) (1 diff)
- trunk/projects/cmucam2/cmucam2.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/cc3_ilp/cc3_color_track.c
r152 r155 140 140 } 141 141 142 if(pixel_good) 142 /* pkt->binary_scanline[0]=0x01020304; 143 pkt->binary_scanline[1]=0x05060708; 144 pkt->binary_scanline[2]=0x090A0B0C; 145 pkt->binary_scanline[3]=0x0D0E0F10; 146 pkt->binary_scanline[4]=0x11121314; 147 */ if(pixel_good) 143 148 { 149 uint8_t block,offset; 150 block=x/8; 151 offset=x%8; 152 offset=7-offset; 153 pkt->binary_scanline[block] |= (1<<offset); 144 154 pkt->num_pixels++; 145 155 if(pkt->x0 > x ) pkt->x0=x; … … 154 164 pkt->scratch_y=y; 155 165 156 166 return 1; 157 167 } 158 168 trunk/lib/cc3_ilp/cc3_color_track.h
r152 r155 16 16 uint32_t int_density; 17 17 uint8_t noise_filter; 18 uint 32_t binary_scanline[MAX_BINARY_WIDTH];18 uint8_t binary_scanline[MAX_BINARY_WIDTH]; 19 19 cc3_pixel_t upper_bound; 20 20 cc3_pixel_t lower_bound; trunk/projects/cmucam2/cmucam2.c
r153 r155 24 24 CAMERA_REG, 25 25 POLL_MODE, 26 LINE_MODE, 26 27 VIRTUAL_WINDOW, 27 28 DOWN_SAMPLE, … … 37 38 void print_NCK(void); 38 39 void cmucam2_write_t_packet(cc3_track_pkt_t *pkt); 39 40 40 41 41 int main (void) … … 90 90 if(arg_list[0]==1 ) poll_mode=1; 91 91 else poll_mode=0; 92 break; 93 case LINE_MODE: 94 if(n!=2) { error=1; break; } else print_ACK(); 95 // FIXME: Make bitmasks later 96 if(arg_list[0]==0 ) 97 { 98 if(arg_list[1]==1) 99 line_mode=1; 100 else line_mode=0; 101 } 92 102 break; 93 103 case SEND_FRAME: … … 158 168 cc3_pixbuf_load(); 159 169 if(cc3_track_color_scanline_start(t_pkt)!=0 ) 160 { 170 { 171 uint8_t lm_width,lm_height; 172 uint8_t *lm; 173 lm_width=0; 174 lm_height=0; 175 if(line_mode==1) 176 { 177 lm=&t_pkt->binary_scanline; 178 lm_width=cc3_g_current_frame.width/8; 179 if(cc3_g_current_frame.width%8!=0 ) lm_width++; 180 putchar(0xAA); 181 if(cc3_g_current_frame.height>255) 182 lm_height=255; 183 else 184 lm_height=cc3_g_current_frame.height; 185 186 //putchar(lm_width); 187 putchar(cc3_g_current_frame.width); 188 putchar(lm_height); 189 190 } 161 191 for(i=0; i<cc3_g_current_frame.height; i++ ) 162 192 { 163 193 cc3_pixbuf_read_rows(img.pix, img.width, 1); 164 194 cc3_track_color_scanline(&img, t_pkt); 195 if(line_mode==1) 196 { 197 198 for(int j=0; j<lm_width; j++ ) 199 { 200 // printf( "%d ",lm[j] ); 201 if(lm[j]==0xAA ) putchar(0xAB); 202 else 203 putchar( lm[j] ); 204 } 205 } 165 206 } 166 cc3_track_color_scanline_finish(t_pkt); 167 cmucam2_write_t_packet(t_pkt); 207 cc3_track_color_scanline_finish(t_pkt); 208 if(line_mode==1) 209 { 210 putchar(0xAA); 211 putchar(0xAA); 212 } 213 214 cmucam2_write_t_packet(t_pkt); 168 215 } 169 216 if(!cc3_uart_has_data(0) ) break; … … 218 265 cmucam2_cmds[VIRTUAL_WINDOW]="VW"; 219 266 cmucam2_cmds[DOWN_SAMPLE]="DS"; 267 cmucam2_cmds[LINE_MODE]="LM"; 220 268 } 221 269
