Exemple #1
0
void elu_print_camera_image(const el_camera_image*frame,el_uint32 n){
    int X,Y,i;
    char *p;

    while(el_uart_is_sending(EL_UART_1)){
        el_process_cooperate();
    }
    
    el_uart_send_string(EL_UART_1,"<p>\n");

    p = elu_stdio_buffer;
    p += elu_snprintf(p,16,"NUM: %lu\n",n);
    p += elu_snprintf(p,16,"DIM: %d,%d\n",EL_CAMERA_FRAME_DIM_X,EL_CAMERA_FRAME_DIM_Y);
    p += elu_snprintf(p,16,"LEN: %d,%d\n",frame->Width,frame->Height);

    while(el_uart_is_sending(EL_UART_1)){
        el_process_cooperate();
    }
    el_uart_send_string(EL_UART_1,elu_stdio_buffer);

    for(Y=0;Y<EL_CAMERA_FRAME_DIM_Y;Y++){
        X = 0;
        while(X < EL_CAMERA_FRAME_DIM_X){

            p = elu_stdio_buffer;
            
            for(i=0;i<10;i++){
                p += elu_snprintf(p,16,"%4.4X",frame->Data[Y][X]);
                X++;
            }
            
            if(X==EL_CAMERA_FRAME_DIM_X){
                *p++ = '\n';
            }
            
            while(el_uart_is_sending(EL_UART_1)){
                el_process_cooperate();
            }
            el_uart_send_string(EL_UART_1,elu_stdio_buffer);
        }
    }

    while(el_uart_is_sending(EL_UART_1)){
        el_process_cooperate();
    }
    el_uart_send_string(EL_UART_1,"</p>\n");

}
Exemple #2
0
EL_PROCESS Process_IRRC(void*data){
    int k;
    int check,address,command;

    while(1){
        
        el_ir_receiver_reset();
        k = el_ir_receiver_get_check();
        do{
            el_process_cooperate();
            check = el_ir_receiver_get_check();
        }while(check==k);//wait until "check" being changed

        address = el_ir_receiver_get_address();
        command = el_ir_receiver_get_data();
        
        elu_println("[IRRC]\nCHECK\tADDRESS\tCOMMAND");
        elu_println("%d\t%d\t%d",check,address,command);

        if(address==5){
            el_led_set(4,EL_TOGGLE);
        }

    }

}
Exemple #3
0
void Process_LED_Control(void*arg){
    char c;
    
    while(1){

        // wait until something is received
        do{
            /*
             * In a process, "el_process_cooperate" need to be called in any
             * polling loops. See the documentation of the Process module to
             * learn more details.
             */
            el_process_cooperate();

        }while(el_uart_get_char_counter(EL_UART_1)==0);
        
        c = el_uart_get_char(EL_UART_1);
        if(c=='f'){
            el_led_set(EL_LED_FRONT,EL_TOGGLE);
        }
        
    }
    
}
Exemple #4
0
void Process_ConsoleLoop(void*arg){
    char c;
    int i;

    elu_printf("EL_EXAMPLE_04\n");

    // setup the task
    Task_ObjectFollowing_Setup();
    
    el_process_wait(500);// wait for 500 ms

    el_uart_flush_char(EL_UART_1);

    while(1){

        do{
            el_process_cooperate();
        }while(el_uart_get_char_counter(EL_UART_1)==0);

        c = el_uart_get_char(EL_UART_1);
        
        switch(c){

        case 'f':
            el_led_set(EL_LED_FRONT,EL_TOGGLE);
            break;

        case 'r':// report ir proximity sensor outputs
            elu_println("<IR>");
            el_ir_proximity_get(EL_IR_PROXIMITY_SENSOR_ALL,EL_IR_ALL_3V,(el_int16*)ProximitySensor);
            elu_printf("AMB:");
            for(i=0;i<8;i++){
                elu_printf("\t%d",ProximitySensor[i].Ambient);
            }
            elu_putchar('\n');
            elu_printf("REF:");
            for(i=0;i<8;i++){
                elu_printf("\t%d",ProximitySensor[i].Reflection);
            }
            elu_putchar('\n');
            break;

        case 'p':// report image processing result
            elu_println("<IMG>");
            elu_println("MASS:\t%d\t%d\t%d",vision_mass_red,vision_mass_green,vision_mass_blue);
            elu_println("BIAS:\t%d\t%d\t%d",vision_bias_red,vision_bias_green,vision_bias_blue);
            elu_putchar('\n');
            break;

        case '1':
            Task_ObjectColor = TASK_OBJECT_RED;
            elu_println("FOLLOW RED");
            break;

        case '2':
            Task_ObjectColor = TASK_OBJECT_GREEN;
            elu_println("FOLLOW GREEN");
            break;

        case '3':
            Task_ObjectColor = TASK_OBJECT_BLUE;
            elu_println("FOLLOW BLUE");
            break;

        }

    }

    Task_ObjectFollowing_Clear();

}