include/ecrt.h
changeset 138 7e743a61a991
parent 137 3fb18812871a
child 140 b09658e50d6f
equal deleted inserted replaced
137:3fb18812871a 138:7e743a61a991
    48 
    48 
    49 /*****************************************************************************/
    49 /*****************************************************************************/
    50 // Master methods
    50 // Master methods
    51 
    51 
    52 ec_domain_t *ecrt_master_create_domain(ec_master_t *master);
    52 ec_domain_t *ecrt_master_create_domain(ec_master_t *master);
       
    53 
    53 int ecrt_master_activate(ec_master_t *master);
    54 int ecrt_master_activate(ec_master_t *master);
    54 void ecrt_master_deactivate(ec_master_t *master);
    55 void ecrt_master_deactivate(ec_master_t *master);
       
    56 
    55 int ecrt_master_fetch_sdo_lists(ec_master_t *master);
    57 int ecrt_master_fetch_sdo_lists(ec_master_t *master);
       
    58 
    56 void ecrt_master_sync_io(ec_master_t *master);
    59 void ecrt_master_sync_io(ec_master_t *master);
    57 void ecrt_master_async_send(ec_master_t *master);
    60 void ecrt_master_async_send(ec_master_t *master);
    58 void ecrt_master_async_receive(ec_master_t *master);
    61 void ecrt_master_async_receive(ec_master_t *master);
    59 void ecrt_master_prepare_async_io(ec_master_t *master);
    62 void ecrt_master_prepare_async_io(ec_master_t *master);
       
    63 
    60 void ecrt_master_debug(ec_master_t *master, int level);
    64 void ecrt_master_debug(ec_master_t *master, int level);
    61 void ecrt_master_print(const ec_master_t *master);
    65 void ecrt_master_print(const ec_master_t *master);
    62 int ecrt_master_sdo_exp_write(ec_master_t *master,
    66 
    63                               const char *slave_addr,
    67 ec_slave_t *ecrt_master_get_slave(const ec_master_t *, const char *);
    64                               uint16_t sdo_index,
       
    65                               uint8_t sdo_subindex,
       
    66                               uint32_t value,
       
    67                               size_t size);
       
    68 int ecrt_master_sdo_exp_read(ec_master_t *master,
       
    69                              const char *slave_addr,
       
    70                              uint16_t sdo_index,
       
    71                              uint8_t sdo_subindex,
       
    72                              uint32_t *value);
       
    73 int ecrt_master_sdo_read(ec_master_t *master,
       
    74                          const char *slave_addr,
       
    75                          uint16_t sdo_index,
       
    76                          uint8_t sdo_subindex,
       
    77                          uint8_t *data,
       
    78                          size_t *size);
       
    79 int ecrt_master_write_slave_alias(ec_master_t *master,
       
    80                                   const char *slave_address, uint16_t alias);
       
    81 
    68 
    82 /*****************************************************************************/
    69 /*****************************************************************************/
    83 // Domain Methods
    70 // Domain Methods
    84 
    71 
    85 ec_slave_t *ecrt_domain_register_field(ec_domain_t *domain,
    72 ec_slave_t *ecrt_domain_register_field(ec_domain_t *domain,
    86                                        const char *address,
    73                                        const char *address,
    87                                        const char *vendor_name,
    74                                        const char *vendor_name,
    88                                        const char *product_name,
    75                                        const char *product_name,
    89                                        void **data_ptr,
    76                                        void **data_ptr, const char *field_name,
    90                                        const char *field_name,
       
    91                                        unsigned int field_index,
    77                                        unsigned int field_index,
    92                                        unsigned int field_count);
    78                                        unsigned int field_count);
    93 int ecrt_domain_register_field_list(ec_domain_t *domain,
    79 int ecrt_domain_register_field_list(ec_domain_t *domain,
    94                                     ec_field_init_t *fields);
    80                                     ec_field_init_t *fields);
       
    81 
    95 void ecrt_domain_queue(ec_domain_t *domain);
    82 void ecrt_domain_queue(ec_domain_t *domain);
    96 void ecrt_domain_process(ec_domain_t *domain);
    83 void ecrt_domain_process(ec_domain_t *domain);
    97 int ecrt_domain_state(ec_domain_t *domain);
    84 int ecrt_domain_state(ec_domain_t *domain);
    98 
    85 
    99 /*****************************************************************************/
    86 /*****************************************************************************/
   100 // Slave Methods
    87 // Slave Methods
   101 
    88 
   102 int ecrt_slave_sdo_exp_write(ec_slave_t *slave,
    89 int ecrt_slave_sdo_read_exp8(ec_slave_t *slave, uint16_t sdo_index,
   103                              uint16_t sdo_index,
    90                               uint8_t sdo_subindex, uint8_t *value);
   104                              uint8_t sdo_subindex,
    91 int ecrt_slave_sdo_read_exp16(ec_slave_t *slave, uint16_t sdo_index,
   105                              uint32_t value,
    92                               uint8_t sdo_subindex, uint16_t *value);
   106                              size_t size);
    93 int ecrt_slave_sdo_read_exp32(ec_slave_t *slave, uint16_t sdo_index,
   107 int ecrt_slave_sdo_exp_read(ec_slave_t *slave,
    94                               uint8_t sdo_subindex, uint32_t *value);
   108                             uint16_t sdo_index,
    95 int ecrt_slave_sdo_write_exp8(ec_slave_t *slave, uint16_t sdo_index,
   109                             uint8_t sdo_subindex,
    96                               uint8_t sdo_subindex, uint8_t value);
   110                             uint32_t *value);
    97 int ecrt_slave_sdo_write_exp16(ec_slave_t *slave, uint16_t sdo_index,
   111 int ecrt_slave_sdo_read(ec_slave_t *slave,
    98                                uint8_t sdo_subindex, uint16_t value);
   112                         uint16_t sdo_index,
    99 int ecrt_slave_sdo_write_exp32(ec_slave_t *slave, uint16_t sdo_index,
   113                         uint8_t sdo_subindex,
   100                                uint8_t sdo_subindex, uint32_t value);
   114                         uint8_t *data,
   101 int ecrt_slave_sdo_read(ec_slave_t *slave, uint16_t sdo_index,
   115                         size_t *size);
   102                         uint8_t sdo_subindex, uint8_t *data, size_t *size);
       
   103 
       
   104 int ecrt_slave_write_alias(ec_slave_t *slave, uint16_t alias);
   116 
   105 
   117 /*****************************************************************************/
   106 /*****************************************************************************/
   118 // Bitwise read/write macros
   107 // Bitwise read/write macros
   119 
   108 
   120 #define EC_READ_BIT(PD, CH) (*((uint8_t *) (PD)) >> (CH)) & 0x01)
   109 #define EC_READ_BIT(PD, CH) (*((uint8_t *) (PD)) >> (CH)) & 0x01)