fprime icon indicating copy to clipboard operation
fprime copied to clipboard

Incorrect arguments in seqCmdStatus port call in CmdDispatcher

Open zimri-leisher opened this issue 5 months ago • 3 comments

F´ Version 3.4.3
Affected Component CmdDispatcher


Problem Description

When the CmdDispatcher receives a CmdResponse, it looks up in its sequence tracker table whether that command was being run in a command sequence, and if it was, it forwards the cmd response to the cmd sequencer. It does this by calling the seqCmdStatus output port, which is a port of type Svc.CmdResponse. However, it calls it with the incorrect arguments. image image Note in the first image, in CmdDispatcherImpl.cpp, it calls it with portToCall, opCode, context and response. Note that in the second image, in CmdDispatcherComponentAc.cpp, the correct arguments are portToCall, opCode, cmdSeq and response.

Therefore, the call in CmdDispatcherImpl.cpp should be changed to provide cmdSeq instead of context. They just happen to be of the same type so it compiles.

This was not detected because the CmdSequencer doesn't actually use the cmdSeq argument when it receives the status from the CmdDispatcher.

zimri-leisher avatar Sep 18 '24 15:09 zimri-leisher