fprime
fprime copied to clipboard
Incorrect arguments in seqCmdStatus port call in CmdDispatcher
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.
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.