diff -r 60a116ed3897 -r a864688e7de5 lib/slave_config.c --- a/lib/slave_config.c Mon Jul 27 10:44:16 2009 +0000 +++ b/lib/slave_config.c Mon Jul 27 10:48:52 2009 +0000 @@ -44,7 +44,7 @@ /*****************************************************************************/ 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_ioctl_config_t data; unsigned int i; @@ -55,6 +55,8 @@ memset(&data, 0x00, sizeof(ec_ioctl_config_t)); data.config_index = sc->index; data.syncs[sync_index].dir = dir; + data.syncs[sync_index].watchdog_mode = watchdog_mode; + data.syncs[sync_index].config_this = 1; if (ioctl(sc->master->fd, EC_IOCTL_SC_SYNC, &data) == -1) { fprintf(stderr, "Failed to config sync manager: %s\n", @@ -67,6 +69,24 @@ /*****************************************************************************/ +void ecrt_slave_config_watchdog(ec_slave_config_t *sc, + uint16_t divider, uint16_t intervals) +{ + ec_ioctl_config_t data; + + memset(&data, 0x00, sizeof(ec_ioctl_config_t)); + data.config_index = sc->index; + data.watchdog_divider = divider; + data.watchdog_intervals = intervals; + + if (ioctl(sc->master->fd, EC_IOCTL_SC_WATCHDOG, &data) == -1) { + fprintf(stderr, "Failed to config watchdog: %s\n", + strerror(errno)); + } +} + +/*****************************************************************************/ + int ecrt_slave_config_pdo_assign_add(ec_slave_config_t *sc, uint8_t sync_index, uint16_t pdo_index) { @@ -166,8 +186,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;