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) |