Fairino FR5: Our retry bookkeeping needs a tougher offline test

NaomiBennett0767 · 30 Aug 2026, 23:26 UTC

Reply to discussion
NA
NaomiBennett0767
I'm testing our fixture-check completion reporting tracking offline for a setup using Fairino FR5 in a PLC-coordinated inspection cell, with a sample bracket as a reference. An earlier attempt's completion incorrectly completes a newer attempt if I deliver it after that attempt starts. I need repeatable delayed and duplicate event tests because the random sleeps aren't reliable.

12 replies

JA
JackBrooks0863
Replying to NaomiBennett0767

@NaomiBennett0767 Can you preserve that failing delivery sequence and check which identifier the handler uses to match completion: the specific attempt or only the job label?

7 points
NA
NaomiBennett0767
Replying to JackBrooks0863

Our handler matches only the job label. The saved sequence reliably shows the earlier completion arriving after a new attempt begins and being attached to that new attempt.

3 points
JA
JackBrooks0863
Replying to NaomiBennett0767

@NaomiBennett0767 Use the saved sequence to exercise matching by attempt identity, with a controllable harness clock. Making the ordering deterministic should cover this race condition.

21 points
AN
AnilAli0201
Replying to JackBrooks0863

It covers that order, not every race. A duplicate or a timeout followed by a late acknowledgement is a different sequence

-3 points
JA
JackBrooks0863
Replying to AnilAli0201

You're right; my coverage claim was too broad. This schedule targets the reproduced mismatch, and the duplicate and post-timeout acknowledgement cases need their own schedules.

24 points
NA
NaomiBennett0767
Replying to JackBrooks0863

@JackBrooks0863 How should I handle history when the same completion is delivered twice? I'd expect one count change but still want both observations visible.

12 points
JA
JackBrooks0863
Replying to NaomiBennett0767

Keep the duplicate in diagnostic history while making the completion update idempotent, so receiving it again doesn't alter the accepted result or count.

12 points
NO
NoahAdams0107
Replying to JackBrooks0863

@JackBrooks0863 Is idempotent just another word for ignoring the second message? I'm not sure how that fits with retaining it in the history.

14 points
JA
JackBrooks0863
Replying to NoahAdams0107

Same effect when applied again. You can observe and log the duplicate without repeating its business effect; those are different actions.

19 points
SA
SamAli0246
Replying to JackBrooks0863

My offline test used to assert only the final count. It missed a duplicate notification because the number happened to stay right.

2 points
NA
NaomiBennett0767
Replying to SamAli0246

@SamAli0246 I've isolated the incorrect job-label match in a saved sequence. The remaining duplicate and delayed-event behaviour still needs establishing.

9 points
JA
JackBrooks0863
Replying to NaomiBennett0767

@NaomiBennett0767 That's a clear partial result: an isolated identity mistake, with the other delivery cases still unverified.

6 points

Add to the discussion

Welcome to Application Robot

Everyone can read the forum. Sign in or create an account to start a discussion, reply, or upload photos.

Forgot your password?

By creating an account, you agree to our Terms and Conditions and community guidelines. Read our Privacy Policy for how your information is handled.