master/slave.h
changeset 133 b36d187ecc0b
parent 126 bbc963b9fead
child 135 80d493917205
equal deleted inserted replaced
132:63a5b40eb7da 133:b36d187ecc0b
    37 ec_slave_state_t;
    37 ec_slave_state_t;
    38 
    38 
    39 /*****************************************************************************/
    39 /*****************************************************************************/
    40 
    40 
    41 /**
    41 /**
       
    42    Unterstützte Mailbox-Protokolle.
       
    43 */
       
    44 
       
    45 enum
       
    46 {
       
    47     EC_MBOX_AOE = 0x01, /**< ADS over EtherCAT */
       
    48     EC_MBOX_EOE = 0x02, /**< Ethernet over EtherCAT */
       
    49     EC_MBOX_COE = 0x04, /**< CANopen over EtherCAT */
       
    50     EC_MBOX_FOE = 0x08, /**< File Service over EtherCAT */
       
    51     EC_MBOX_SOE = 0x10, /**< Servo Profile over EtherCAT */
       
    52     EC_MBOX_VOE = 0x20  /**< Vendor specific */
       
    53 };
       
    54 
       
    55 /*****************************************************************************/
       
    56 
       
    57 /**
    42    FMMU-Konfiguration.
    58    FMMU-Konfiguration.
    43 */
    59 */
    44 
    60 
    45 typedef struct
    61 typedef struct
    46 {
    62 {
   152     uint16_t sii_alias; /**< Configured station alias */
   168     uint16_t sii_alias; /**< Configured station alias */
   153     uint32_t sii_vendor_id; /**< Identifikationsnummer des Herstellers */
   169     uint32_t sii_vendor_id; /**< Identifikationsnummer des Herstellers */
   154     uint32_t sii_product_code; /**< Herstellerspezifischer Produktcode */
   170     uint32_t sii_product_code; /**< Herstellerspezifischer Produktcode */
   155     uint32_t sii_revision_number; /**< Revisionsnummer */
   171     uint32_t sii_revision_number; /**< Revisionsnummer */
   156     uint32_t sii_serial_number; /**< Seriennummer der Klemme */
   172     uint32_t sii_serial_number; /**< Seriennummer der Klemme */
       
   173     uint32_t sii_mailbox_protocols; /**< Unterstützte Mailbox-Protokolle */
   157 
   174 
   158     const ec_slave_type_t *type; /**< Zeiger auf die Beschreibung
   175     const ec_slave_type_t *type; /**< Zeiger auf die Beschreibung
   159                                     des Slave-Typs */
   176                                     des Slave-Typs */
   160 
   177 
   161     uint8_t registered; /**< Der Slave wurde registriert */
   178     uint8_t registered; /**< Der Slave wurde registriert */
   183 int ec_slave_sii_read(ec_slave_t *, uint16_t, uint32_t *);
   200 int ec_slave_sii_read(ec_slave_t *, uint16_t, uint32_t *);
   184 int ec_slave_sii_write(ec_slave_t *, uint16_t, uint16_t);
   201 int ec_slave_sii_write(ec_slave_t *, uint16_t, uint16_t);
   185 int ec_slave_state_change(ec_slave_t *, uint8_t);
   202 int ec_slave_state_change(ec_slave_t *, uint8_t);
   186 int ec_slave_set_fmmu(ec_slave_t *, const ec_domain_t *, const ec_sync_t *);
   203 int ec_slave_set_fmmu(ec_slave_t *, const ec_domain_t *, const ec_sync_t *);
   187 
   204 
       
   205 // Mailbox
       
   206 int ec_slave_mailbox_send(ec_slave_t *, uint8_t, const uint8_t *, size_t);
       
   207 int ec_slave_mailbox_receive(ec_slave_t *, uint8_t, uint8_t *, size_t *);
       
   208 
       
   209 // CANopen over EtherCAT
       
   210 int ec_slave_fetch_sdo_list(ec_slave_t *);
       
   211 
   188 // Misc
   212 // Misc
   189 void ec_slave_print(const ec_slave_t *);
   213 void ec_slave_print(const ec_slave_t *);
   190 int ec_slave_check_crc(ec_slave_t *);
   214 int ec_slave_check_crc(ec_slave_t *);
   191 
   215 
   192 /*****************************************************************************/
   216 /*****************************************************************************/