Hi,
I am trying to initiate a fixed time workout. It looks like I can easily initiate a fixed distance workout using the SetHorisontal command, but when I try using the SetWork command instead, I get a FrameRejected when issuing the SetProgram command.
I have pasted some console output from my program with comments. I hope someone can help me get the command sequence right.
Bue
Code:
Command: 81 ;Reset
Response:
Status: Ok, state: Ready
Command: 21 03 02 00 21 ;SetHorisontal 2 km
Response:
Status: Ok, state: Ready
Command: 24 02 00 00 ;SetProgram
Response:
Status: Ok, state: Ready
Command: 85 ;GoInUse
Response:
Status: Ok, state: InUse
...
Command: 86 81
Response:
Status: Ok, state: Ready
;So far, so good
Command: 21 03 00 00 24 ;Make sure we don't have a set distance
Response:
Status: Ok, state: Ready
Command: 20 03 00 05 00 ;SetWork 5 min
Response:
Status: Ok, state: Ready
Command: 24 02 00 00 ;SetProgram
Response:
Status: PrevRejected, state: Ready ;Oops!
Proper CSAFE sequence for initiating a fixed time workout
Your order of operations and logged CSAFE look good to me.
I believe the PM3/4 validates your workout parameters when you call SetProgram. That validation may be failing and hence the rejection. I'm assuming that a GoIdle following SetProgram doesn't actually start the timed workout.
Try setting the workout to a longer time (e.g. 10 minutes, 30 minutes). A 5 minute workout should be longer than any minimum, but it doesn't hurt to try.
Are you running v97 of the Firmware (or is it v11 for a PM4)? You may be hitting an old validation bug or you may have found a new bug. You might want to drop an email/PM to c2scott with a link to your message, I'm not sure how often he checks the forum.
Mike
EDIT
Actually, I think it's the SETHORIZONTAL_CMD before SETTWORK that's failing. You don't need to do a SETHORIZONTAL to 0. The PM3/4 is going to think you want a 0m 5:00 workout, it's going to compare 0m to some minimum distance (250m?) and it's going to fail.
I believe the PM3/4 validates your workout parameters when you call SetProgram. That validation may be failing and hence the rejection. I'm assuming that a GoIdle following SetProgram doesn't actually start the timed workout.
Try setting the workout to a longer time (e.g. 10 minutes, 30 minutes). A 5 minute workout should be longer than any minimum, but it doesn't hurt to try.
Are you running v97 of the Firmware (or is it v11 for a PM4)? You may be hitting an old validation bug or you may have found a new bug. You might want to drop an email/PM to c2scott with a link to your message, I'm not sure how often he checks the forum.
Mike
EDIT
Actually, I think it's the SETHORIZONTAL_CMD before SETTWORK that's failing. You don't need to do a SETHORIZONTAL to 0. The PM3/4 is going to think you want a 0m 5:00 workout, it's going to compare 0m to some minimum distance (250m?) and it's going to fail.
Thanks for the advice. Yes, I am running version 97 on a pm3.
It looks as if any workout under 6 min or 400 meter will generate a frame rejected error. when you issue the setProgram command. I think it is odd that these limits should be imposed, since, aparrently, they don't apply when you make the workout from the screen. Sorry, but I am quite new to this forum. Can anybody tell me where to post these observations, so we might get the thing fixed?
Also, I would have thought that issuing a GoInUse command would make the clock start counting immediately and not wait for the rower to start rowing, but subsequent calls to GetWork still show 00:00:00. Could anybody, please, tell me how to make the clock start streight away, like in a race.
Best regards
Bue Vester-Andersen
It looks as if any workout under 6 min or 400 meter will generate a frame rejected error. when you issue the setProgram command. I think it is odd that these limits should be imposed, since, aparrently, they don't apply when you make the workout from the screen. Sorry, but I am quite new to this forum. Can anybody tell me where to post these observations, so we might get the thing fixed?
Also, I would have thought that issuing a GoInUse command would make the clock start counting immediately and not wait for the rower to start rowing, but subsequent calls to GetWork still show 00:00:00. Could anybody, please, tell me how to make the clock start streight away, like in a race.
Best regards
Bue Vester-Andersen
You're in the right place to post questions, get help, and identify bugs with the SDK. But it might help if you also send a message to c2scott. He's the man at C2 that can validate your bug and get it fixed.
The SDK is designed to set up a workout with the PM3, not a race. The racing start display is NOT available to the general public, only Concept2 and Digital Rowing (and maybe other friends of Concept2).
Mike
The SDK is designed to set up a workout with the PM3, not a race. The racing start display is NOT available to the general public, only Concept2 and Digital Rowing (and maybe other friends of Concept2).
Mike