void EV3B_speaker_play_file( const i_t p_duration, c_t p_file[ESCHER_SYS_MAX_STRING_LEN] ) { /* Replace/Insert your implementation code here... */ /* if speaker file is already opend, close it first */ if ( fgSpeakerMem.buffer != NULL ) { ev3_memfile_free(&fgSpeakerMem); } ER ret = ev3_memfile_load(p_file,&fgSpeakerMem); if ( ret == E_OK ) { ev3_speaker_play_file(&fgSpeakerMem,p_duration); } }
void EV3B_draw_image( c_t p_filename[ESCHER_SYS_MAX_STRING_LEN], const i_t p_x, const i_t p_y ) { if ( fgImage.data ) { ev3_image_free(&fgImage); if ( fgImageMem.buffer ) { ev3_memfile_free(&fgImageMem); } } if ( ev3_memfile_load(p_filename,&fgImageMem) == E_OK ) { if ( ev3_image_load(&fgImageMem,&fgImage) == E_OK ) { ev3_lcd_draw_image(&fgImage,p_x,p_y); } else { ev3_memfile_free(&fgImageMem); } } /* Replace/Insert your implementation code here... */ }
void main_task(intptr_t unused) { ev3_lcd_set_font(EV3_FONT_MEDIUM); ev3_font_get_size(EV3_FONT_MEDIUM, &fontw, &fonth); memfile_t memfile; ev3_memfile_load("/test.bmp", &memfile); image_t image; ev3_image_load(&memfile, &image); ev3_lcd_draw_image(&image, 0, fonth * 2); //ev3_sta_cyc(TEST_EV3_CYC1); // Enable TEST_EV3_CYC2 for 5 seconds ev3_sta_cyc(TEST_EV3_CYC2); tslp_tsk(5000); ev3_stp_cyc(TEST_EV3_CYC2); #if 0 // Register button handlers ev3_button_set_on_clicked(BACK_BUTTON, button_clicked_handler, BACK_BUTTON); ev3_button_set_on_clicked(ENTER_BUTTON, button_clicked_handler, ENTER_BUTTON); ev3_button_set_on_clicked(LEFT_BUTTON, button_clicked_handler, LEFT_BUTTON); // Configure sensors ev3_sensor_config(gyro_sensor, GYRO_SENSOR); // Configure motors ev3_motor_config(left_motor, LARGE_MOTOR); ev3_motor_config(right_motor, LARGE_MOTOR); // Start task for self-balancing act_tsk(BALANCE_TASK); // Open Bluetooth file bt = ev3_serial_open_file(EV3_SERIAL_BT); assert(bt != NULL); // Start task for printing message while idle act_tsk(IDLE_TASK); while(1) { uint8_t c = fgetc(bt); sus_tsk(IDLE_TASK); switch(c) { case 'w': if(motor_control_drive < 0) motor_control_drive = 0; else motor_control_drive += 10; fprintf(bt, "motor_control_drive: %d\n", motor_control_drive); break; case 's': if(motor_control_drive > 0) motor_control_drive = 0; else motor_control_drive -= 10; fprintf(bt, "motor_control_drive: %d\n", motor_control_drive); break; case 'a': if(motor_control_steer < 0) motor_control_steer = 0; else motor_control_steer += 10; fprintf(bt, "motor_control_steer: %d\n", motor_control_steer); break; case 'd': if(motor_control_steer > 0) motor_control_steer = 0; else motor_control_steer -= 10; fprintf(bt, "motor_control_steer: %d\n", motor_control_steer); break; case 'h': fprintf(bt, "==========================\n"); fprintf(bt, "Usage:\n"); fprintf(bt, "Press 'w' to speed up\n"); fprintf(bt, "Press 's' to speed down\n"); fprintf(bt, "Press 'a' to turn left\n"); fprintf(bt, "Press 'd' to turn right\n"); fprintf(bt, "Press 'i' for idle task\n"); fprintf(bt, "Press 'h' for this message\n"); fprintf(bt, "==========================\n"); break; case 'i': fprintf(bt, "Idle task started.\n"); rsm_tsk(IDLE_TASK); break; default: fprintf(bt, "Unknown key '%c' pressed.\n", c); } } #endif }
void Sound::trumpet() { ev3_memfile_load("/ev3rt/sounds/trumpet.wav", &soundfile); ev3_speaker_play_file(&soundfile,SOUND_MANUAL_STOP); }
void Sound::ready() { ev3_memfile_load("/ev3rt/sounds/ready.wav", &soundfile); ev3_speaker_play_file(&soundfile,SOUND_MANUAL_STOP); }