81 int EtherCAT_read_value(EtherCAT_slave_t *slave, |
81 int EtherCAT_read_value(EtherCAT_slave_t *slave, |
82 unsigned int channel) |
82 unsigned int channel) |
83 { |
83 { |
84 if (!slave->desc) |
84 if (!slave->desc) |
85 { |
85 { |
86 EC_DBG(KERN_WARNING "EtherCAT: Reading failed - " |
86 EC_DBG(KERN_WARNING "EtherCAT: Reading failed on slave %04X (addr %0X)" |
87 "Slave %04X (at %0X) has no description.\n", |
87 " - Slave has no description.\n", |
88 slave->station_address, (unsigned int) slave); |
88 slave->station_address, (unsigned int) slave); |
89 return 0; |
89 return 0; |
90 } |
90 } |
91 |
91 |
92 if (!slave->desc->read) |
92 if (!slave->desc->read) |
93 { |
93 { |
94 EC_DBG(KERN_WARNING "EtherCAT: Reading failed - " |
94 EC_DBG(KERN_WARNING "EtherCAT: Reading failed on slave %04X (addr %0X)" |
95 "Slave type (%s %s) has no read method.\n", |
95 " - Slave type (%s %s) has no read method.\n", |
|
96 slave->station_address, (unsigned int) slave, |
96 slave->desc->vendor_name, slave->desc->product_name); |
97 slave->desc->vendor_name, slave->desc->product_name); |
97 return 0; |
98 return 0; |
98 } |
99 } |
99 |
100 |
100 if (channel >= slave->desc->channels) |
101 if (channel >= slave->desc->channels) |
101 { |
102 { |
102 EC_DBG(KERN_WARNING "EtherCAT: Reading failed - " |
103 EC_DBG(KERN_WARNING "EtherCAT: Reading failed on slave %4X (addr %0X)" |
103 "Slave %4X (%s %s) has no channel %i.\n", |
104 " - Type (%s %s) has no channel %i.\n", |
104 slave->station_address, slave->desc->vendor_name, |
105 slave->station_address, (unsigned int) slave, |
105 slave->desc->product_name, channel); |
106 slave->desc->vendor_name, slave->desc->product_name, |
|
107 channel); |
106 return 0; |
108 return 0; |
107 } |
109 } |
108 |
110 |
109 return slave->desc->read(slave->process_data, channel); |
111 return slave->desc->read(slave->process_data, channel); |
110 } |
112 } |
129 unsigned int channel, |
131 unsigned int channel, |
130 int value) |
132 int value) |
131 { |
133 { |
132 if (!slave->desc) |
134 if (!slave->desc) |
133 { |
135 { |
134 EC_DBG(KERN_WARNING "EtherCAT: Writing failed - " |
136 EC_DBG(KERN_WARNING "EtherCAT: Writing failed on slave %04X (addr %0X)" |
135 "Slave %04X (at %0X) has no description.\n", |
137 " - Slave has no description.\n", |
136 slave->station_address, (unsigned int) slave); |
138 slave->station_address, (unsigned int) slave); |
137 return; |
139 return; |
138 } |
140 } |
139 |
141 |
140 if (!slave->desc->write) |
142 if (!slave->desc->write) |
141 { |
143 { |
142 EC_DBG(KERN_WARNING "EtherCAT: Writing failed - " |
144 EC_DBG(KERN_WARNING "EtherCAT: Writing failed on slave %04X (addr %0X)" |
143 "Slave type (%s %s) has no write method.\n", |
145 " - Type (%s %s) has no write method.\n", |
|
146 slave->station_address, (unsigned int) slave, |
144 slave->desc->vendor_name, slave->desc->product_name); |
147 slave->desc->vendor_name, slave->desc->product_name); |
145 return; |
148 return; |
146 } |
149 } |
147 |
150 |
148 if (channel >= slave->desc->channels) |
151 if (channel >= slave->desc->channels) |
149 { |
152 { |
150 EC_DBG(KERN_WARNING "EtherCAT: Writing failed - " |
153 EC_DBG(KERN_WARNING "EtherCAT: Writing failed on slave %4X (addr %0X)" |
151 "Slave %4X (%s %s) has no channel %i.\n", |
154 " - Type (%s %s) has no channel %i.\n", |
152 slave->station_address, slave->desc->vendor_name, |
155 slave->station_address, (unsigned int) slave, |
153 slave->desc->product_name, channel); |
156 slave->desc->vendor_name, slave->desc->product_name, |
|
157 channel); |
154 return; |
158 return; |
155 } |
159 } |
156 |
160 |
157 slave->desc->write(slave->process_data, channel, value); |
161 slave->desc->write(slave->process_data, channel, value); |
158 } |
162 } |