master/fsm_master.h
changeset 601 d6d951b766e3
parent 553 a4e0267825e3
child 605 96a894895999
equal deleted inserted replaced
600:b0660152f710 601:d6d951b766e3
    49 
    49 
    50 #include "fsm_slave.h"
    50 #include "fsm_slave.h"
    51 
    51 
    52 /*****************************************************************************/
    52 /*****************************************************************************/
    53 
    53 
       
    54 /**
       
    55  * EEPROM request state.
       
    56  */
       
    57 
       
    58 typedef enum
       
    59 {
       
    60     EC_EEPROM_REQ_QUEUED,
       
    61     EC_EEPROM_REQ_COMPLETED,
       
    62     EC_EEPROM_REQ_ERROR
       
    63 }
       
    64 ec_eeprom_request_state_t;
       
    65 
       
    66 /*****************************************************************************/
       
    67 
       
    68 /**
       
    69  * EEPROM write request.
       
    70  */
       
    71 
       
    72 typedef struct
       
    73 {
       
    74     struct list_head list;
       
    75     ec_slave_t *slave;
       
    76     off_t offset;
       
    77     size_t size;
       
    78     const uint16_t *words;
       
    79     ec_eeprom_request_state_t state;
       
    80 }
       
    81 ec_eeprom_write_request_t;
       
    82 
       
    83 /*****************************************************************************/
       
    84 
    54 typedef struct ec_fsm_master ec_fsm_master_t; /**< \see ec_fsm_master */
    85 typedef struct ec_fsm_master ec_fsm_master_t; /**< \see ec_fsm_master */
    55 
    86 
    56 /**
    87 /**
    57    Finite state machine of an EtherCAT master.
    88    Finite state machine of an EtherCAT master.
    58 */
    89 */
    67     unsigned int slaves_responding; /**< number of responding slaves */
    98     unsigned int slaves_responding; /**< number of responding slaves */
    68     unsigned int topology_change_pending; /**< bus topology changed */
    99     unsigned int topology_change_pending; /**< bus topology changed */
    69     ec_slave_state_t slave_states; /**< states of responding slaves */
   100     ec_slave_state_t slave_states; /**< states of responding slaves */
    70     unsigned int validate; /**< non-zero, if validation to do */
   101     unsigned int validate; /**< non-zero, if validation to do */
    71     ec_slave_t *slave; /**< current slave */
   102     ec_slave_t *slave; /**< current slave */
       
   103     ec_eeprom_write_request_t *eeprom_request; /**< EEPROM write request */
       
   104     off_t eeprom_index; /**< index to EEPROM write request data */
    72     ec_sdo_request_t *sdo_request; /**< SDO request to process */
   105     ec_sdo_request_t *sdo_request; /**< SDO request to process */
    73     uint16_t sii_offset; 
       
    74 
   106 
    75     ec_fsm_slave_t fsm_slave; /**< slave state machine */
   107     ec_fsm_slave_t fsm_slave; /**< slave state machine */
    76     ec_fsm_sii_t fsm_sii; /**< SII state machine */
   108     ec_fsm_sii_t fsm_sii; /**< SII state machine */
    77     ec_fsm_change_t fsm_change; /**< State change state machine */
   109     ec_fsm_change_t fsm_change; /**< State change state machine */
    78     ec_fsm_coe_t fsm_coe; /**< CoE state machine */
   110     ec_fsm_coe_t fsm_coe; /**< CoE state machine */