lib/master.c
changeset 1341 32ba7ffb6c7f
parent 1326 ef907b0b5125
child 1363 11c0b2caa253
equal deleted inserted replaced
1340:3d45edb1b4a1 1341:32ba7ffb6c7f
    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",