master/slave.c
changeset 190 4e32bcc6b361
parent 188 c0e49f4a1c07
child 195 674071846ee3
equal deleted inserted replaced
189:aabbfdacc2cc 190:4e32bcc6b361
   122 
   122 
   123     for (i = 0; i < 4; i++) {
   123     for (i = 0; i < 4; i++) {
   124         slave->dl_link[i] = 0;
   124         slave->dl_link[i] = 0;
   125         slave->dl_loop[i] = 0;
   125         slave->dl_loop[i] = 0;
   126         slave->dl_signal[i] = 0;
   126         slave->dl_signal[i] = 0;
       
   127         slave->sii_physical_layer[i] = 0xFF;
   127     }
   128     }
   128 
   129 
   129     return 0;
   130     return 0;
   130 }
   131 }
   131 
   132 
   617 
   618 
   618 int ec_slave_fetch_general(ec_slave_t *slave, /**< EtherCAT-Slave */
   619 int ec_slave_fetch_general(ec_slave_t *slave, /**< EtherCAT-Slave */
   619                            const uint8_t *data /**< Kategorie-Daten */
   620                            const uint8_t *data /**< Kategorie-Daten */
   620                            )
   621                            )
   621 {
   622 {
       
   623     unsigned int i;
       
   624 
   622     if (ec_slave_locate_string(slave, data[0], &slave->eeprom_group))
   625     if (ec_slave_locate_string(slave, data[0], &slave->eeprom_group))
   623         return -1;
   626         return -1;
   624     if (ec_slave_locate_string(slave, data[1], &slave->eeprom_name))
   627     if (ec_slave_locate_string(slave, data[1], &slave->eeprom_name))
   625         return -1;
   628         return -1;
   626     if (ec_slave_locate_string(slave, data[3], &slave->eeprom_desc))
   629     if (ec_slave_locate_string(slave, data[3], &slave->eeprom_desc))
   627         return -1;
   630         return -1;
       
   631 
       
   632     for (i = 0; i < 4; i++)
       
   633         slave->sii_physical_layer[i] = (data[4] & (0x03 << (i * 2))) >> (i * 2);
   628 
   634 
   629     return 0;
   635     return 0;
   630 }
   636 }
   631 
   637 
   632 /*****************************************************************************/
   638 /*****************************************************************************/
  1009 
  1015 
  1010     EC_INFO("  Station address: 0x%04X\n", slave->station_address);
  1016     EC_INFO("  Station address: 0x%04X\n", slave->station_address);
  1011 
  1017 
  1012     EC_INFO("  Data link status:\n");
  1018     EC_INFO("  Data link status:\n");
  1013     for (i = 0; i < 4; i++) {
  1019     for (i = 0; i < 4; i++) {
  1014         EC_INFO("    Port %i: link %s, loop %s, %s\n", i,
  1020         EC_INFO("    Port %i (", i);
       
  1021         switch (slave->sii_physical_layer[i]) {
       
  1022             case 0x00:
       
  1023                 printk("EBUS");
       
  1024                 break;
       
  1025             case 0x01:
       
  1026                 printk("100BASE-TX");
       
  1027                 break;
       
  1028             case 0x02:
       
  1029                 printk("100BASE-FX");
       
  1030                 break;
       
  1031             default:
       
  1032                 printk("unknown");
       
  1033         }
       
  1034         printk(")\n");
       
  1035         EC_INFO("      link %s, loop %s, %s\n",
  1015                 slave->dl_link[i] ? "up" : "down",
  1036                 slave->dl_link[i] ? "up" : "down",
  1016                 slave->dl_loop[i] ? "closed" : "open",
  1037                 slave->dl_loop[i] ? "closed" : "open",
  1017                 slave->dl_signal[i] ? "signal detected" : "no signal");
  1038                 slave->dl_signal[i] ? "signal detected" : "no signal");
  1018     }
  1039     }
  1019 
  1040