Yes... I see you beat me to it:

@@ -778,6 +792,8 @@ void ec_fsm_foe_state_data_read(
     if (opCode == EC_FOE_OPCODE_BUSY) {
         if (ec_foe_prepare_send_ack(fsm, datagram)) {
             ec_foe_set_rx_error(fsm, FOE_PROT_ERROR);
+        } else {
+            fsm->state = ec_fsm_foe_state_sent_ack;
         }
         return;
     }

    (except for the PacketNo issue). Sorry I missed that one.

My stack is configured to test this at the moment, so its no problem to combine and test for me.

        Best regards - Dave

On 2014-01-22 18:13, Gavin Lambert wrote:
Mere moments ago, quoth I:
Did you see my other patch specifically for FoE busy?  My slave is
working fine for busy reads with both of my patches applied.  (There was
a third patch included in the same email as the busy patch, but that's
optional and just increases debug logging.)

My patch also fixes handling of error packets.
These are at
http://lists.etherlab.org/pipermail/etherlab-dev/2013/000324.html, if you're
having trouble finding it.

As for incrementing the packet number or not, it's been a while since I
looked at that so I don't remember whether it increments or not with my
patches applied, but I think I remember making it do whatever the SSC
was expecting.
I had a quick look at my SSC patches, so now I think I remember -- my
version would continue incrementing the packet number (which is partly why I
ran into the 256 packet limit that prompted the other patch).

You're correct that ETG.1020 indicates that the packet number should not be
increasing though; I missed that part.  (It worries me a bit when both
master AND slave code have to be changed to make something fundamental like
this work, and it makes me wonder about existing devices -- but I guess FoE
read is not implemented all that often.)

One of us should probably make a combined patch set that fixes all three
issues, for ease of future players (and maybe even merging, one of these
days).  I'll probably get to it in a few days when I (hopefully) get back to
EtherCAT-related work, if you don't beat me to it. :)



<<attachment: dave_page.vcf>>

_______________________________________________
etherlab-dev mailing list
etherlab-dev@etherlab.org
http://lists.etherlab.org/mailman/listinfo/etherlab-dev

Reply via email to