master/slave.h
changeset 906 f95e3e33c0cf
parent 883 4963e22a267a
child 908 386b908033be
equal deleted inserted replaced
905:6d74ebc603ee 906:f95e3e33c0cf
    80     /**< Acknowledge/Error bit (no actual state) */
    80     /**< Acknowledge/Error bit (no actual state) */
    81 } ec_slave_state_t;
    81 } ec_slave_state_t;
    82 
    82 
    83 /*****************************************************************************/
    83 /*****************************************************************************/
    84 
    84 
    85 /** EtherCAT slave online state.
       
    86  */
       
    87 typedef enum {
       
    88     EC_SLAVE_OFFLINE,
       
    89     EC_SLAVE_ONLINE
       
    90 } ec_slave_online_state_t;
       
    91 
       
    92 /*****************************************************************************/
       
    93 
       
    94 /** Supported mailbox protocols.
    85 /** Supported mailbox protocols.
    95  */
    86  */
    96 enum {
    87 enum {
    97     EC_MBOX_AOE = 0x01, /**< ADS-over-EtherCAT */
    88     EC_MBOX_AOE = 0x01, /**< ADS-over-EtherCAT */
    98     EC_MBOX_EOE = 0x02, /**< Ethernet-over-EtherCAT */
    89     EC_MBOX_EOE = 0x02, /**< Ethernet-over-EtherCAT */
   180 
   171 
   181     // configuration
   172     // configuration
   182     ec_slave_config_t *config; /**< Current configuration. */
   173     ec_slave_config_t *config; /**< Current configuration. */
   183     ec_slave_state_t requested_state; /**< Requested application state. */
   174     ec_slave_state_t requested_state; /**< Requested application state. */
   184     ec_slave_state_t current_state; /**< Current application state. */
   175     ec_slave_state_t current_state; /**< Current application state. */
   185     ec_slave_online_state_t online_state; /**< online state */
       
   186     unsigned int self_configured; /**< Slave was configured by this master. */
   176     unsigned int self_configured; /**< Slave was configured by this master. */
   187     unsigned int error_flag; /**< Stop processing after an error. */
   177     unsigned int error_flag; /**< Stop processing after an error. */
   188 
   178 
   189     // base data
   179     // base data
   190     uint8_t base_type; /**< slave type */
   180     uint8_t base_type; /**< slave type */
   218 
   208 
   219 void ec_slave_clear_sync_managers(ec_slave_t *);
   209 void ec_slave_clear_sync_managers(ec_slave_t *);
   220 
   210 
   221 void ec_slave_request_state(ec_slave_t *, ec_slave_state_t);
   211 void ec_slave_request_state(ec_slave_t *, ec_slave_state_t);
   222 void ec_slave_set_state(ec_slave_t *, ec_slave_state_t);
   212 void ec_slave_set_state(ec_slave_t *, ec_slave_state_t);
   223 void ec_slave_set_online_state(ec_slave_t *, ec_slave_online_state_t);
       
   224 
   213 
   225 // SII categories
   214 // SII categories
   226 int ec_slave_fetch_sii_strings(ec_slave_t *, const uint8_t *, size_t);
   215 int ec_slave_fetch_sii_strings(ec_slave_t *, const uint8_t *, size_t);
   227 int ec_slave_fetch_sii_general(ec_slave_t *, const uint8_t *, size_t);
   216 int ec_slave_fetch_sii_general(ec_slave_t *, const uint8_t *, size_t);
   228 int ec_slave_fetch_sii_syncs(ec_slave_t *, const uint8_t *, size_t);
   217 int ec_slave_fetch_sii_syncs(ec_slave_t *, const uint8_t *, size_t);