98 return sc; |
98 return sc; |
99 } |
99 } |
100 |
100 |
101 /*****************************************************************************/ |
101 /*****************************************************************************/ |
102 |
102 |
|
103 int ecrt_master_slave(ec_master_t *master, uint16_t position, |
|
104 ec_slave_info_t *slave_info) |
|
105 { |
|
106 ec_ioctl_slave_t data; |
|
107 int index; |
|
108 |
|
109 data.position = position; |
|
110 |
|
111 if (ioctl(master->fd, EC_IOCTL_SLAVE, &data) == -1) { |
|
112 fprintf(stderr, "Failed to get slave info: %s\n", |
|
113 strerror(errno)); |
|
114 return -1; |
|
115 } |
|
116 |
|
117 slave_info->position = data.position; |
|
118 slave_info->vendor_id = data.vendor_id; |
|
119 slave_info->product_code = data.product_code; |
|
120 slave_info->revision_number = data.revision_number; |
|
121 slave_info->serial_number = data.serial_number; |
|
122 slave_info->alias = data.alias; |
|
123 slave_info->current_on_ebus = data.current_on_ebus; |
|
124 slave_info->al_state = data.al_state; |
|
125 slave_info->error_flag = data.error_flag; |
|
126 slave_info->sync_count = data.sync_count; |
|
127 slave_info->sdo_count = data.sdo_count; |
|
128 strncpy(slave_info->name, data.name, EC_IOCTL_STRING_SIZE); |
|
129 |
|
130 return 0; |
|
131 } |
|
132 |
|
133 /*****************************************************************************/ |
|
134 |
103 int ecrt_master_activate(ec_master_t *master) |
135 int ecrt_master_activate(ec_master_t *master) |
104 { |
136 { |
105 if (ioctl(master->fd, EC_IOCTL_ACTIVATE, |
137 if (ioctl(master->fd, EC_IOCTL_ACTIVATE, |
106 &master->process_data_size) == -1) { |
138 &master->process_data_size) == -1) { |
107 fprintf(stderr, "Failed to activate master: %s\n", |
139 fprintf(stderr, "Failed to activate master: %s\n", |