<div dir="ltr">Hi Gavin, thanks for the clarification. Indeed I want the SDOs in the object dictionary for configuration purposes and of course not in the real time context.<div><br></div><div>Frank</div><div><br><div class="gmail_quote"><div dir="ltr">Gavin Lambert <<a href="mailto:gavinl@compacsort.com">gavinl@compacsort.com</a>> schrieb am Mo., 31. Okt. 2016 um 00:28 Uhr:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 28 October 2016 22:13, quoth Frank Jeschke:<br class="gmail_msg">
> Hi list, I'm implementing a EtherCAT master software using the<br class="gmail_msg">
> libethercat library. Now I need to read the list of all the<br class="gmail_msg">
> Objects in the device(s) object dictionary. Something similar<br class="gmail_msg">
> what I get with<br class="gmail_msg">
><br class="gmail_msg">
> $ ethercat sdos<br class="gmail_msg">
> Sadly I couldn't find anything in the header ecrt.h which looks<br class="gmail_msg">
> like a function giving me desired result.<br class="gmail_msg">
><br class="gmail_msg">
> So my question is, is there another posibility with the use of<br class="gmail_msg">
> libethercat or do I have to hack something with the ioctl call<br class="gmail_msg">
> to retrieve the list of objects?<br class="gmail_msg">
<br class="gmail_msg">
The ecrt.h API are just the functions that real-time applications are expected to use.  This does include read/writes to known SDOs, but not diagnostic information such as reading the list of SDOs; those are left to the "tool" APIs, which are exposed only as ioctls.  You can have a look at the "tool" source for usage examples.<br class="gmail_msg">
<br class="gmail_msg">
Bear in mind that fetching the object dictionary can be quite slow (several seconds per device), and is usually unnecessary in applications; unless you're trying to implement a "configurator" rather than a standard application.  In fact, one of the significant performance improvements in the unofficial patchset was to avoid fetching the dictionary at all most of the time.<br class="gmail_msg">
<br class="gmail_msg">
Also note that while it is safe to call these while a real-time loop is running (though not in the real-time thread itself, since they're blocking), they do acquire locks and might increase your real-time latency.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div></div></div>