lib/master.c
branchstable-1.5
changeset 2242 d23f69156cfd
parent 2241 0ba77ef52922
child 2380 cf9db49bcce8
equal deleted inserted replaced
2241:0ba77ef52922 2242:d23f69156cfd
   214 
   214 
   215 int ecrt_master_get_slave(ec_master_t *master, uint16_t slave_position,
   215 int ecrt_master_get_slave(ec_master_t *master, uint16_t slave_position,
   216         ec_slave_info_t *slave_info)
   216         ec_slave_info_t *slave_info)
   217 {
   217 {
   218     ec_ioctl_slave_t data;
   218     ec_ioctl_slave_t data;
   219     int index;
   219     int index, i;
   220 
   220 
   221     data.position = slave_position;
   221     data.position = slave_position;
   222 
   222 
   223     if (ioctl(master->fd, EC_IOCTL_SLAVE, &data) == -1) {
   223     if (ioctl(master->fd, EC_IOCTL_SLAVE, &data) == -1) {
   224         fprintf(stderr, "Failed to get slave info: %s\n", strerror(errno));
   224         fprintf(stderr, "Failed to get slave info: %s\n", strerror(errno));
   230     slave_info->product_code = data.product_code;
   230     slave_info->product_code = data.product_code;
   231     slave_info->revision_number = data.revision_number;
   231     slave_info->revision_number = data.revision_number;
   232     slave_info->serial_number = data.serial_number;
   232     slave_info->serial_number = data.serial_number;
   233     slave_info->alias = data.alias;
   233     slave_info->alias = data.alias;
   234     slave_info->current_on_ebus = data.current_on_ebus;
   234     slave_info->current_on_ebus = data.current_on_ebus;
   235     strncpy((char*) slave_info->ports, (char*) data.ports, sizeof(slave_info->ports));
   235     for ( i = 0; i < EC_MAX_PORTS; i++ ) {
       
   236     	slave_info->ports[i].desc = data.ports[i].desc;
       
   237     	slave_info->ports[i].link.link_up = data.ports[i].link.link_up;
       
   238     	slave_info->ports[i].link.loop_closed = data.ports[i].link.loop_closed;
       
   239     	slave_info->ports[i].link.signal_detected = data.ports[i].link.signal_detected;
       
   240     	slave_info->ports[i].receive_time = data.ports[i].receive_time;
       
   241     	slave_info->ports[i].next_slave = data.ports[i].next_slave;
       
   242     	slave_info->ports[i].delay_to_next_dc = data.ports[i].delay_to_next_dc;
       
   243     }
   236     slave_info->al_state = data.al_state;
   244     slave_info->al_state = data.al_state;
   237     slave_info->error_flag = data.error_flag;
   245     slave_info->error_flag = data.error_flag;
   238     slave_info->sync_count = data.sync_count;
   246     slave_info->sync_count = data.sync_count;
   239     slave_info->sdo_count = data.sdo_count;
   247     slave_info->sdo_count = data.sdo_count;
   240     strncpy(slave_info->name, data.name, EC_MAX_STRING_LENGTH);
   248     strncpy(slave_info->name, data.name, EC_MAX_STRING_LENGTH);