[etherlab-dev] Support for multiple mailbox protocols
gavinl at compacsort.com
Wed Jul 2 02:00:48 CEST 2014
On 1 July 2014, quoth Knud Baastrup:
> I have tested a bit on below scenario in my current setup and
> prepared this small attached patch that await the SDO dictionary
> fetching to be completed for a given slave (if SDO Info is
> supported by the slave) before the slave is set ready for
> external SDO requests. It is simple and works very well in my setup.
I haven't tested it yet, but it looks good. It will delay the SDO (and other) transfers a bit (the dictionary scan can be quite slow on complex slaves) but by their nature SDO transfers tend to be less time-critical so I don't see this being a real problem.
> I have also reproduced scenario 1 from the bug report
I've reproduced all of them. But the combination of the subset of Frank's patches (with my 1.5.2 updates) and one other patch has squashed them all. There may be better ways to do some of the things, and further things that could be improved, but they do work:
(Note that if anyone wants to actually use the second one, let me know; similar changes are needed in fsm_foe and fsm_soe for completeness, and I have another version of the patch that does all three.)
> The new scanning will use an internal SDO request to fetch the assigned
> PDOs (1c12), but the slave will return the data it had prepared just
> before it were disrupted. I believe we need to fix this in the master
> and ensure that the master “empties” any full mailboxes before it starts
> to fetch the assigned PDOs. I think this can be done by sending a check
> diagram and then fetch and discard the data for any slaves left with a
> written mailbox. This operation could be done with a new state in the
> fsm_slave_scan FSM. Any other suggestions?
Have a look at Frank's patch #26 "clear-mailbox".
More information about the Etherlab-dev