tool/CommandVersion.cpp
author Dominik Staubli <ch1010252@ch10pc423>
Thu, 21 Jan 2010 11:09:31 +0100
changeset 1798 e7733f825982
parent 1373 e651000f1ff1
child 1804 742607c464c4
permissions -rw-r--r--
Domain datagram working counter calculation bugfix: increment expected wc for a given slave & direction just once for each datagram
This bug occurs if you configure more than one SM in the same direction on the same slave
1165
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     1
/*****************************************************************************
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     2
 *
1363
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
     3
 *  $Id$
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
     4
 *
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
     5
 *  Copyright (C) 2006-2009  Florian Pose, Ingenieurgemeinschaft IgH
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
     6
 *
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
     7
 *  This file is part of the IgH EtherCAT Master.
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
     8
 *
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
     9
 *  The IgH EtherCAT Master is free software; you can redistribute it and/or
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    10
 *  modify it under the terms of the GNU General Public License version 2, as
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    11
 *  published by the Free Software Foundation.
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    12
 *
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    13
 *  The IgH EtherCAT Master is distributed in the hope that it will be useful,
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    14
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    15
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    16
 *  Public License for more details.
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    17
 *
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    18
 *  You should have received a copy of the GNU General Public License along
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    19
 *  with the IgH EtherCAT Master; if not, write to the Free Software
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    20
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    21
 *
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    22
 *  ---
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    23
 *
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    24
 *  The license mentioned above concerns the source code only. Using the
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    25
 *  EtherCAT technology and brand is only permitted in compliance with the
11c0b2caa253 Improved and added license headers.
Florian Pose <fp@igh-essen.com>
parents: 1165
diff changeset
    26
 *  industrial property and similar rights of Beckhoff Automation GmbH.
1165
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    27
 *
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    28
 ****************************************************************************/
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    29
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    30
#include <iostream>
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    31
using namespace std;
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    32
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    33
#include "CommandVersion.h"
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    34
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    35
/*****************************************************************************/
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    36
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    37
CommandVersion::CommandVersion():
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    38
    Command("version", "Show version information.")
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    39
{
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    40
}
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    41
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    42
/****************************************************************************/
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    43
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    44
string CommandVersion::helpString() const
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    45
{
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    46
    stringstream str;
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    47
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    48
	str << getName() << " [OPTIONS]" << endl
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    49
    	<< endl
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    50
    	<< getBriefDescription() << endl;
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    51
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    52
	return str.str();
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    53
}
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    54
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    55
/****************************************************************************/
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    56
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    57
void CommandVersion::execute(MasterDevice &m, const StringVector &args)
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    58
{
1373
e651000f1ff1 Complain about given arguments if none are required.
Florian Pose <fp@igh-essen.com>
parents: 1363
diff changeset
    59
    if (args.size()) {
e651000f1ff1 Complain about given arguments if none are required.
Florian Pose <fp@igh-essen.com>
parents: 1363
diff changeset
    60
        stringstream err;
e651000f1ff1 Complain about given arguments if none are required.
Florian Pose <fp@igh-essen.com>
parents: 1363
diff changeset
    61
        err << "'" << getName() << "' takes no arguments!";
e651000f1ff1 Complain about given arguments if none are required.
Florian Pose <fp@igh-essen.com>
parents: 1363
diff changeset
    62
        throwInvalidUsageException(err);
e651000f1ff1 Complain about given arguments if none are required.
Florian Pose <fp@igh-essen.com>
parents: 1363
diff changeset
    63
    }
e651000f1ff1 Complain about given arguments if none are required.
Florian Pose <fp@igh-essen.com>
parents: 1363
diff changeset
    64
1165
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    65
    cout << "IgH EtherCAT master " << EC_MASTER_VERSION << endl;
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    66
}
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    67
c5d6e28eec91 Added 'ethercat version' command.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    68
/*****************************************************************************/