質問

このコードのサンプルプログラムを使用しています http://sicktoolbox.sourceforge.net/ > http://sourceforge.net/projects/sicktoolbox/files/ 。基本的に距離スキャナードライバーです。私が実行しようとしているプログラムは、SickToolbox-1.0.1/C ++/examples/lms/lms_plot_valuesです。

とにかく、LMS_PLOT_VALUESプロジェクトフォルダーには、gnuplot_i.cc、gnuplot_i.hpp、main.cc、makefile、makefile.am、makefile.inが含まれています。そのため、Eclipse Indigo CDTに最初の3つのファイルを配置し、コンパイル(コンパイラエラーなし、すべてがEclipseで既に正しくリンクされており、必要なライブラリがすべて追加されています)が、このサンプルプログラムはコマンドライン引数を取り入れるために書かれています。これはコードが取得する限りです。

/*!
 * \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;
  }

それが言うように、それはエラーをスローし、プログラムを殺し、コマンドラインから「lms_plot_values /dev /ttyusb09600」を入力してプログラムを実行することを望んでいますが、私はそれをすることができません、そして私はしたいと思っています私はそれをしたくないので、日食ですべてをしてください。追加しようとしました:

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

しかし、それはARGCチェックのために機能しませんでした。 「lms_plot_values /dev /ttyusb0 9600」に渡すと言っているかどうか、なぜそれが期待されるのか、どこからargc値を取得するのか知っていますか?それとも、これらのパラメーターが渡されたと思わせるにはどうすればよいですか?私はC ++がこのようにどのように機能するかについてあまり精通していません。私はJavaしか使用していません。

助けてくれてありがとう

役に立ちましたか?

解決

あなたは日食の議論も渡すことができます。プロジェクトを構築したら、実行構成を作成してみてください。そこで引数を渡すことができます。これがスクリーンショットです:

enter image description here

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top