master/fsm_master.h
branchstable-1.5
changeset 2443 2c3ccdde3919
parent 2374 e898451c054a
child 2453 d461b1f07296
equal deleted inserted replaced
2442:86ebf18a029f 2443:2c3ccdde3919
     1 /******************************************************************************
     1 /******************************************************************************
     2  *
     2  *
     3  *  $Id$
     3  *  $Id$
     4  *
     4  *
     5  *  Copyright (C) 2006-2008  Florian Pose, Ingenieurgemeinschaft IgH
     5  *  Copyright (C) 2006-2012  Florian Pose, Ingenieurgemeinschaft IgH
     6  *
     6  *
     7  *  This file is part of the IgH EtherCAT Master.
     7  *  This file is part of the IgH EtherCAT Master.
     8  *
     8  *
     9  *  The IgH EtherCAT Master is free software; you can redistribute it and/or
     9  *  The IgH EtherCAT Master is free software; you can redistribute it and/or
    10  *  modify it under the terms of the GNU General Public License version 2, as
    10  *  modify it under the terms of the GNU General Public License version 2, as
    56     uint16_t offset; /**< SII word offset. */
    56     uint16_t offset; /**< SII word offset. */
    57     size_t nwords; /**< Number of words. */
    57     size_t nwords; /**< Number of words. */
    58     const uint16_t *words; /**< Pointer to the data words. */
    58     const uint16_t *words; /**< Pointer to the data words. */
    59     ec_internal_request_state_t state; /**< State of the request. */
    59     ec_internal_request_state_t state; /**< State of the request. */
    60 } ec_sii_write_request_t;
    60 } ec_sii_write_request_t;
    61 
       
    62 /*****************************************************************************/
       
    63 
       
    64 /** Register request.
       
    65  */
       
    66 typedef struct {
       
    67     struct list_head list; /**< List head. */
       
    68     ec_slave_t *slave; /**< EtherCAT slave. */
       
    69     ec_direction_t dir; /**< Direction. */
       
    70     uint16_t offset; /**< Register address. */
       
    71     size_t length; /**< Number of bytes. */
       
    72     uint8_t *data; /**< Data to write / memory for read data. */
       
    73     ec_internal_request_state_t state; /**< State of the request. */
       
    74 } ec_reg_request_t;
       
    75 
    61 
    76 /*****************************************************************************/
    62 /*****************************************************************************/
    77 
    63 
    78 /** Slave/SDO request record for master's SDO request list.
    64 /** Slave/SDO request record for master's SDO request list.
    79  */
    65  */
   130                                                      every device. */
   116                                                      every device. */
   131     ec_slave_t *slave; /**< current slave */
   117     ec_slave_t *slave; /**< current slave */
   132     ec_sii_write_request_t *sii_request; /**< SII write request */
   118     ec_sii_write_request_t *sii_request; /**< SII write request */
   133     off_t sii_index; /**< index to SII write request data */
   119     off_t sii_index; /**< index to SII write request data */
   134     ec_sdo_request_t *sdo_request; /**< SDO request to process. */
   120     ec_sdo_request_t *sdo_request; /**< SDO request to process. */
   135     ec_reg_request_t *reg_request; /**< Register request to process. */
       
   136 
   121 
   137     ec_fsm_coe_t fsm_coe; /**< CoE state machine */
   122     ec_fsm_coe_t fsm_coe; /**< CoE state machine */
   138     ec_fsm_pdo_t fsm_pdo; /**< PDO configuration state machine. */
   123     ec_fsm_pdo_t fsm_pdo; /**< PDO configuration state machine. */
   139     ec_fsm_change_t fsm_change; /**< State change state machine */
   124     ec_fsm_change_t fsm_change; /**< State change state machine */
   140     ec_fsm_slave_config_t fsm_slave_config; /**< slave state machine */
   125     ec_fsm_slave_config_t fsm_slave_config; /**< slave state machine */