lib/master.c
branchredundancy
changeset 2380 cf9db49bcce8
parent 2338 76d092535367
child 2419 fdb85a806585
equal deleted inserted replaced
2379:6f100ee02e65 2380:cf9db49bcce8
   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     for ( i = 0; i < EC_MAX_PORTS; i++ ) {
   235     for ( i = 0; i < EC_MAX_PORTS; i++ ) {
   236     	slave_info->ports[i].desc = data.ports[i].desc;
   236     	slave_info->ports[i].desc = data.ports[i].desc;
   237     	slave_info->ports[i].link.link_up = data.ports[i].link.link_up;
   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;
   238     	slave_info->ports[i].link.loop_closed =
   239     	slave_info->ports[i].link.signal_detected = data.ports[i].link.signal_detected;
   239             data.ports[i].link.loop_closed;
       
   240     	slave_info->ports[i].link.signal_detected =
       
   241             data.ports[i].link.signal_detected;
   240     	slave_info->ports[i].receive_time = data.ports[i].receive_time;
   242     	slave_info->ports[i].receive_time = data.ports[i].receive_time;
   241     	slave_info->ports[i].next_slave = data.ports[i].next_slave;
   243     	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;
   244     	slave_info->ports[i].delay_to_next_dc =
       
   245             data.ports[i].delay_to_next_dc;
   243     }
   246     }
   244     slave_info->al_state = data.al_state;
   247     slave_info->al_state = data.al_state;
   245     slave_info->error_flag = data.error_flag;
   248     slave_info->error_flag = data.error_flag;
   246     slave_info->sync_count = data.sync_count;
   249     slave_info->sync_count = data.sync_count;
   247     slave_info->sdo_count = data.sdo_count;
   250     slave_info->sdo_count = data.sdo_count;
   254 int ecrt_master_get_sync_manager(ec_master_t *master, uint16_t slave_position,
   257 int ecrt_master_get_sync_manager(ec_master_t *master, uint16_t slave_position,
   255         uint8_t sync_index, ec_sync_info_t *sync)
   258         uint8_t sync_index, ec_sync_info_t *sync)
   256 {
   259 {
   257     ec_ioctl_slave_sync_t data;
   260     ec_ioctl_slave_sync_t data;
   258 
   261 
   259     if (sync_index >= EC_MAX_SYNC_MANAGERS)
   262     if (sync_index >= EC_MAX_SYNC_MANAGERS) {
   260         return -ENOENT;
   263         return -ENOENT;
       
   264     }
   261 
   265 
   262     memset(&data, 0x00, sizeof(ec_ioctl_slave_sync_t));
   266     memset(&data, 0x00, sizeof(ec_ioctl_slave_sync_t));
   263     data.slave_position = slave_position;
   267     data.slave_position = slave_position;
   264     data.sync_index = sync_index;
   268     data.sync_index = sync_index;
   265 
   269 
   550     }
   554     }
   551 }
   555 }
   552 
   556 
   553 /*****************************************************************************/
   557 /*****************************************************************************/
   554 
   558 
       
   559 int ecrt_master_link_state(const ec_master_t *master, unsigned int dev_idx,
       
   560         ec_master_link_state_t *state)
       
   561 {
       
   562     ec_ioctl_link_state_t io;
       
   563 
       
   564     io.dev_idx = dev_idx;
       
   565     io.state = state;
       
   566     if (ioctl(master->fd, EC_IOCTL_MASTER_LINK_STATE, &io) == -1) {
       
   567         fprintf(stderr, "Failed to get link state: %s\n", strerror(errno));
       
   568         return -errno;
       
   569     }
       
   570 }
       
   571 
       
   572 /*****************************************************************************/
       
   573 
   555 void ecrt_master_application_time(ec_master_t *master, uint64_t app_time)
   574 void ecrt_master_application_time(ec_master_t *master, uint64_t app_time)
   556 {
   575 {
   557     ec_ioctl_app_time_t data;
   576     ec_ioctl_app_time_t data;
   558 
   577 
   559     data.app_time = app_time;
   578     data.app_time = app_time;