include/ecrt.h
branchstable-1.1
changeset 1715 e675450f2174
parent 288 89d3c61ef3e6
child 416 4f007cd2a79d
child 1732 1cc865ba17c2
equal deleted inserted replaced
1714:f149465f4c63 1715:e675450f2174
    67 
    67 
    68 struct ec_slave;
    68 struct ec_slave;
    69 typedef struct ec_slave ec_slave_t; /**< \see ec_slave */
    69 typedef struct ec_slave ec_slave_t; /**< \see ec_slave */
    70 
    70 
    71 /**
    71 /**
    72    Initialization type for field registrations.
    72    Initialization type for PDO registrations.
    73    This type is used as a parameter for the ec_domain_register_field_list()
    73    This type is used as a parameter for the ec_domain_register_pdo_list()
    74    function.
    74    function.
    75 */
    75 */
    76 
    76 
    77 typedef struct
    77 typedef struct
    78 {
    78 {
    79     void **data_ptr; /**< address of the process data pointer */
       
    80     const char *slave_address; /**< slave address string (see
    79     const char *slave_address; /**< slave address string (see
    81                                   ecrt_master_get_slave()) */
    80                                   ecrt_master_get_slave()) */
    82     const char *vendor_name; /**< vendor name */
    81     uint32_t vendor_id; /**< vendor ID */
    83     const char *product_name; /**< product name */
    82     uint32_t product_code; /**< product code */
    84     const char *field_name; /**< data field name */
    83     uint16_t pdo_index; /**< PDO index */
    85     unsigned int field_index; /**< index in data fields with same name */
    84     uint8_t pdo_subindex; /**< PDO subindex */
    86     unsigned int field_count; /**< number of data fields with same name */
    85     void **data_ptr; /**< address of the process data pointer */
    87 }
    86 }
    88 ec_field_init_t;
    87 ec_pdo_reg_t;
    89 
    88 
    90 /******************************************************************************
    89 /******************************************************************************
    91  *  Master request functions
    90  *  Master request functions
    92  *****************************************************************************/
    91  *****************************************************************************/
    93 
    92 
   104 ec_domain_t *ecrt_master_create_domain(ec_master_t *master);
   103 ec_domain_t *ecrt_master_create_domain(ec_master_t *master);
   105 
   104 
   106 int ecrt_master_activate(ec_master_t *master);
   105 int ecrt_master_activate(ec_master_t *master);
   107 void ecrt_master_deactivate(ec_master_t *master);
   106 void ecrt_master_deactivate(ec_master_t *master);
   108 
   107 
   109 int ecrt_master_fetch_sdo_lists(ec_master_t *master);
   108 void ecrt_master_prepare(ec_master_t *master);
   110 
   109 
   111 void ecrt_master_sync_io(ec_master_t *master);
   110 void ecrt_master_send(ec_master_t *master);
   112 void ecrt_master_async_send(ec_master_t *master);
   111 void ecrt_master_receive(ec_master_t *master);
   113 void ecrt_master_async_receive(ec_master_t *master);
       
   114 void ecrt_master_prepare_async_io(ec_master_t *master);
       
   115 
   112 
   116 void ecrt_master_run(ec_master_t *master);
   113 void ecrt_master_run(ec_master_t *master);
   117 
   114 
   118 int ecrt_master_start_eoe(ec_master_t *master);
       
   119 
       
   120 void ecrt_master_debug(ec_master_t *master, int level);
       
   121 void ecrt_master_print(const ec_master_t *master, unsigned int verbosity);
       
   122 
       
   123 ec_slave_t *ecrt_master_get_slave(const ec_master_t *, const char *);
   115 ec_slave_t *ecrt_master_get_slave(const ec_master_t *, const char *);
   124 
   116 
       
   117 int ecrt_master_state(const ec_master_t *master);
       
   118 
   125 /******************************************************************************
   119 /******************************************************************************
   126  *  Domain Methods
   120  *  Domain Methods
   127  *****************************************************************************/
   121  *****************************************************************************/
   128 
   122 
   129 ec_slave_t *ecrt_domain_register_field(ec_domain_t *domain,
   123 ec_slave_t *ecrt_domain_register_pdo(ec_domain_t *domain,
   130                                        const char *address,
   124                                      const char *address,
   131                                        const char *vendor_name,
   125                                      uint32_t vendor_id,
   132                                        const char *product_name,
   126                                      uint32_t product_code,
   133                                        void **data_ptr, const char *field_name,
   127                                      uint16_t pdo_index,
   134                                        unsigned int field_index,
   128                                      uint8_t pdo_subindex,
   135                                        unsigned int field_count);
   129                                      void **data_ptr);
   136 int ecrt_domain_register_field_list(ec_domain_t *domain,
   130 int ecrt_domain_register_pdo_list(ec_domain_t *domain,
   137                                     const ec_field_init_t *fields);
   131                                   const ec_pdo_reg_t *pdos);
   138 
   132 
   139 void ecrt_domain_queue(ec_domain_t *domain);
       
   140 void ecrt_domain_process(ec_domain_t *domain);
   133 void ecrt_domain_process(ec_domain_t *domain);
   141 
   134 int ecrt_domain_state(const ec_domain_t *domain);
   142 int ecrt_domain_state(ec_domain_t *domain);
       
   143 
   135 
   144 /******************************************************************************
   136 /******************************************************************************
   145  *  Slave Methods
   137  *  Slave Methods
   146  *****************************************************************************/
   138  *****************************************************************************/
   147 
   139 
   148 /* there SDO functions are deprecated! */
   140 int ecrt_slave_conf_sdo8(ec_slave_t *slave, uint16_t sdo_index,
   149 
   141                          uint8_t sdo_subindex, uint8_t value);
   150 int ecrt_slave_sdo_read_exp8(ec_slave_t *slave, uint16_t sdo_index,
   142 int ecrt_slave_conf_sdo16(ec_slave_t *slave, uint16_t sdo_index,
   151                               uint8_t sdo_subindex, uint8_t *value);
   143                           uint8_t sdo_subindex, uint16_t value);
   152 int ecrt_slave_sdo_read_exp16(ec_slave_t *slave, uint16_t sdo_index,
   144 int ecrt_slave_conf_sdo32(ec_slave_t *slave, uint16_t sdo_index,
   153                               uint8_t sdo_subindex, uint16_t *value);
   145                           uint8_t sdo_subindex, uint32_t value);
   154 int ecrt_slave_sdo_read_exp32(ec_slave_t *slave, uint16_t sdo_index,
   146 
   155                               uint8_t sdo_subindex, uint32_t *value);
   147 int ecrt_slave_pdo_size(ec_slave_t *slave, uint16_t pdo_index,
   156 int ecrt_slave_sdo_write_exp8(ec_slave_t *slave, uint16_t sdo_index,
   148                         uint8_t pdo_subindex, size_t size);
   157                               uint8_t sdo_subindex, uint8_t value);
       
   158 int ecrt_slave_sdo_write_exp16(ec_slave_t *slave, uint16_t sdo_index,
       
   159                                uint8_t sdo_subindex, uint16_t value);
       
   160 int ecrt_slave_sdo_write_exp32(ec_slave_t *slave, uint16_t sdo_index,
       
   161                                uint8_t sdo_subindex, uint32_t value);
       
   162 int ecrt_slave_sdo_read(ec_slave_t *slave, uint16_t sdo_index,
       
   163                         uint8_t sdo_subindex, uint8_t *data, size_t *size);
       
   164 
       
   165 int ecrt_slave_write_alias(ec_slave_t *slave, uint16_t alias); // deprecated!
       
   166 
       
   167 int ecrt_slave_field_size(ec_slave_t *slave, const char *field_name,
       
   168                           unsigned int field_index, size_t size);
       
   169 
   149 
   170 /******************************************************************************
   150 /******************************************************************************
   171  *  Bitwise read/write macros
   151  *  Bitwise read/write macros
   172  *****************************************************************************/
   152  *****************************************************************************/
   173 
   153