898 sdodata->subindex = sdo_subindex; |
898 sdodata->subindex = sdo_subindex; |
899 memcpy(sdodata->data, data, size); |
899 memcpy(sdodata->data, data, size); |
900 sdodata->size = size; |
900 sdodata->size = size; |
901 |
901 |
902 list_add_tail(&sdodata->list, &slave->sdo_confs); |
902 list_add_tail(&sdodata->list, &slave->sdo_confs); |
|
903 return 0; |
|
904 } |
|
905 |
|
906 /*****************************************************************************/ |
|
907 |
|
908 /** |
|
909 \return 0 in case of success, else < 0 |
|
910 */ |
|
911 |
|
912 int ec_slave_validate(const ec_slave_t *slave, /**< EtherCAT slave */ |
|
913 uint32_t vendor_id, /**< vendor ID */ |
|
914 uint32_t product_code /**< product code */ |
|
915 ) |
|
916 { |
|
917 if (vendor_id != slave->sii_vendor_id || |
|
918 product_code != slave->sii_product_code) { |
|
919 EC_ERR("Invalid slave type at position %i - Requested: 0x%08X 0x%08X," |
|
920 " found: 0x%08X 0x%08X\".\n", slave->ring_position, vendor_id, |
|
921 product_code, slave->sii_vendor_id, slave->sii_product_code); |
|
922 return -1; |
|
923 } |
903 return 0; |
924 return 0; |
904 } |
925 } |
905 |
926 |
906 /****************************************************************************** |
927 /****************************************************************************** |
907 * Realtime interface |
928 * Realtime interface |