Added 'ethercat version' command.
--- a/TODO Mon Jul 28 14:03:45 2008 +0000
+++ b/TODO Mon Jul 28 14:06:03 2008 +0000
@@ -14,10 +14,7 @@
* 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 @@
* 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:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool/CommandVersion.cpp Mon Jul 28 14:06:03 2008 +0000
@@ -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;
+}
+
+/*****************************************************************************/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool/CommandVersion.h Mon Jul 28 14:06:03 2008 +0000
@@ -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
--- a/tool/Makefile.am Mon Jul 28 14:03:45 2008 +0000
+++ b/tool/Makefile.am Mon Jul 28 14:06:03 2008 +0000
@@ -37,9 +37,9 @@
ethercat_SOURCES = \
MasterDevice.cpp MasterDevice.h \
- Command.cpp \
CommandAlias.cpp \
CommandConfig.cpp \
+ Command.cpp \
CommandData.cpp \
CommandDebug.cpp \
CommandDomains.cpp \
@@ -52,11 +52,18 @@
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)
#------------------------------------------------------------------------------
--- a/tool/main.cpp Mon Jul 28 14:03:45 2008 +0000
+++ b/tool/main.cpp Mon Jul 28 14:06:03 2008 +0000
@@ -16,15 +16,16 @@
#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 @@
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);