Changeset 155

Show
Ignore:
Timestamp:
02/26/06 15:33:02 (3 years ago)
Author:
anthony_rowe
Message:

Line mode added to cmucam2 project

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/cc3_ilp/cc3_color_track.c

    r152 r155  
    140140        } 
    141141 
    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) 
    143148        { 
     149        uint8_t block,offset; 
     150        block=x/8; 
     151        offset=x%8; 
     152        offset=7-offset; 
     153        pkt->binary_scanline[block] |= (1<<offset); 
    144154        pkt->num_pixels++; 
    145155        if(pkt->x0 > x ) pkt->x0=x;      
     
    154164pkt->scratch_y=y; 
    155165 
    156  
     166return 1; 
    157167} 
    158168 
  • trunk/lib/cc3_ilp/cc3_color_track.h

    r152 r155  
    1616    uint32_t int_density; 
    1717    uint8_t noise_filter; 
    18     uint32_t binary_scanline[MAX_BINARY_WIDTH]; 
     18    uint8_t binary_scanline[MAX_BINARY_WIDTH]; 
    1919    cc3_pixel_t upper_bound; 
    2020    cc3_pixel_t lower_bound; 
  • trunk/projects/cmucam2/cmucam2.c

    r153 r155  
    2424        CAMERA_REG, 
    2525        POLL_MODE, 
     26        LINE_MODE, 
    2627        VIRTUAL_WINDOW, 
    2728        DOWN_SAMPLE, 
     
    3738void print_NCK(void); 
    3839void cmucam2_write_t_packet(cc3_track_pkt_t *pkt); 
    39  
    4040 
    4141int main (void) 
     
    9090            if(arg_list[0]==1 ) poll_mode=1; 
    9191            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            } 
    92102            break; 
    93103        case SEND_FRAME: 
     
    158168                cc3_pixbuf_load(); 
    159169                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                }        
    161191                        for(i=0; i<cc3_g_current_frame.height; i++ ) 
    162192                        { 
    163193                        cc3_pixbuf_read_rows(img.pix, img.width, 1);     
    164194                        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                                } 
    165206                        } 
    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); 
    168215                } 
    169216                if(!cc3_uart_has_data(0) ) break; 
     
    218265cmucam2_cmds[VIRTUAL_WINDOW]="VW";  
    219266cmucam2_cmds[DOWN_SAMPLE]="DS";  
     267cmucam2_cmds[LINE_MODE]="LM";  
    220268} 
    221269