tools/main.cpp
changeset 968 b0e894257743
parent 966 f1a7ea8a550a
child 972 ad59641a68c8
--- a/tools/main.cpp	Fri Jun 06 13:03:56 2008 +0000
+++ b/tools/main.cpp	Fri Jun 06 15:13:25 2008 +0000
@@ -16,16 +16,14 @@
 /*****************************************************************************/
 
 #define DEFAULT_MASTER 0
-#define DEFAULT_COMMAND "slaves"
-#define DEFAULT_SLAVEPOSITION -1
-#define DEFAULT_DOMAININDEX -1
 
 static unsigned int masterIndex = DEFAULT_MASTER;
-static int slavePosition = DEFAULT_SLAVEPOSITION;
-static int domainIndex = DEFAULT_DOMAININDEX;
-static string command = DEFAULT_COMMAND;
+static int slavePosition = -1;
+static int domainIndex = -1;
+static string command;
 vector<string> commandArgs;
 static bool quiet = false;
+string dataTypeStr;
 
 /*****************************************************************************/
 
@@ -41,6 +39,7 @@
         << "  master             Show master information." << endl
         << "  pdos               List Pdo mapping." << endl
         << "  sdos               List Sdo dictionaries." << endl
+        << "  sdo_upload (su)    Read Sdo entries." << endl
         << "  state              Request slave states." << endl
         << "  xml                Generate slave information xmls." << endl
 		<< "Global options:" << endl
@@ -54,6 +53,7 @@
         << endl
         << "                         or 'all' for all domains (default)."
         << endl
+        << "  --type    -t <type>    Forced Sdo data type." << endl
         << "  --quiet   -q           Show less output." << endl
         << "  --help    -h           Show this help." << endl;
 }
@@ -70,13 +70,14 @@
         {"master", required_argument, NULL, 'm'},
         {"slave",  required_argument, NULL, 's'},
         {"domain", required_argument, NULL, 'd'},
+        {"type",   required_argument, NULL, 't'},
         {"quiet",  no_argument,       NULL, 'q'},
         {"help",   no_argument,       NULL, 'h'},
         {}
     };
 
     do {
-        c = getopt_long(argc, argv, "m:s:d:qh", longOptions, &optionIndex);
+        c = getopt_long(argc, argv, "m:s:d:t:qh", longOptions, &optionIndex);
 
         switch (c) {
             case 'm':
@@ -120,6 +121,10 @@
                 }
                 break;
 
+            case 't':
+                dataTypeStr = optarg;
+                break;
+
             case 'q':
                 quiet = true;
                 break;
@@ -173,6 +178,8 @@
             master.listPdos(slavePosition, quiet);
         } else if (command == "sdos") {
             master.listSdos(slavePosition, quiet);
+        } else if (command == "sdo_upload" || command == "su") {
+            master.sdoUpload(slavePosition, dataTypeStr, commandArgs);
         } else if (command == "state") {
             master.requestStates(slavePosition, commandArgs);
         } else if (command == "xml") {