--- a/master/slave_config.c Mon Jul 27 10:44:16 2009 +0000
+++ b/master/slave_config.c Mon Jul 27 10:48:52 2009 +0000
@@ -66,6 +66,8 @@
sc->position = position;
sc->vendor_id = vendor_id;
sc->product_code = product_code;
+ sc->watchdog_divider = 0; // use default
+ sc->watchdog_intervals = 0; // use default
sc->slave = NULL;
@@ -411,13 +413,14 @@
*****************************************************************************/
int ecrt_slave_config_sync_manager(ec_slave_config_t *sc, uint8_t sync_index,
- ec_direction_t dir)
+ ec_direction_t dir, ec_watchdog_mode_t watchdog_mode)
{
ec_sync_config_t *sync_config;
if (sc->master->debug_level)
EC_DBG("ecrt_slave_config_sync_manager(sc = 0x%x, sync_index = %u, "
- "dir = %u)\n", (u32) sc, sync_index, dir);
+ "dir = %i, watchdog_mode = %i)\n",
+ (u32) sc, sync_index, dir, watchdog_mode);
if (sync_index >= EC_MAX_SYNC_MANAGERS) {
EC_ERR("Invalid sync manager index %u!\n", sync_index);
@@ -431,11 +434,25 @@
sync_config = &sc->sync_configs[sync_index];
sync_config->dir = dir;
+ sync_config->watchdog_mode = watchdog_mode;
return 0;
}
/*****************************************************************************/
+void ecrt_slave_config_watchdog(ec_slave_config_t *sc,
+ uint16_t divider, uint16_t intervals)
+{
+ if (sc->master->debug_level)
+ EC_DBG("%s(sc = 0x%x, divider = %u, intervals = %u)\n",
+ __func__, (u32) sc, divider, intervals);
+
+ sc->watchdog_divider = divider;
+ sc->watchdog_intervals = intervals;
+}
+
+/*****************************************************************************/
+
int ecrt_slave_config_pdo_assign_add(ec_slave_config_t *sc,
uint8_t sync_index, uint16_t pdo_index)
{
@@ -579,8 +596,8 @@
return -ENOENT;
}
- ret = ecrt_slave_config_sync_manager(
- sc, sync_info->index, sync_info->dir);
+ ret = ecrt_slave_config_sync_manager(sc, sync_info->index,
+ sync_info->dir, sync_info->watchdog_mode);
if (ret)
return ret;
@@ -894,6 +911,7 @@
/** \cond */
EXPORT_SYMBOL(ecrt_slave_config_sync_manager);
+EXPORT_SYMBOL(ecrt_slave_config_watchdog);
EXPORT_SYMBOL(ecrt_slave_config_pdo_assign_add);
EXPORT_SYMBOL(ecrt_slave_config_pdo_assign_clear);
EXPORT_SYMBOL(ecrt_slave_config_pdo_mapping_add);