master/slave.c
changeset 147 a355b587b4bc
parent 145 11a82e4fd31b
child 155 ff65679b65fe
equal deleted inserted replaced
146:73a5f7dd3024 147:a355b587b4bc
   904     ec_eeprom_pdo_entry_t *pdo_entry;
   904     ec_eeprom_pdo_entry_t *pdo_entry;
   905     ec_sdo_t *sdo;
   905     ec_sdo_t *sdo;
   906     ec_sdo_entry_t *sdo_entry;
   906     ec_sdo_entry_t *sdo_entry;
   907     int first, i;
   907     int first, i;
   908 
   908 
       
   909     if (!verbosity) {
       
   910         if (slave->type) {
       
   911             EC_INFO("%2i) %s %s: %s\n", slave->ring_position,
       
   912                     slave->type->vendor_name, slave->type->product_name,
       
   913                     slave->type->description);
       
   914         }
       
   915         else {
       
   916             EC_INFO("%2i) UNKNOWN SLAVE: 0x%08X 0x%08X\n",
       
   917                     slave->ring_position, slave->sii_vendor_id,
       
   918                     slave->sii_product_code);
       
   919         }
       
   920         return;
       
   921     }
       
   922 
   909     EC_INFO("x-- EtherCAT slave information ---------------\n");
   923     EC_INFO("x-- EtherCAT slave information ---------------\n");
   910 
   924 
   911     if (slave->type) {
   925     if (slave->type) {
   912         EC_INFO("| Vendor \"%s\", Product \"%s\": %s\n",
   926         EC_INFO("| Vendor \"%s\", Product \"%s\": %s\n",
   913                 slave->type->vendor_name, slave->type->product_name,
   927                 slave->type->vendor_name, slave->type->product_name,
   918     }
   932     }
   919 
   933 
   920     EC_INFO("| Ring position: %i, Station address: 0x%04X\n",
   934     EC_INFO("| Ring position: %i, Station address: 0x%04X\n",
   921             slave->ring_position, slave->station_address);
   935             slave->ring_position, slave->station_address);
   922 
   936 
   923     if (verbosity > 0) // Etwas geschwätziger
   937     EC_INFO("| Data link status:\n");
   924     {
   938     for (i = 0; i < 2; i++) {
   925         EC_INFO("| Data link status:\n");
   939         EC_INFO("|   Port %i: link %s, loop %s, %s\n", i,
   926         for (i = 0; i < 2; i++) {
   940                 slave->dl_status_link[i] ? "up" : "down",
   927             EC_INFO("|   Port %i: link %s, loop %s, %s\n", i,
   941                 slave->dl_status_loop[i] ? "closed" : "open",
   928                     slave->dl_status_link[i] ? "up" : "down",
   942                 slave->dl_status_comm[i] ? "comm. establ." : "no comm.");
   929                     slave->dl_status_loop[i] ? "closed" : "open",
   943     }
   930                     slave->dl_status_comm[i] ? "comm. establ." : "no comm.");
   944 
   931         }
   945     EC_INFO("| Base information:\n");
   932 
   946     EC_INFO("|   Type %u, Revision %i, Build %i\n",
   933         EC_INFO("| Base information:\n");
   947             slave->base_type, slave->base_revision, slave->base_build);
   934         EC_INFO("|   Type %u, Revision %i, Build %i\n",
   948     EC_INFO("|   Supported FMMUs: %i, Sync managers: %i\n",
   935                 slave->base_type, slave->base_revision, slave->base_build);
   949             slave->base_fmmu_count, slave->base_sync_count);
   936         EC_INFO("|   Supported FMMUs: %i, Sync managers: %i\n",
   950 
   937                 slave->base_fmmu_count, slave->base_sync_count);
   951     if (slave->sii_mailbox_protocols) {
   938 
   952         EC_INFO("| Mailbox communication:\n");
   939         if (slave->sii_mailbox_protocols) {
   953         EC_INFO("|   RX mailbox: 0x%04X/%i, TX mailbox: 0x%04X/%i\n",
   940             EC_INFO("| Mailbox communication:\n");
   954                 slave->sii_rx_mailbox_offset, slave->sii_rx_mailbox_size,
   941             EC_INFO("|   RX mailbox: 0x%04X/%i, TX mailbox: 0x%04X/%i\n",
   955                 slave->sii_tx_mailbox_offset, slave->sii_tx_mailbox_size);
   942                     slave->sii_rx_mailbox_offset, slave->sii_rx_mailbox_size,
   956         EC_INFO("|   Supported protocols: ");
   943                     slave->sii_tx_mailbox_offset, slave->sii_tx_mailbox_size);
   957 
   944             EC_INFO("|   Supported protocols: ");
   958         first = 1;
   945 
   959         if (slave->sii_mailbox_protocols & EC_MBOX_AOE) {
   946             first = 1;
   960             printk("AoE");
   947             if (slave->sii_mailbox_protocols & EC_MBOX_AOE) {
   961             first = 0;
   948                 printk("AoE");
   962         }
   949                 first = 0;
   963         if (slave->sii_mailbox_protocols & EC_MBOX_EOE) {
   950             }
   964             if (!first) printk(", ");
   951             if (slave->sii_mailbox_protocols & EC_MBOX_EOE) {
   965             printk("EoE");
   952                 if (!first) printk(", ");
   966             first = 0;
   953                 printk("EoE");
   967         }
   954                 first = 0;
   968         if (slave->sii_mailbox_protocols & EC_MBOX_COE) {
   955             }
   969             if (!first) printk(", ");
   956             if (slave->sii_mailbox_protocols & EC_MBOX_COE) {
   970             printk("CoE");
   957                 if (!first) printk(", ");
   971             first = 0;
   958                 printk("CoE");
   972         }
   959                 first = 0;
   973         if (slave->sii_mailbox_protocols & EC_MBOX_FOE) {
   960             }
   974             if (!first) printk(", ");
   961             if (slave->sii_mailbox_protocols & EC_MBOX_FOE) {
   975             printk("FoE");
   962                 if (!first) printk(", ");
   976             first = 0;
   963                 printk("FoE");
   977         }
   964                 first = 0;
   978         if (slave->sii_mailbox_protocols & EC_MBOX_SOE) {
   965             }
   979             if (!first) printk(", ");
   966             if (slave->sii_mailbox_protocols & EC_MBOX_SOE) {
   980             printk("SoE");
   967                 if (!first) printk(", ");
   981             first = 0;
   968                 printk("SoE");
   982         }
   969                 first = 0;
   983         if (slave->sii_mailbox_protocols & EC_MBOX_VOE) {
   970             }
   984             if (!first) printk(", ");
   971             if (slave->sii_mailbox_protocols & EC_MBOX_VOE) {
   985             printk("VoE");
   972                 if (!first) printk(", ");
   986         }
   973                 printk("VoE");
   987         printk("\n");
   974             }
   988     }
   975             printk("\n");
   989 
   976         }
   990     EC_INFO("| EEPROM data:\n");
   977 
   991 
   978         EC_INFO("| EEPROM data:\n");
   992     if (slave->sii_alias)
   979 
   993         EC_INFO("|   Configured station alias: 0x%04X (%i)\n",
   980         if (slave->sii_alias)
   994                 slave->sii_alias, slave->sii_alias);
   981             EC_INFO("|   Configured station alias: 0x%04X (%i)\n",
   995 
   982                     slave->sii_alias, slave->sii_alias);
   996     EC_INFO("|   Vendor-ID: 0x%08X, Product code: 0x%08X\n",
   983 
   997             slave->sii_vendor_id, slave->sii_product_code);
   984         EC_INFO("|   Vendor-ID: 0x%08X, Product code: 0x%08X\n",
   998     EC_INFO("|   Revision number: 0x%08X, Serial number: 0x%08X\n",
   985                 slave->sii_vendor_id, slave->sii_product_code);
   999             slave->sii_revision_number, slave->sii_serial_number);
   986         EC_INFO("|   Revision number: 0x%08X, Serial number: 0x%08X\n",
  1000 
   987                 slave->sii_revision_number, slave->sii_serial_number);
  1001     if (slave->eeprom_name)
   988 
  1002         EC_INFO("|   Name: %s\n", slave->eeprom_name);
   989         if (slave->eeprom_name)
  1003     if (slave->eeprom_group)
   990             EC_INFO("|   Name: %s\n", slave->eeprom_name);
  1004         EC_INFO("|   Group: %s\n", slave->eeprom_group);
   991         if (slave->eeprom_group)
  1005     if (slave->eeprom_desc)
   992             EC_INFO("|   Group: %s\n", slave->eeprom_group);
  1006         EC_INFO("|   Description: %s\n", slave->eeprom_desc);
   993         if (slave->eeprom_desc)
  1007 
   994             EC_INFO("|   Description: %s\n", slave->eeprom_desc);
  1008     if (!list_empty(&slave->eeprom_syncs)) {
   995 
  1009         EC_INFO("|   Sync-Managers:\n");
   996         if (!list_empty(&slave->eeprom_syncs)) {
  1010         list_for_each_entry(sync, &slave->eeprom_syncs, list) {
   997             EC_INFO("|   Sync-Managers:\n");
  1011             EC_INFO("|     %i: 0x%04X, length %i, control 0x%02X, %s\n",
   998             list_for_each_entry(sync, &slave->eeprom_syncs, list) {
  1012                     sync->index, sync->physical_start_address,
   999                 EC_INFO("|     %i: 0x%04X, length %i, control 0x%02X, %s\n",
  1013                     sync->length, sync->control_register,
  1000                         sync->index, sync->physical_start_address,
  1014                     sync->enable ? "enable" : "disable");
  1001                         sync->length, sync->control_register,
  1015         }
  1002                         sync->enable ? "enable" : "disable");
  1016     }
  1003             }
  1017 
  1004         }
  1018     list_for_each_entry(pdo, &slave->eeprom_pdos, list) {
  1005 
  1019         EC_INFO("|   %s \"%s\" (0x%04X), -> Sync-Manager %i\n",
  1006         list_for_each_entry(pdo, &slave->eeprom_pdos, list) {
  1020                 pdo->type == EC_RX_PDO ? "RXPDO" : "TXPDO",
  1007             EC_INFO("|   %s \"%s\" (0x%04X), -> Sync-Manager %i\n",
  1021                 pdo->name ? pdo->name : "???",
  1008                     pdo->type == EC_RX_PDO ? "RXPDO" : "TXPDO",
  1022                 pdo->index, pdo->sync_manager);
  1009                     pdo->name ? pdo->name : "???",
  1023 
  1010                     pdo->index, pdo->sync_manager);
  1024         list_for_each_entry(pdo_entry, &pdo->entries, list) {
  1011 
  1025             EC_INFO("|     \"%s\" 0x%04X:%X, %i Bit\n",
  1012             list_for_each_entry(pdo_entry, &pdo->entries, list) {
  1026                     pdo_entry->name ? pdo_entry->name : "???",
  1013                 EC_INFO("|     \"%s\" 0x%04X:%X, %i Bit\n",
  1027                     pdo_entry->index, pdo_entry->subindex,
  1014                         pdo_entry->name ? pdo_entry->name : "???",
  1028                     pdo_entry->bit_length);
  1015                         pdo_entry->index, pdo_entry->subindex,
       
  1016                         pdo_entry->bit_length);
       
  1017             }
       
  1018         }
  1029         }
  1019     }
  1030     }
  1020 
  1031 
  1021     if (verbosity > 1) // sehr geschwätzig
  1032     if (verbosity > 1) // sehr geschwätzig
  1022     {
  1033     {