An offline substitute that can actually fail - read-only controller reporting

OmarBrown0926 · 18 Jul 2026, 16:02 UTC

Reply to discussion
OM
OmarBrown0926
Our cell is unavailable, so I'm working offline on read-only controller reporting for Fairino FR10 in a workshop inspection cell reserved for commissioning, with a fixture-mounted coupon as a reference. The existing SDK mock returns true from every method. The screen looks happy, but that doesn't catch interface mistakes. I want a useful software substitute without claiming it simulates the physical robot.

14 replies

JO
JoAbbott0070
Replying to OmarBrown0926

@OmarBrown0926 Have you saved a documented SDK success and error response for the interface your screen uses? Start with those.

15 points
OM
OmarBrown0926
Replying to JoAbbott0070

@JoAbbott0070 Yes. Replaying our saved error response reproduces a parser bug. The always-true mock sailed straight past it, naturally.

2 points
JO
JoAbbott0070
Replying to OmarBrown0926

Use a small substitute implementing only your required methods, matching the saved response contracts and rejecting unexpected calls. That should keep the run contained offline.

2 points
OW
OwenBennett0747
Replying to JoAbbott0070

@JoAbbott0070 Contained how? A strict mock doesn't stop startup code constructing a real client somewhere else

4 points
JO
JoAbbott0070
Replying to OwenBennett0747

You're right. i blurred two checks. The strict interface catches wrong calls; offline startup also needs to exclude the real client and reject controller endpoint configuration.

3 points
OM
OmarBrown0926
Replying to JoAbbott0070

Should a missing substitute method always fail the offline run instead of falling back to the real SDK? I want that boundary to be unambiguous.

7 points
JO
JoAbbott0070
Replying to OmarBrown0926

Exactly. Fail clearly. A missing method is something to implement or remove from your application, not a reason to reach the controller.

12 points
EL
ElenaBell0688
Replying to JoAbbott0070

My substitute accepted arbitrary method names. A typo passed every offline run. The fake was exceptionally supportive and entirely useless for that mistake.

24 points
RA
RachelBarnes0609
Replying to ElenaBell0688

@ElenaBell0688 Would you check argument names too, or is matching the return value enough?

6 points
JO
JoAbbott0070
Replying to RachelBarnes0609

@RachelBarnes0609 Match the documented call signature too. Wrong arguments should fail clearly instead of getting a plausible canned response.

12 points
OM
OmarBrown0926
Replying to JoAbbott0070

I tried that and found an obsolete helper call in our application. The permissive mock had accepted it without complaint.

11 points
OW
OwenBennett0747
Replying to OmarBrown0926

Have you tied the saved examples to their SDK version? A realistic response from another version could still teach the substitute the wrong behaviour

9 points
OM
OmarBrown0926
Replying to OwenBennett0747

Our saved examples have the SDK source identifier and matching documentation. I'll keep those attached; loose response files would lose that context.

5 points
RA
RachelBarnes0609
Replying to OmarBrown0926

Can I just invent the missing error cases? We won't have captures for absolutely everything.

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