equal
deleted
inserted
replaced
169 kfree(sdo); |
169 kfree(sdo); |
170 } |
170 } |
171 |
171 |
172 /*****************************************************************************/ |
172 /*****************************************************************************/ |
173 |
173 |
|
174 /** |
|
175 * Get and SDO entry from an SDO via its subindex. |
|
176 * \return pointer to SDO entry, or NULL. |
|
177 */ |
|
178 |
174 ec_sdo_entry_t *ec_sdo_get_entry( |
179 ec_sdo_entry_t *ec_sdo_get_entry( |
175 ec_sdo_t *sdo, |
180 ec_sdo_t *sdo, /**< SDO */ |
176 uint8_t subindex |
181 uint8_t subindex /**< entry subindex */ |
177 ) |
182 ) |
178 { |
183 { |
179 ec_sdo_entry_t *entry; |
184 ec_sdo_entry_t *entry; |
180 |
185 |
181 list_for_each_entry(entry, &sdo->entries, list) { |
186 list_for_each_entry(entry, &sdo->entries, list) { |
186 return NULL; |
191 return NULL; |
187 } |
192 } |
188 |
193 |
189 /*****************************************************************************/ |
194 /*****************************************************************************/ |
190 |
195 |
|
196 /** |
|
197 * Print SDO information to a buffer. |
|
198 * /return size of bytes written to buffer. |
|
199 */ |
|
200 |
191 ssize_t ec_sdo_info(ec_sdo_t *sdo, /**< SDO */ |
201 ssize_t ec_sdo_info(ec_sdo_t *sdo, /**< SDO */ |
192 char *buffer /**< target buffer */ |
202 char *buffer /**< target buffer */ |
193 ) |
203 ) |
194 { |
204 { |
195 off_t off = 0; |
205 off_t off = 0; |
200 |
210 |
201 return off; |
211 return off; |
202 } |
212 } |
203 |
213 |
204 /*****************************************************************************/ |
214 /*****************************************************************************/ |
|
215 |
|
216 /** |
|
217 * Show an SDO as Sysfs attribute. |
|
218 * /return size of bytes written to buffer. |
|
219 */ |
205 |
220 |
206 ssize_t ec_show_sdo_attribute(struct kobject *kobj, /**< kobject */ |
221 ssize_t ec_show_sdo_attribute(struct kobject *kobj, /**< kobject */ |
207 struct attribute *attr, |
222 struct attribute *attr, |
208 char *buffer |
223 char *buffer |
209 ) |
224 ) |
283 |
298 |
284 kfree(entry); |
299 kfree(entry); |
285 } |
300 } |
286 |
301 |
287 /*****************************************************************************/ |
302 /*****************************************************************************/ |
|
303 |
|
304 /** |
|
305 * Print SDO entry information to a buffer. |
|
306 * \return number of bytes written. |
|
307 */ |
288 |
308 |
289 ssize_t ec_sdo_entry_info(ec_sdo_entry_t *entry, /**< SDO entry */ |
309 ssize_t ec_sdo_entry_info(ec_sdo_entry_t *entry, /**< SDO entry */ |
290 char *buffer /**< target buffer */ |
310 char *buffer /**< target buffer */ |
291 ) |
311 ) |
292 { |
312 { |
300 |
320 |
301 return off; |
321 return off; |
302 } |
322 } |
303 |
323 |
304 /*****************************************************************************/ |
324 /*****************************************************************************/ |
|
325 |
|
326 /** |
|
327 * Format entry data based on the CANopen data type and print it to a buffer. |
|
328 * \return number of bytes written. |
|
329 */ |
305 |
330 |
306 ssize_t ec_sdo_entry_format_data(ec_sdo_entry_t *entry, /**< SDO entry */ |
331 ssize_t ec_sdo_entry_format_data(ec_sdo_entry_t *entry, /**< SDO entry */ |
307 ec_sdo_request_t *request, /**< SDO request */ |
332 ec_sdo_request_t *request, /**< SDO request */ |
308 char *buffer /**< target buffer */ |
333 char *buffer /**< target buffer */ |
309 ) |
334 ) |
373 request->data[i], request->data[i]); |
398 request->data[i], request->data[i]); |
374 return off; |
399 return off; |
375 } |
400 } |
376 |
401 |
377 /*****************************************************************************/ |
402 /*****************************************************************************/ |
|
403 |
|
404 /** |
|
405 * Start SDO entry reading. |
|
406 * This function blocks, until reading is finished, and is interruptible as |
|
407 * long as the master state machine has not begun with reading. |
|
408 * \return number of bytes written to buffer, or error code. |
|
409 */ |
378 |
410 |
379 ssize_t ec_sdo_entry_read_value(ec_sdo_entry_t *entry, /**< SDO entry */ |
411 ssize_t ec_sdo_entry_read_value(ec_sdo_entry_t *entry, /**< SDO entry */ |
380 char *buffer /**< target buffer */ |
412 char *buffer /**< target buffer */ |
381 ) |
413 ) |
382 { |
414 { |
417 return off; |
449 return off; |
418 } |
450 } |
419 |
451 |
420 /*****************************************************************************/ |
452 /*****************************************************************************/ |
421 |
453 |
|
454 /** |
|
455 * Show an SDO entry as Sysfs attribute. |
|
456 * /return size of bytes written to buffer. |
|
457 */ |
|
458 |
422 ssize_t ec_show_sdo_entry_attribute(struct kobject *kobj, /**< kobject */ |
459 ssize_t ec_show_sdo_entry_attribute(struct kobject *kobj, /**< kobject */ |
423 struct attribute *attr, |
460 struct attribute *attr, |
424 char *buffer |
461 char *buffer |
425 ) |
462 ) |
426 { |
463 { |