equal
deleted
inserted
replaced
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 */ |