master/fsm_master.c
branchstable-1.5
changeset 2482 06b53ebfa0c3
parent 2475 9c18c29b8942
child 2498 9cdd7669dc0b
equal deleted inserted replaced
2481:c99ff159b60d 2482:06b53ebfa0c3
    84 
    84 
    85     ec_fsm_master_reset(fsm);
    85     ec_fsm_master_reset(fsm);
    86 
    86 
    87     // init sub-state-machines
    87     // init sub-state-machines
    88     ec_fsm_coe_init(&fsm->fsm_coe, fsm->datagram);
    88     ec_fsm_coe_init(&fsm->fsm_coe, fsm->datagram);
       
    89     ec_fsm_soe_init(&fsm->fsm_soe, fsm->datagram);
    89     ec_fsm_pdo_init(&fsm->fsm_pdo, &fsm->fsm_coe);
    90     ec_fsm_pdo_init(&fsm->fsm_pdo, &fsm->fsm_coe);
    90     ec_fsm_change_init(&fsm->fsm_change, fsm->datagram);
    91     ec_fsm_change_init(&fsm->fsm_change, fsm->datagram);
    91     ec_fsm_slave_config_init(&fsm->fsm_slave_config, fsm->datagram,
    92     ec_fsm_slave_config_init(&fsm->fsm_slave_config, fsm->datagram,
    92             &fsm->fsm_change, &fsm->fsm_coe, &fsm->fsm_pdo);
    93             &fsm->fsm_change, &fsm->fsm_coe, &fsm->fsm_soe, &fsm->fsm_pdo);
    93     ec_fsm_slave_scan_init(&fsm->fsm_slave_scan, fsm->datagram,
    94     ec_fsm_slave_scan_init(&fsm->fsm_slave_scan, fsm->datagram,
    94             &fsm->fsm_slave_config, &fsm->fsm_pdo);
    95             &fsm->fsm_slave_config, &fsm->fsm_pdo);
    95     ec_fsm_sii_init(&fsm->fsm_sii, fsm->datagram);
    96     ec_fsm_sii_init(&fsm->fsm_sii, fsm->datagram);
    96 }
    97 }
    97 
    98 
   103         ec_fsm_master_t *fsm /**< Master state machine. */
   104         ec_fsm_master_t *fsm /**< Master state machine. */
   104         )
   105         )
   105 {
   106 {
   106     // clear sub-state machines
   107     // clear sub-state machines
   107     ec_fsm_coe_clear(&fsm->fsm_coe);
   108     ec_fsm_coe_clear(&fsm->fsm_coe);
       
   109     ec_fsm_soe_clear(&fsm->fsm_soe);
   108     ec_fsm_pdo_clear(&fsm->fsm_pdo);
   110     ec_fsm_pdo_clear(&fsm->fsm_pdo);
   109     ec_fsm_change_clear(&fsm->fsm_change);
   111     ec_fsm_change_clear(&fsm->fsm_change);
   110     ec_fsm_slave_config_clear(&fsm->fsm_slave_config);
   112     ec_fsm_slave_config_clear(&fsm->fsm_slave_config);
   111     ec_fsm_slave_scan_clear(&fsm->fsm_slave_scan);
   113     ec_fsm_slave_scan_clear(&fsm->fsm_slave_scan);
   112     ec_fsm_sii_clear(&fsm->fsm_sii);
   114     ec_fsm_sii_clear(&fsm->fsm_sii);
   609         fsm->state(fsm); // execute immediately
   611         fsm->state(fsm); // execute immediately
   610         fsm->datagram->device_index = fsm->slave->device_index;
   612         fsm->datagram->device_index = fsm->slave->device_index;
   611         return;
   613         return;
   612     }
   614     }
   613 
   615 
   614     // slave has error flag set; process next one
   616     // process next slave
   615     ec_fsm_master_action_next_slave_state(fsm);
   617     ec_fsm_master_action_next_slave_state(fsm);
   616 }
   618 }
   617 
   619 
   618 /*****************************************************************************/
   620 /*****************************************************************************/
   619 
   621