tool/CommandUpload.cpp
changeset 1826 ec6223c3b7ec
parent 1804 742607c464c4
child 1835 20748e9d2238
equal deleted inserted replaced
1825:65781b048a47 1826:ec6223c3b7ec
    30 #include <iostream>
    30 #include <iostream>
    31 #include <iomanip>
    31 #include <iomanip>
    32 using namespace std;
    32 using namespace std;
    33 
    33 
    34 #include "CommandUpload.h"
    34 #include "CommandUpload.h"
       
    35 #include "MasterDevice.h"
    35 
    36 
    36 /*****************************************************************************/
    37 /*****************************************************************************/
    37 
    38 
    38 CommandUpload::CommandUpload():
    39 CommandUpload::CommandUpload():
    39     SdoCommand("upload", "Read an SDO entry from a slave.")
    40     SdoCommand("upload", "Read an SDO entry from a slave.")
    79     return str.str();
    80     return str.str();
    80 }
    81 }
    81 
    82 
    82 /****************************************************************************/
    83 /****************************************************************************/
    83 
    84 
    84 void CommandUpload::execute(MasterDevice &m, const StringVector &args)
    85 void CommandUpload::execute(const StringVector &args)
    85 {
    86 {
    86     SlaveList slaves;
    87     SlaveList slaves;
    87     stringstream err, strIndex, strSubIndex;
    88     stringstream err, strIndex, strSubIndex;
    88     ec_ioctl_slave_sdo_upload_t data;
    89     ec_ioctl_slave_sdo_upload_t data;
    89     const DataType *dataType = NULL;
    90     const DataType *dataType = NULL;
   111         err << "Invalid SDO subindex '" << args[1] << "'!";
   112         err << "Invalid SDO subindex '" << args[1] << "'!";
   112         throwInvalidUsageException(err);
   113         throwInvalidUsageException(err);
   113     }
   114     }
   114     data.sdo_entry_subindex = uval;
   115     data.sdo_entry_subindex = uval;
   115 
   116 
       
   117     if (getMasterIndices().size() != 1) {
       
   118         err << getName() << " requires to select a single master!";
       
   119         throwInvalidUsageException(err);
       
   120     }
       
   121     MasterDevice m(getMasterIndices().front());
   116     m.open(MasterDevice::Read);
   122     m.open(MasterDevice::Read);
   117     slaves = selectedSlaves(m);
   123     slaves = selectedSlaves(m);
   118     if (slaves.size() != 1) {
   124     if (slaves.size() != 1) {
   119         throwSingleSlaveRequired(slaves.size());
   125         throwSingleSlaveRequired(slaves.size());
   120     }
   126     }