diff --git a/master/cdev.c b/master/cdev.c index a60e87d7..2e85040e 100644 --- a/master/cdev.c +++ b/master/cdev.c @@ -1258,9 +1258,12 @@ int ec_cdev_ioctl_config( data.product_code = sc->product_code; for (i = 0; i < EC_MAX_SYNC_MANAGERS; i++) { data.syncs[i].dir = sc->sync_configs[i].dir; + data.syncs[i].watchdog_mode = sc->sync_configs[i].watchdog_mode; data.syncs[i].pdo_count = ec_pdo_list_count(&sc->sync_configs[i].pdos); } + data.watchdog_divider = sc->watchdog_divider; + data.watchdog_intervals = sc->watchdog_intervals; data.sdo_count = ec_slave_config_sdo_count(sc); data.slave_position = sc->slave ? sc->slave->ring_position : -1; data.dc_assign_activate = sc->dc_assign_activate; diff --git a/tool/CommandConfig.cpp b/tool/CommandConfig.cpp index 1dfbb622..376a8dfc 100644 --- a/tool/CommandConfig.cpp +++ b/tool/CommandConfig.cpp @@ -159,11 +159,34 @@ void CommandConfig::showDetailedConfigs( cout << "none" << endl; } + cout << "Watchdog Divider: "; + if (configIter->watchdog_divider) { + cout << dec << configIter->watchdog_divider; + } else { + cout << "default"; + } + cout << endl + << "Watchdog Intervals: "; + if (configIter->watchdog_intervals) { + cout << dec << configIter->watchdog_intervals; + } else { + cout << "default"; + } + cout << endl; + for (j = 0; j < EC_MAX_SYNC_MANAGERS; j++) { if (configIter->syncs[j].pdo_count) { - cout << "SM" << dec << j << " (" + cout << "SM" << dec << j << ", Dir: " << (configIter->syncs[j].dir == EC_DIR_INPUT - ? "Input" : "Output") << ")" << endl; + ? "Input" : "Output") << ", Watchdog: "; + switch (configIter->syncs[j].watchdog_mode) { + case EC_WD_DEFAULT: cout << "Default"; break; + case EC_WD_ENABLE: cout << "Enable"; break; + case EC_WD_DISABLE: cout << "Disable"; break; + default: cout << "???"; break; + } + cout << endl; + for (k = 0; k < configIter->syncs[j].pdo_count; k++) { m.getConfigPdo(&pdo, configIter->config_index, j, k);