diff -r 60a116ed3897 -r a864688e7de5 master/slave_config.c --- 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);