Hi all,

I am trying to write a simplified ethercat communication module on top of Igh 
master for some of my colleagues who do not want to know the details of how the 
master works.
Based on the sdo_read() function in the examples provided with the master, I 
have written the following write_sdo() function:

int write_sdo(        ec_sdo_request_t *sdo,       uint8_t *data)
{
  int sdo_write_ret = 0;
  size_t size = ecrt_sdo_request_data_size(sdo);

  switch (ecrt_sdo_request_state(sdo)) {
    case EC_REQUEST_UNUSED:
      ecrt_sdo_request_write(sdo); // trigger first read
      break;
    case EC_REQUEST_BUSY:
      fprintf(stderr, "Still busy...\n");
      break;
    case EC_REQUEST_SUCCESS:
      if(!(sdo_write_ret = ec_sdo_request_copy_data(sdo_server, data, size))) {
        printf("Failed to write to SDO channel.\n");
      }
      ecrt_sdo_request_write(sdo); // trigger next read
      break;
  case EC_REQUEST_ERROR:
    fprintf(stderr, "Failed to write to SDO channel!\n");
    ecrt_sdo_request_write(sdo); // retry reading
    break;
  }

  return sdo_write_ret;
}


When compiling I get an undefined reference to `ec_sdo_request_copy_data' 
error. I tried adding
EXPORT_SYMBOL(ec_sdo_request_copy_data);
at the end of /master/sdo_request.c and rebuild the master, but it didn't help.

It would be great if someone could help with this issue.

Best Regards,
Ali
_______________________________________________
etherlab-users mailing list
etherlab-users@etherlab.org
http://lists.etherlab.org/mailman/listinfo/etherlab-users

Reply via email to