master/domain.c
changeset 410 3b8e94d623ab
parent 404 7f7f429e13c7
child 416 4f007cd2a79d
equal deleted inserted replaced
409:bc4c852e1b93 410:3b8e94d623ab
   437     const ec_sii_pdo_t *pdo;
   437     const ec_sii_pdo_t *pdo;
   438     const ec_sii_pdo_entry_t *entry;
   438     const ec_sii_pdo_entry_t *entry;
   439 
   439 
   440     master = domain->master;
   440     master = domain->master;
   441 
   441 
   442     // translate address
   442     // translate address and validate slave
   443     if (!(slave = ecrt_master_get_slave(master, address))) return NULL;
   443     if (!(slave = ecrt_master_get_slave(master, address))) return NULL;
   444 
   444     if (ec_slave_validate(slave, vendor_id, product_code)) return NULL;
   445     if (vendor_id != slave->sii_vendor_id ||
       
   446         product_code != slave->sii_product_code) {
       
   447         EC_ERR("Invalid slave type at position %i - Requested: 0x%08X 0x%08X,"
       
   448                " found: 0x%08X 0x%08X\".\n", slave->ring_position, vendor_id,
       
   449                product_code, slave->sii_vendor_id, slave->sii_product_code);
       
   450         return NULL;
       
   451     }
       
   452 
   445 
   453     if (!data_ptr) {
   446     if (!data_ptr) {
   454         // data_ptr is NULL => mark slave as "registered" (do not warn)
   447         // data_ptr is NULL => mark slave as "registered" (do not warn)
   455         slave->registered = 1;
   448         slave->registered = 1;
   456     }
   449     }