master/master.h
changeset 573 cdee4ea90ce9
parent 571 deb7fcb92dd7
child 575 9a2121b500b1
equal deleted inserted replaced
572:aef7ea866a41 573:cdee4ea90ce9
    97     unsigned int index; /**< master index */
    97     unsigned int index; /**< master index */
    98 
    98 
    99     struct kobject kobj; /**< kobject */
    99     struct kobject kobj; /**< kobject */
   100 
   100 
   101     ec_device_t *device; /**< EtherCAT device */
   101     ec_device_t *device; /**< EtherCAT device */
       
   102     const ec_device_id_t *main_device_id; /**< ID of main device */
       
   103     const ec_device_id_t *backup_device_id; /**< ID of backup device */
   102     struct semaphore device_sem; /**< device semaphore */
   104     struct semaphore device_sem; /**< device semaphore */
   103 
   105 
   104     ec_fsm_master_t fsm; /**< master state machine */
   106     ec_fsm_master_t fsm; /**< master state machine */
   105     ec_datagram_t fsm_datagram; /**< datagram used for state machines */
   107     ec_datagram_t fsm_datagram; /**< datagram used for state machines */
   106     ec_master_mode_t mode; /**< master mode */
   108     ec_master_mode_t mode; /**< master mode */
   145 };
   147 };
   146 
   148 
   147 /*****************************************************************************/
   149 /*****************************************************************************/
   148 
   150 
   149 // master creation/deletion
   151 // master creation/deletion
   150 int ec_master_init(ec_master_t *, unsigned int, unsigned int);
   152 int ec_master_init(ec_master_t *, unsigned int,
       
   153         const ec_device_id_t *, const ec_device_id_t *, unsigned int);
   151 void ec_master_destroy(ec_master_t *);
   154 void ec_master_destroy(ec_master_t *);
   152 
   155 
   153 // mode transitions
   156 // mode transitions
   154 int ec_master_enter_idle_mode(ec_master_t *);
   157 int ec_master_enter_idle_mode(ec_master_t *);
   155 void ec_master_leave_idle_mode(ec_master_t *);
   158 void ec_master_leave_idle_mode(ec_master_t *);