--- a/tools/Master.cpp Mon Jun 09 13:24:16 2008 +0000
+++ b/tools/Master.cpp Mon Jun 09 13:45:22 2008 +0000
@@ -606,6 +606,47 @@
/****************************************************************************/
+void Master::siiRead(int slavePosition)
+{
+ ec_ioctl_sii_read_t data;
+ ec_ioctl_slave_t slave;
+ unsigned int i;
+
+ if (slavePosition < 0) {
+ stringstream err;
+ err << "'sii_read' requires a slave! Please specify --slave.";
+ throw MasterException(err.str());
+ }
+ data.slave_position = slavePosition;
+
+ open(Read);
+
+ getSlave(&slave, slavePosition);
+
+ if (!slave.sii_nwords)
+ return;
+
+ data.offset = 0;
+ data.nwords = slave.sii_nwords;
+ data.words = new uint16_t[data.nwords];
+
+ if (ioctl(fd, EC_IOCTL_SII_READ, &data) < 0) {
+ stringstream err;
+ delete [] data.words;
+ err << "Failed to read SII: " << strerror(errno);
+ throw MasterException(err.str());
+ }
+
+ for (i = 0; i < data.nwords; i++) {
+ uint16_t *w = data.words + i;
+ cout << *(uint8_t *) w << *((uint8_t *) w + 1);
+ }
+
+ delete [] data.words;
+}
+
+/****************************************************************************/
+
void Master::requestStates(
int slavePosition,
const vector<string> &commandArgs