master/fsm_slave.c
changeset 628 e94a16bc52ce
parent 623 4d64368f3a1e
child 630 1b755b7342eb
equal deleted inserted replaced
627:4793ca94f082 628:e94a16bc52ce
   655 }
   655 }
   656 
   656 
   657 /*****************************************************************************/
   657 /*****************************************************************************/
   658 
   658 
   659 /**
   659 /**
   660 */
   660  */
   661 
   661 
   662 void ec_fsm_slave_conf_enter_mbox_sync(ec_fsm_slave_t *fsm /**< slave state machine */)
   662 void ec_fsm_slave_conf_enter_mbox_sync(
       
   663         ec_fsm_slave_t *fsm /**< slave state machine */
       
   664         )
   663 {
   665 {
   664     ec_master_t *master = fsm->slave->master;
   666     ec_master_t *master = fsm->slave->master;
   665     ec_slave_t *slave = fsm->slave;
   667     ec_slave_t *slave = fsm->slave;
   666     ec_datagram_t *datagram = fsm->datagram;
   668     ec_datagram_t *datagram = fsm->datagram;
   667     unsigned int i;
   669     unsigned int i;
   691     ec_datagram_npwr(datagram, slave->station_address, 0x0800,
   693     ec_datagram_npwr(datagram, slave->station_address, 0x0800,
   692                      EC_SYNC_SIZE * slave->sii_sync_count);
   694                      EC_SYNC_SIZE * slave->sii_sync_count);
   693     memset(datagram->data, 0x00, EC_SYNC_SIZE * slave->sii_sync_count);
   695     memset(datagram->data, 0x00, EC_SYNC_SIZE * slave->sii_sync_count);
   694 
   696 
   695     for (i = 0; i < 2; i++) {
   697     for (i = 0; i < 2; i++) {
   696         ec_slave_sync_config(slave, &slave->sii_syncs[i],
   698         ec_sync_config(&slave->sii_syncs[i],
   697                 datagram->data + EC_SYNC_SIZE * i);
   699                 datagram->data + EC_SYNC_SIZE * i);
   698     }
   700     }
   699 
   701 
   700     ec_master_queue_datagram(fsm->slave->master, datagram);
   702     ec_master_queue_datagram(fsm->slave->master, datagram);
   701     fsm->retries = EC_FSM_RETRIES;
   703     fsm->retries = EC_FSM_RETRIES;
   788 }
   790 }
   789 
   791 
   790 /*****************************************************************************/
   792 /*****************************************************************************/
   791 
   793 
   792 /**
   794 /**
   793 */
   795  */
   794 
   796 
   795 void ec_fsm_slave_conf_enter_pdo_sync(ec_fsm_slave_t *fsm /**< slave state machine */)
   797 void ec_fsm_slave_conf_enter_pdo_sync(
       
   798         ec_fsm_slave_t *fsm /**< slave state machine */
       
   799         )
   796 {
   800 {
   797     ec_slave_t *slave = fsm->slave;
   801     ec_slave_t *slave = fsm->slave;
   798     ec_datagram_t *datagram = fsm->datagram;
   802     ec_datagram_t *datagram = fsm->datagram;
   799     unsigned int i;
   803     unsigned int i;
   800 
   804 
   807     ec_datagram_npwr(datagram, slave->station_address, 0x0800,
   811     ec_datagram_npwr(datagram, slave->station_address, 0x0800,
   808                      EC_SYNC_SIZE * slave->sii_sync_count);
   812                      EC_SYNC_SIZE * slave->sii_sync_count);
   809     memset(datagram->data, 0x00, EC_SYNC_SIZE * slave->sii_sync_count);
   813     memset(datagram->data, 0x00, EC_SYNC_SIZE * slave->sii_sync_count);
   810 
   814 
   811     for (i = 0; i < slave->sii_sync_count; i++) {
   815     for (i = 0; i < slave->sii_sync_count; i++) {
   812         ec_slave_sync_config(slave, &slave->sii_syncs[i],
   816         ec_sync_config(&slave->sii_syncs[i],
   813                 datagram->data + EC_SYNC_SIZE * i);
   817                 datagram->data + EC_SYNC_SIZE * i);
   814     }
   818     }
   815 
   819 
   816     ec_master_queue_datagram(fsm->slave->master, datagram);
   820     ec_master_queue_datagram(fsm->slave->master, datagram);
   817     fsm->retries = EC_FSM_RETRIES;
   821     fsm->retries = EC_FSM_RETRIES;