equal
deleted
inserted
replaced
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 } |