diff --git a/TODO b/TODO index 30d59b8edd1a7386fff96b6856e8d040380277f6..c3db2d152946dbd15a4f9054a56f036248270e06 100644 --- a/TODO +++ b/TODO @@ -14,10 +14,7 @@ Version 1.4.0: * Get original driver for r8169. * Race in jiffies frame timeout? * ethercat tool: - - Data type abbreviations. - - Add a -n (numeric) switch. - Check for options, remove global variables. - - Add 'etherlab version'. Future issues: @@ -36,6 +33,9 @@ Future issues: * Interface/buffers for asynchronous domain IO. * Make scanning and configuration run parallel (each). * File access over EtherCAT (FoE). +* ethercat tool: + - Data type abbreviations. + - Add a -n (numeric) switch. Smaller issues: diff --git a/tool/CommandVersion.cpp b/tool/CommandVersion.cpp new file mode 100644 index 0000000000000000000000000000000000000000..eae7869655792e668e892a63136dab8df8c84c93 --- /dev/null +++ b/tool/CommandVersion.cpp @@ -0,0 +1,39 @@ +/***************************************************************************** + * + * $Id$ + * + ****************************************************************************/ + +#include <iostream> +using namespace std; + +#include "CommandVersion.h" + +/*****************************************************************************/ + +CommandVersion::CommandVersion(): + Command("version", "Show version information.") +{ +} + +/****************************************************************************/ + +string CommandVersion::helpString() const +{ + stringstream str; + + str << getName() << " [OPTIONS]" << endl + << endl + << getBriefDescription() << endl; + + return str.str(); +} + +/****************************************************************************/ + +void CommandVersion::execute(MasterDevice &m, const StringVector &args) +{ + cout << "IgH EtherCAT master " << EC_MASTER_VERSION << endl; +} + +/*****************************************************************************/ diff --git a/tool/CommandVersion.h b/tool/CommandVersion.h new file mode 100644 index 0000000000000000000000000000000000000000..b056faa07b2eab73540b518ab1471af5e4c14e36 --- /dev/null +++ b/tool/CommandVersion.h @@ -0,0 +1,26 @@ +/***************************************************************************** + * + * $Id$ + * + ****************************************************************************/ + +#ifndef __COMMANDVERSION_H__ +#define __COMMANDVERSION_H__ + +#include "Command.h" + +/****************************************************************************/ + +class CommandVersion: + public Command +{ + public: + CommandVersion(); + + string helpString() const; + void execute(MasterDevice &, const StringVector &); +}; + +/****************************************************************************/ + +#endif diff --git a/tool/Makefile.am b/tool/Makefile.am index eb49fdb0c2074478187c3a83470240a01cfc9bc7..5cff1b277ce964fdca7398b977c8d3f4a5036ece 100644 --- a/tool/Makefile.am +++ b/tool/Makefile.am @@ -37,9 +37,9 @@ bin_PROGRAMS = ethercat ethercat_SOURCES = \ MasterDevice.cpp MasterDevice.h \ - Command.cpp \ CommandAlias.cpp \ CommandConfig.cpp \ + Command.cpp \ CommandData.cpp \ CommandDebug.cpp \ CommandDomains.cpp \ @@ -52,11 +52,18 @@ ethercat_SOURCES = \ CommandSlaves.cpp \ CommandStates.cpp \ CommandUpload.cpp \ + CommandVersion.cpp \ CommandXml.cpp \ coe_datatypes.cpp \ sii_crc.cpp \ main.cpp -ethercat_CXXFLAGS = -I../master -Wall +REV = `if test -s $(srcdir)/../svnrevision; then \ + cat $(srcdir)/../svnrevision; \ + else \ + svnversion $(srcdir)/.. 2>/dev/null || echo "unknown"; \ + fi` + +ethercat_CXXFLAGS = -I../master -Wall -DSVNREV=$(REV) #------------------------------------------------------------------------------ diff --git a/tool/main.cpp b/tool/main.cpp index f0973468b462cc3c013b26b5d7fdd59365ce9cef..b43e17dec989acebfd5907954f3aee7232ded722 100644 --- a/tool/main.cpp +++ b/tool/main.cpp @@ -16,15 +16,16 @@ using namespace std; #include "CommandData.h" #include "CommandDebug.h" #include "CommandDomains.h" +#include "CommandDownload.h" #include "CommandMaster.h" #include "CommandPdos.h" #include "CommandSdos.h" -#include "CommandDownload.h" -#include "CommandUpload.h" -#include "CommandSlaves.h" #include "CommandSiiRead.h" #include "CommandSiiWrite.h" +#include "CommandSlaves.h" #include "CommandStates.h" +#include "CommandUpload.h" +#include "CommandVersion.h" #include "CommandXml.h" /*****************************************************************************/ @@ -268,6 +269,7 @@ int main(int argc, char **argv) commandList.push_back(new CommandSlaves()); commandList.push_back(new CommandStates()); commandList.push_back(new CommandUpload()); + commandList.push_back(new CommandVersion()); commandList.push_back(new CommandXml()); getOptions(argc, argv);