コード例 #1
0
ファイル: EV3B_bridge.c プロジェクト: cortlandstarrett/models
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);
  }

}
コード例 #2
0
ファイル: EV3B_bridge.c プロジェクト: cortlandstarrett/models
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... */
}
コード例 #3
0
ファイル: app.c プロジェクト: PizzaFactory/hrp2ev3
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
}
コード例 #4
0
ファイル: Sound.cpp プロジェクト: RobonoKimochi/EV3
void Sound::trumpet()
{
	ev3_memfile_load("/ev3rt/sounds/trumpet.wav", &soundfile);
	ev3_speaker_play_file(&soundfile,SOUND_MANUAL_STOP);
}
コード例 #5
0
ファイル: Sound.cpp プロジェクト: RobonoKimochi/EV3
void Sound::ready()
{
	ev3_memfile_load("/ev3rt/sounds/ready.wav", &soundfile);
	ev3_speaker_play_file(&soundfile,SOUND_MANUAL_STOP);
}