From 4b9ee9b9592e533585cb53f9949f7343cfb503b3 Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Fri, 27 Oct 2006 15:01:32 +0000 Subject: [PATCH] SDO configurations in Sysfs. --- master/slave.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/master/slave.c b/master/slave.c index 3c664ace..77fe52ab 100644 --- a/master/slave.c +++ b/master/slave.c @@ -574,6 +574,8 @@ size_t ec_slave_info(const ec_slave_t *slave, /**< EtherCAT slave */ ec_sii_pdo_t *pdo; ec_sii_pdo_entry_t *pdo_entry; int first, i; + ec_sdo_data_t *sdodata; + char str[20]; off += sprintf(buffer + off, "\nName: "); @@ -705,6 +707,20 @@ size_t ec_slave_info(const ec_slave_t *slave, /**< EtherCAT slave */ } } + if (!list_empty(&slave->sdo_confs)) + off += sprintf(buffer + off, "\nSDO configurations:\n"); + + list_for_each_entry(sdodata, &slave->sdo_confs, list) { + switch (sdodata->size) { + case 1: sprintf(str, "%i", EC_READ_U8(sdodata->data)); break; + case 2: sprintf(str, "%i", EC_READ_U16(sdodata->data)); break; + case 4: sprintf(str, "%i", EC_READ_U32(sdodata->data)); break; + default: sprintf(str, "(invalid size)"); break; + } + off += sprintf(buffer + off, " 0x%04X:%-3i -> %s\n", + sdodata->index, sdodata->subindex, str); + } + off += sprintf(buffer + off, "\n"); return off;