tools/main.cpp
changeset 1120 0ae26760c12d
parent 1119 0642492db0fc
child 1121 52a005ffd011
--- a/tools/main.cpp	Mon Jul 21 16:09:06 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
-/*****************************************************************************
- *
- * $Id$
- *
- ****************************************************************************/
-
-#include <getopt.h>
-#include <libgen.h> // basename()
-
-#include <iostream>
-#include <string>
-#include <vector>
-using namespace std;
-
-#include "Master.h"
-
-/*****************************************************************************/
-
-#define DEFAULT_MASTER 0
-
-static string cmdName;
-static unsigned int masterIndex = DEFAULT_MASTER;
-static int slavePosition = -1;
-static int domainIndex = -1;
-static string command;
-vector<string> commandArgs;
-static Master::Verbosity verbosity = Master::Normal;
-string dataTypeStr;
-bool force = false;
-bool helpWanted = false;
-
-/*****************************************************************************/
-
-void printUsage()
-{
-    cerr
-        << "Usage: " << cmdName << " <COMMAND> [OPTIONS]" << endl
-		<< "Commands:" << endl
-        << "  alias         Write alias addresses." << endl
-        << "  config        Show bus configuration." << endl
-        << "  data          Output binary domain process data." << endl
-        << "  debug         Set the master's debug level." << endl
-        << "  domain        Show domain information." << endl
-        << "  master        Show master information." << endl
-        << "  pdos          List Pdo assignment/mapping." << endl
-        << "  sdo_download  Write an Sdo entry." << endl
-        << "  sdos          List Sdo dictionaries." << endl
-        << "  sdo_upload    Read an Sdo entry." << endl
-        << "  sii_read      Output a slave's SII contents." << endl
-        << "  sii_write     Write slave's SII contents." << endl
-        << "  slaves        Show slaves." << endl
-        << "  state         Request slave states." << endl
-        << "  xml           Generate slave information xmls." << endl
-		<< "Global options:" << endl
-        << "  --master  -m <master>  Index of the master to use. Default: "
-		<< DEFAULT_MASTER << endl
-        << "  --slave   -s <index>   Positive numerical ring position,"
-        << endl
-        << "                         or 'all' for all slaves (default)."
-        << endl
-        << "  --domain  -d <index>   Positive numerical index,"
-        << endl
-        << "                         or 'all' for all domains (default)."
-        << endl
-        << "  --type    -t <type>    Forced Sdo data type." << endl
-        << "  --force   -f           Force action." << endl
-        << "  --quiet   -q           Output less information." << endl
-        << "  --verbose -v           Output more information." << endl
-        << "  --help    -h           Show this help." << endl
-        << "Call '" << cmdName << " <COMMAND> --help' for command-specific "
-        << "help." << endl
-        << "Send bug reports to " << PACKAGE_BUGREPORT << "." << endl;
-}
-
-/*****************************************************************************/
-
-void getOptions(int argc, char **argv)
-{
-    int c, argCount, optionIndex, number;
-	char *remainder;
-
-    static struct option longOptions[] = {
-        //name,     has_arg,           flag, val
-        {"master",  required_argument, NULL, 'm'},
-        {"slave",   required_argument, NULL, 's'},
-        {"domain",  required_argument, NULL, 'd'},
-        {"type",    required_argument, NULL, 't'},
-        {"force",   no_argument,       NULL, 'f'},
-        {"quiet",   no_argument,       NULL, 'q'},
-        {"verbose", no_argument,       NULL, 'v'},
-        {"help",    no_argument,       NULL, 'h'},
-        {}
-    };
-
-    do {
-        c = getopt_long(argc, argv, "m:s:d:t:fqvh", longOptions, &optionIndex);
-
-        switch (c) {
-            case 'm':
-                number = strtoul(optarg, &remainder, 0);
-                if (remainder == optarg || *remainder || number < 0) {
-                    cerr << "Invalid master number " << optarg << "!" << endl;
-                    printUsage();
-                    exit(1);
-                }
-				masterIndex = number;
-                break;
-
-            case 's':
-                if (!strcmp(optarg, "all")) {
-                    slavePosition = -1;
-                } else {
-                    number = strtoul(optarg, &remainder, 0);
-                    if (remainder == optarg || *remainder
-                            || number < 0 || number > 0xFFFF) {
-                        cerr << "Invalid slave position "
-                            << optarg << "!" << endl;
-                        printUsage();
-                        exit(1);
-                    }
-                    slavePosition = number;
-                }
-                break;
-
-            case 'd':
-                if (!strcmp(optarg, "all")) {
-                    domainIndex = -1;
-                } else {
-                    number = strtoul(optarg, &remainder, 0);
-                    if (remainder == optarg || *remainder || number < 0) {
-                        cerr << "Invalid domain index "
-							<< optarg << "!" << endl;
-                        printUsage();
-                        exit(1);
-                    }
-                    domainIndex = number;
-                }
-                break;
-
-            case 't':
-                dataTypeStr = optarg;
-                break;
-
-            case 'f':
-                force = true;
-                break;
-
-            case 'q':
-                verbosity = Master::Quiet;
-                break;
-
-            case 'v':
-                verbosity = Master::Verbose;
-                break;
-
-            case 'h':
-                helpWanted = true;
-                break;
-
-            case '?':
-                printUsage();
-                exit(1);
-
-            default:
-                break;
-        }
-    }
-    while (c != -1);
-
-	argCount = argc - optind;
-
-    if (!argCount) {
-        if (!helpWanted) {
-            cerr << "Please specify a command!" << endl;
-        }
-        printUsage();
-        exit(!helpWanted);
-	}
-
-    command = argv[optind];
-    while (++optind < argc)
-        commandArgs.push_back(string(argv[optind]));
-}
-
-/****************************************************************************/
-
-int main(int argc, char **argv)
-{
-    Master master;
-
-    cmdName = basename(argv[0]);
-    
-	getOptions(argc, argv);
-
-    master.setIndex(masterIndex);
-    master.setVerbosity(verbosity);
-
-    try {
-        if (command == "alias") {
-            master.writeAlias(slavePosition, force, commandArgs);
-        } else if (command == "config") {
-            master.showConfigs();
-        } else if (command == "data") {
-            master.outputData(domainIndex);
-        } else if (command == "debug") {
-            master.setDebug(commandArgs);
-        } else if (command == "domain") {
-            master.showDomains(domainIndex);
-		} else if (command == "master") {
-            master.showMaster();
-        } else if (command == "pdos") {
-            master.listPdos(slavePosition);
-        } else if (command == "sdos") {
-            master.listSdos(slavePosition);
-        } else if (command == "sdo_download" || command == "sd") {
-            master.sdoDownload(slavePosition, dataTypeStr, commandArgs);
-        } else if (command == "sdo_upload" || command == "su") {
-            master.sdoUpload(slavePosition, dataTypeStr, commandArgs);
-		} else if (command == "slave" || command == "slaves"
-                || command == "list" || command == "ls") {
-            master.showSlaves(slavePosition);
-        } else if (command == "sii_read" || command == "sr") {
-            master.siiRead(slavePosition);
-        } else if (command == "sii_write" || command == "sw") {
-            master.siiWrite(slavePosition, force, commandArgs);
-        } else if (command == "state") {
-            master.requestStates(slavePosition, commandArgs);
-        } else if (command == "xml") {
-            master.generateXml(slavePosition);
-        } else {
-            cerr << "Unknown command " << command << "!" << endl;
-            printUsage();
-            exit(1);
-        }
-    } catch (MasterException &e) {
-        cerr << e.what() << endl;
-        exit(1);
-    }
-
-	return 0;
-}
-
-/****************************************************************************/