tool/CommandConfig.cpp
changeset 1580 1baac79a40cf
parent 1526 66edd310830c
child 1804 742607c464c4
equal deleted inserted replaced
1579:326d47aa986c 1580:1baac79a40cf
   129 		MasterDevice &m,
   129 		MasterDevice &m,
   130 		const ConfigList &configList
   130 		const ConfigList &configList
   131 		)
   131 		)
   132 {
   132 {
   133     ConfigList::const_iterator configIter;
   133     ConfigList::const_iterator configIter;
   134     unsigned int j, k, l;
   134     unsigned int i, j, k, l;
   135     ec_ioctl_slave_t slave;
   135     ec_ioctl_slave_t slave;
   136     ec_ioctl_config_pdo_t pdo;
   136     ec_ioctl_config_pdo_t pdo;
   137     ec_ioctl_config_pdo_entry_t entry;
   137     ec_ioctl_config_pdo_entry_t entry;
   138     ec_ioctl_config_sdo_t sdo;
   138     ec_ioctl_config_sdo_t sdo;
   139 
   139 
   157                 << " (" << alStateString(slave.al_state) << ")" << endl;
   157                 << " (" << alStateString(slave.al_state) << ")" << endl;
   158         } else {
   158         } else {
   159             cout << "none" << endl;
   159             cout << "none" << endl;
   160         }
   160         }
   161 
   161 
       
   162         cout << "Watchdog divider: ";
       
   163         if (configIter->watchdog_divider) {
       
   164             cout << dec << configIter->watchdog_divider;
       
   165         } else {
       
   166             cout << "(Default)";
       
   167         }
       
   168         cout << endl
       
   169             << "Watchdog intervals: ";
       
   170         if (configIter->watchdog_intervals) {
       
   171             cout << dec << configIter->watchdog_intervals;
       
   172         } else {
       
   173             cout << "(Default)";
       
   174         }
       
   175         cout << endl;
       
   176 
   162         for (j = 0; j < EC_MAX_SYNC_MANAGERS; j++) {
   177         for (j = 0; j < EC_MAX_SYNC_MANAGERS; j++) {
   163             if (configIter->syncs[j].pdo_count) {
   178             if (configIter->syncs[j].pdo_count) {
   164                 cout << "SM" << dec << j << " ("
   179                 cout << "SM" << dec << j << ", Dir: "
   165                     << (configIter->syncs[j].dir == EC_DIR_INPUT
   180                     << (configIter->syncs[j].dir == EC_DIR_INPUT
   166                             ? "Input" : "Output") << ")" << endl;
   181                             ? "Input" : "Output") << ", Watchdog: ";
       
   182                 switch (configIter->syncs[j].watchdog_mode) {
       
   183                     case EC_WD_DEFAULT: cout << "Default"; break;
       
   184                     case EC_WD_ENABLE: cout << "Enable"; break;
       
   185                     case EC_WD_DISABLE: cout << "Disable"; break;
       
   186                     default: cout << "???"; break;
       
   187                 }
       
   188                 cout << endl;
       
   189 
   167                 for (k = 0; k < configIter->syncs[j].pdo_count; k++) {
   190                 for (k = 0; k < configIter->syncs[j].pdo_count; k++) {
   168                     m.getConfigPdo(&pdo, configIter->config_index, j, k);
   191                     m.getConfigPdo(&pdo, configIter->config_index, j, k);
   169 
   192 
   170                     cout << "  PDO 0x" << hex << setfill('0')
   193                     cout << "  PDO 0x" << hex << setfill('0')
   171                         << setw(4) << pdo.index << endl;
   194                         << setw(4) << pdo.index << endl;
   192 
   215 
   193                 cout << "  0x"
   216                 cout << "  0x"
   194                     << hex << setfill('0')
   217                     << hex << setfill('0')
   195                     << setw(4) << sdo.index << ":"
   218                     << setw(4) << sdo.index << ":"
   196                     << setw(2) << (unsigned int) sdo.subindex
   219                     << setw(2) << (unsigned int) sdo.subindex
   197                     << ", " << dec << sdo.size << " byte: " << hex;
   220                     << ", " << dec << sdo.size << " byte" << endl;
   198 
   221 
   199                 switch (sdo.size) {
   222                 cout << "    " << hex;
   200                     case 1:
   223                 for (i = 0; i < min((uint32_t) sdo.size,
   201                         cout << "0x" << setw(2)
   224                             (uint32_t) EC_MAX_SDO_DATA_SIZE); i++) {
   202                             << (unsigned int) *(uint8_t *) &sdo.data;
   225                     cout << setw(2) << (unsigned int) sdo.data[i];
   203                         break;
   226                     if ((i + 1) % 16 == 0 && i < sdo.size - 1) {
   204                     case 2:
   227                         cout << endl << "    ";
   205                         cout << "0x" << setw(4)
   228                     } else {
   206                             << le16_to_cpup(&sdo.data);
   229                         cout << " ";
   207                         break;
   230                     }
   208                     case 4:
       
   209                         cout << "0x" << setw(8)
       
   210                             << le32_to_cpup(&sdo.data);
       
   211                         break;
       
   212                     default:
       
   213                         cout << "???";
       
   214                 }
   231                 }
   215 
   232 
   216                 cout << endl;
   233                 cout << endl;
       
   234                 if (sdo.size > EC_MAX_SDO_DATA_SIZE) {
       
   235                     cout << "    ..." << endl;
       
   236                 }
   217             }
   237             }
   218         } else {
   238         } else {
   219             cout << "  None." << endl;
   239             cout << "  None." << endl;
   220         }
   240         }
   221 
   241