master/fsm.h
changeset 436 63214beb641d
parent 435 779a18d12e6c
child 446 8fede404c01f
equal deleted inserted replaced
435:779a18d12e6c 436:63214beb641d
    47 #include "slave.h"
    47 #include "slave.h"
    48 #include "canopen.h"
    48 #include "canopen.h"
    49 
    49 
    50 #include "fsm_sii.h"
    50 #include "fsm_sii.h"
    51 #include "fsm_change.h"
    51 #include "fsm_change.h"
       
    52 #include "fsm_coe.h"
    52 
    53 
    53 /*****************************************************************************/
    54 /*****************************************************************************/
    54 
    55 
    55 typedef struct ec_fsm ec_fsm_t; /**< \see ec_fsm */
    56 typedef struct ec_fsm ec_fsm_t; /**< \see ec_fsm */
    56 
    57 
    67     void (*master_state)(ec_fsm_t *); /**< master state function */
    68     void (*master_state)(ec_fsm_t *); /**< master state function */
    68     unsigned int master_slaves_responding; /**< number of responding slaves */
    69     unsigned int master_slaves_responding; /**< number of responding slaves */
    69     ec_slave_state_t master_slave_states; /**< states of responding slaves */
    70     ec_slave_state_t master_slave_states; /**< states of responding slaves */
    70     unsigned int master_validation; /**< non-zero, if validation to do */
    71     unsigned int master_validation; /**< non-zero, if validation to do */
    71     uint16_t sii_offset; /**< current offset for SII access */
    72     uint16_t sii_offset; /**< current offset for SII access */
       
    73     ec_sdo_request_t *sdo_request;
    72 
    74 
    73     void (*slave_state)(ec_fsm_t *); /**< slave state function */
    75     void (*slave_state)(ec_fsm_t *); /**< slave state function */
       
    76     ec_sdo_data_t *sdodata; /**< SDO configuration data */
    74 
    77 
    75     ec_fsm_sii_t fsm_sii; /**< SII state machine */
    78     ec_fsm_sii_t fsm_sii; /**< SII state machine */
    76     ec_fsm_change_t fsm_change; /**< State change state machine */
    79     ec_fsm_change_t fsm_change; /**< State change state machine */
    77 
    80     ec_fsm_coe_t fsm_coe; /**< CoE state machine */
    78     void (*coe_state)(ec_fsm_t *); /**< CoE state function */
       
    79     ec_sdo_data_t *coe_sdodata; /**< input/output: SDO data object */
       
    80     cycles_t coe_start; /**< CoE timestamp */
       
    81     ec_sdo_t *coe_sdo; /**< current SDO */
       
    82     uint8_t coe_subindex; /**< current subindex */
       
    83     ec_sdo_request_t *coe_request; /**< SDO request */
       
    84     uint8_t coe_toggle; /**< toggle bit for segment commands */
       
    85 };
    81 };
    86 
    82 
    87 /*****************************************************************************/
    83 /*****************************************************************************/
    88 
    84 
    89 int ec_fsm_init(ec_fsm_t *, ec_master_t *);
    85 int ec_fsm_init(ec_fsm_t *, ec_master_t *);