Our FR10 reporting mock cannot represent a failed read

MeiAbbott0081 · 21 Jun 2026, 13:25 UTC

Reply to discussion
ME
MeiAbbott0081
I need an offline substitute for our read-only FR10 reporting interface while the commissioning cell is unavailable. Every SDK mock method returns true. This makes the screen cheerful but says nothing about whether it interprets the real interface correctly. I am not trying to model robot motion.

20 replies

HE
HenryBarnes0525
Replying to MeiAbbott0081

Start at the methods your reporter actually calls. Match their documented arguments and return shapes for the installed SDK version, not a universal success value

24 points
ME
MeiAbbott0081
Replying to HenryBarnes0525

The wrapper currently uses a truth test on each response before reading a value. I can see why a true-only substitute never exercises an unsuccessful response with a nonempty container.

7 points
LI
LiamChan1099
Replying to MeiAbbott0081

Then the substitute should preserve that distinction: transport or method status is not the controller value merely because both arrive together.

17 points
JA
JackBrown0950
Replying to MeiAbbott0081

I've seen an old good value stay on a status screen through a disconnect. Nobody noticed the tiny connection label. Exercise what the person sees after the read fails, not only the wrapper's return.

23 points
CA
CalebChan1102
Replying to MeiAbbott0081

Who will update these examples when the supported SDK changes?

23 points
HE
HenryBarnes0525
Replying to JackBrown0950

Jack, agreed, though don't make the substitute decide the display policy. Feed the failure through the real reporting code and assert what its screen model produces

19 points
LI
LiamChan1099
Replying to HenryBarnes0525

And include an unsupported method or argument shape, so an interface mistake fails loudly instead of receiving another reassuring true.

20 points
ME
MeiAbbott0081
Replying to HenryBarnes0525

Caleb, our application maintainer will own the examples with the wrapper. Henry and Jack, I will exercise the reporting code with failed and stale reads; the substitute will only supply the interface responses.

-1 points
JA
JackBrown0950
Replying to MeiAbbott0081

That's the separation I meant. Also make the stale condition visible in the assertions, otherwise a screen can still show yesterday's plausible value and pass because no exception escaped.

6 points
HE
HenryBarnes0525
Replying to MeiAbbott0081

What response evidence have you got, Mei? Documentation and captured replies from your version beat invented structures that happen to suit the current parser

25 points
ME
MeiAbbott0081
Replying to HenryBarnes0525

Version-matched documentation and a few retained successful replies. No captured timeout response. I will distinguish documented failure examples from captured ones rather than claim everything came from our cell.

17 points
LI
LiamChan1099
Replying to MeiAbbott0081

That is enough to begin a bounded software test, provided uncertain interface behaviour stays marked for later controller verification rather than silently becoming the contract.

12 points
CA
CalebChan1102
Replying to LiamChan1099

Keep those unverified cases beside the test results for commissioning handover.

17 points
JA
JackBrown0950
Replying to JackBrown0950

Would a replay of one good read followed by a failure cover the stale display case? I'd try that before building a large fake controller with knobs nobody maintains.

19 points
HE
HenryBarnes0525
Replying to JackBrown0950

It covers that transition, Jack, not all stale-data behaviour. Add a delayed result after a newer read if the reporter allows overlap; otherwise don't invent concurrency it hasn't got

23 points
ME
MeiAbbott0081
Replying to HenryBarnes0525

Our reporter serialises reads, so I have not added overlapping responses. The good-then-failed case exposed a displayed value without any stale indication. That is a screen defect we can fix offline.

11 points
JA
JackBrown0950
Replying to MeiAbbott0081

Good find. What will the user see while the next read is pending? A failure label that vanishes as soon as another request starts can be misleading too.

20 points
ME
MeiAbbott0081
Replying to JackBrown0950

The revised screen keeps the last value visibly stale during the next attempt and clears that marking only on a valid fresh read. That sequence passes in the offline test now.

17 points
CA
CalebChan1102
Replying to MeiAbbott0081

Does handover still identify the timeout behaviour as unverified on the controller?

18 points
ME
MeiAbbott0081
Replying to CalebChan1102

Yes. The software transition is checked against our stated contract; actual timeout behaviour and version compatibility remain commissioning checks. No claim about physical inspection performance is attached to these results.

22 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.