Pregunta

Estoy utilizando un programa de ejemplo de este código http://sicktoolbox.sourceforge.net/ > http://sourceforge.net/projects/sicktoolbox/files/ .Es básicamente una distancia controlador del escáner.El programa que estoy tratando de correr es en sicktoolbox-1.0.1/c++/ejemplos/lms/lms_plot_values en caso de que usted quisiera ver el código que estoy hablando.

De todos modos, el lms_plot_values carpeta de proyecto contiene gnuplot_i.cc, gnuplot_i.hpp, main.cc, Make, Make.soy, Makefile.en.Así que me puse los tres primeros archivos en mi Eclipse Indigo CDT, compilar (no hay errores de compilación, todo está correctamente enlazado en Eclipse ya y todas las librerías necesarias son añadidas), pero en este ejemplo se programa está escrito para tomar en argumentos de línea de comandos.Es aquí tan lejos como el código que se obtiene.

/*!
 * \file main.cc
 * \brief Illustrates how to acquire a measurements from the Sick
 *        LMS 2xx using the configured measuring mode.
 *
 * Note: This example should work for all Sick LMS 2xx models.
 *
 * Code by Jason C. Derenick and Thomas H. Miller.
 * Contact derenick(at)lehigh(dot)edu
 *
 * The Sick LIDAR Matlab/C++ Toolbox
 * Copyright (c) 2008, Jason C. Derenick and Thomas H. Miller
 * All rights reserved.
 *
 * This software is released under a BSD Open-Source License.
 * See http://sicktoolbox.sourceforge.net
 */

/* Implementation dependencies */
#include <stdlib.h>
#include <string>
#include <vector>
#include <signal.h>
#include <iostream>
#include <sicklms-1.0/SickLMS.hh>
#include "gnuplot_i.hpp"

using namespace std;
using namespace SickToolbox;

bool running = true;
void sigintHandler(int signal);

int main(int argc, char * argv[]) {

  string device_str; // Device path of the Sick LMS 2xx
  SickLMS::sick_lms_baud_t desired_baud = SickLMS::SICK_BAUD_38400;

  /* Check for a device path.  If it's not present, print a usage statement. */
  if ((argc != 2 && argc != 3) || (argc == 2 && strcasecmp(argv[1],"--help") == 0)) {
    cout << "Usage: lms_plot_values PATH [BAUD RATE]" << endl
     << "Ex: lms_plot_values /dev/ttyUSB0 9600" << endl;
    return -1;
  }

Como se dice, se produce un error y mata el programa, diciendo que quiere que yo escriba "lms_plot_values /dev/ttyUSB0 9600" desde la línea de comandos para ejecutar el programa, pero no puedo hacer eso, y estoy con ganas de hacer todo en eclipse, así que no quiero hacer eso.He intentado añadir:

argv[1] = "/dev/ttyUSB0";
argv[2] = "9600";

Pero eso no funcionó debido a la argc cheques.¿Sabe usted si dice a pasar en "lms_plot_values /dev/ttyUSB0 9600", ¿por qué iba a estar esperando o donde sería conseguir que el argc valores de?O cómo me puede hacer pensar que estos parámetros han pasado?No estoy muy familiarizado con la forma en C++ obras como esta, solo he usado Java.

Gracias por la ayuda

¿Fue útil?

Solución

También puede aprobar argumentos en Eclipse. Una vez que cree su proyecto, intente crear una configuración de ejecución y allí puede aprobar los argumentos. Aquí está la captura de pantalla:

enter image description here

enter image description here

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top