Пример #1
0
int main(){

  srand(time(NULL));

  data_item_header  ignition_angle  = {"Ignition angle",  Real32_Type,  Degrees};
  data_item_header  engine_torque   = {"Engine torque",   Real32_Type,  Newton_Metres};
  data_item_header  engine_speed    = {"Engine speed",    UInt32_Type,   Revolutions_Per_Second};

  int ignition_angle_port = -1;
  int engine_torque_port  = -1;
  int engine_speed_port   = -1;

  unsigned int  ignition_angle_port_size = sizeof(data_item_header)+4;
  unsigned int  engine_torque_port_size  = sizeof(data_item_header)+4;
  unsigned int  engine_speed_port_size   = sizeof(data_item_header)+4;

  ignition_angle_data = setup_port(port_ignition_angle_btdc, &ignition_angle_port, ignition_angle_port_size);
  engine_torque_data  = setup_port(port_engine_torque, &engine_torque_port, engine_torque_port_size);
  engine_speed_data   = setup_port(port_engine_speed, &engine_speed_port, engine_speed_port_size);

  initialize_simulation();

  sleep(5);

  memcpy(ignition_angle_data, &ignition_angle, sizeof(data_item_header) );
  memcpy(engine_torque_data, &engine_torque, sizeof(data_item_header) );
  memcpy(engine_speed_data, &engine_speed, sizeof(data_item_header) );

  int i = 0;
  for(; i < 1000000000; i++){
    update_rpm();
    update_ignition_angle();
    update_torque();
  }

  sleep(5);

  close_port(port_ignition_angle_btdc, ignition_angle_data, ignition_angle_port_size);
  close_port(port_engine_torque, engine_torque_data, engine_torque_port_size);
  close_port(port_engine_speed, engine_speed_data, engine_speed_port_size);
}
Пример #2
0
int main()
{
#ifdef FULL_SIMU
    initialize_simulation();
    trajectory();
    finish_simulation();

#else
    signal(SIGINT, Emergency_exit);

    pthread_t th_navdata;
    pthread_t th_watchdog;
//    pthread_t th_simu;

    initialize_connection_with_drone();

    pthread_create(&th_navdata, NULL, navdata_thread, NULL);

    pthread_mutex_lock(&mutex_navdata_cond);
    pthread_cond_wait(&navdata_initialised, &mutex_navdata_cond);
    pthread_mutex_unlock(&mutex_navdata_cond);

    pthread_create(&th_watchdog, NULL, watchdog_thread, NULL);

   // pthread_create(&th_simu, NULL,simu_thread, NULL);

    printf("It's on\n");
    sleep(2);
 
    take_off();

    printf("First Altitude : %d\n", (int) get_altitude());
    sleep(2);
    calibrate_magnetometer();

    //sleep(7);

    // Indefinitely print magneto
    /*while (1) {
        print_navdata_magneto();
        usleep(500000);
    }*/

    /*************************
     * Normal behaviour      *
     *************************/
    trajectory();

    /*************************
     * Tests                 *
     *************************/
    /*sleep(2) ;

    printf("orientation\n") ;
    printf("first heading : %f\n", get_heading()) ;
    //forward(10, 2.0);
    //forward_mag(100, 150, get_heading());
    //sleep(2) ;
*/
    //orientate_mag(100, get_heading() + 10.0);

    //sleep(2) ;
    land();
    close_commands_socket();

#endif

    return 0;
}