master/datagram.h
changeset 708 90bdb315f560
parent 682 c226d705c41a
child 713 ae41cadd25b6
equal deleted inserted replaced
707:9ae68af8e17a 708:90bdb315f560
    82 ec_datagram_state_t;
    82 ec_datagram_state_t;
    83 
    83 
    84 /*****************************************************************************/
    84 /*****************************************************************************/
    85 
    85 
    86 /**
    86 /**
    87    EtherCAT address.
       
    88 */
       
    89 
       
    90 typedef union
       
    91 {
       
    92     /**
       
    93      * Physical address.
       
    94      */
       
    95     struct
       
    96     {
       
    97         uint16_t slave; /**< configured or autoincrement address */
       
    98         uint16_t mem; /**< physical memory address */
       
    99     }
       
   100     physical;
       
   101 
       
   102     uint32_t logical; /**< logical address */
       
   103 }
       
   104 ec_address_t;
       
   105 
       
   106 /*****************************************************************************/
       
   107 
       
   108 /**
       
   109    EtherCAT datagram.
    87    EtherCAT datagram.
   110 */
    88 */
   111 
    89 
   112 typedef struct
    90 typedef struct
   113 {
    91 {
   114     struct list_head list; /**< needed by domain datagram lists */
    92     struct list_head list; /**< needed by domain datagram lists */
   115     struct list_head queue; /**< master datagram queue item */
    93     struct list_head queue; /**< master datagram queue item */
   116     struct list_head sent; /**< master list item for sent datagrams */
    94     struct list_head sent; /**< master list item for sent datagrams */
   117     ec_datagram_type_t type; /**< datagram type (APRD, BWR, etc) */
    95     ec_datagram_type_t type; /**< datagram type (APRD, BWR, etc) */
   118     ec_address_t address; /**< recipient address */
    96     uint8_t address[EC_ADDR_LEN]; /**< recipient address */
   119     uint8_t *data; /**< datagram data */
    97     uint8_t *data; /**< datagram data */
   120     size_t mem_size; /**< datagram \a data memory size */
    98     size_t mem_size; /**< datagram \a data memory size */
   121     size_t data_size; /**< size of the data in \a data */
    99     size_t data_size; /**< size of the data in \a data */
   122     uint8_t index; /**< datagram index (set by master) */
   100     uint8_t index; /**< datagram index (set by master) */
   123     uint16_t working_counter; /**< working counter */
   101     uint16_t working_counter; /**< working counter */