master/master.c
changeset 116 231b22fc034b
parent 114 e4b4b5a85e75
child 119 b2de89096010
equal deleted inserted replaced
115:509afb04ded0 116:231b22fc034b
   605 
   605 
   606         if (alias_requested) {
   606         if (alias_requested) {
   607             for (i = alias_slave_index + 1; i < master->slave_count; i++) {
   607             for (i = alias_slave_index + 1; i < master->slave_count; i++) {
   608                 slave = master->slaves + i;
   608                 slave = master->slaves + i;
   609                 if (!slave->type || slave->type->bus_coupler) break;
   609                 if (!slave->type || slave->type->bus_coupler) break;
   610                 if (i - alias_slave_index - 1 == second) return slave;
   610                 if (i - alias_slave_index == second) return slave;
   611             }
   611             }
   612             EC_ERR("Slave address \"%s\" - Bus coupler %i has no %lu. slave"
   612             EC_ERR("Slave address \"%s\" - Bus coupler %i has no %lu. slave"
   613                    " following!\n", address,
   613                    " following!\n", address,
   614                    (master->slaves + alias_slave_index)->ring_position,
   614                    (master->slaves + alias_slave_index)->ring_position,
   615                    second);
   615                    second);
   618         else {
   618         else {
   619             coupler_idx = -1;
   619             coupler_idx = -1;
   620             slave_idx = 0;
   620             slave_idx = 0;
   621             for (i = 0; i < master->slave_count; i++, slave_idx++) {
   621             for (i = 0; i < master->slave_count; i++, slave_idx++) {
   622                 slave = master->slaves + i;
   622                 slave = master->slaves + i;
   623                 if (!slave->type) continue; // FIXME
   623                 if (!slave->type) continue;
   624                 if (slave->type->bus_coupler) {
   624                 if (slave->type->bus_coupler) {
   625                     coupler_idx++;
   625                     coupler_idx++;
   626                     slave_idx = 0;
   626                     slave_idx = 0;
   627                 }
   627                 }
   628                 if (coupler_idx == first && slave_idx == second) return slave;
   628                 if (coupler_idx == first && slave_idx == second) return slave;