|
|
| F´ Version |
current |
| Affected Component |
command dispatch |
Problem Description
For synchronous commands, the time stamp on OpCodeCompleted is before the time stamp of OpCodeDispatched and send_and_assert_command hard codes that the dispatch EVR must occur before the OpCodeCompleted EVR
19:04:37.740030 [GDS] Received EVR: TB_PROC_TIME: 3820.131268s, context=0: {Topology}..cmdDisp.OpCodeCompleted (13313) (1(0)-3820:131268) EventSeverity.COMMAND : Opcode {opcode} completed
19:04:37.741250 [GDS] Received EVR: TB_PROC_TIME: 3820.131342s, context=0: {Topology}.cmdDisp.OpCodeDispatched (13312) (1(0)-3820:131342) EventSeverity.COMMAND : Opcode {opcode}dispatched to port 2
I suspect this is occuring because synchronous commands complete before the comCmdSend_out() function returns & that function is called before the dispatch EVR is generated
// pass arguments to argument buffer
this->compCmdSend_out(this->m_entryTable[entry].port, cmdPkt.getOpCode(), this->m_seq, cmdPkt.getArgBuffer());
// log dispatched command
this->log_COMMAND_OpCodeDispatched(cmdPkt.getOpCode(), this->m_entryTable[entry].port);
This command is dispatched by https://github.com/fprime-community/fprime-baremetal/blob/main/fprime-baremetal/Svc/PassiveCmdDispatcher/PassiveCmdDispatcher.cpp#L187
Context / Environment
Execute fprime-util version-check and share the output.
Operating System: Linux
CPU Architecture: x86_64
Platform: Linux-4.18.0-553.89.1.el8_10.x86_64-x86_64-with-glibc2.28
Python version: 3.9.25
CMake version: 3.26.0
Pip version: 25.3
Pip packages:
fprime-tools==4.0.2a2
fprime-gds==4.0.2a11.dev3+gc55a33b86
fprime-fpp==3.1.0a12
Project submodules:
https://github.com/nasa/fpp.git @ v3.1.0a11-174-g00d24d107
https://github.com/nasa/fprime.git @ v4.0.1a1-103-g89a9e3247b
https://github.com/fprime-community/fprime-baremetal @ b94a572
https://github.com/fprime-community/fprime-vorago @ f093f5a
How to Reproduce
- Send a cmd no op
- Look at the time stamps of the EVRs
Expected Behavior
A description of the expected behavior.
Problem Description
For synchronous commands, the time stamp on
OpCodeCompletedis before the time stamp ofOpCodeDispatchedandsend_and_assert_commandhard codes that the dispatch EVR must occur before theOpCodeCompletedEVRI suspect this is occuring because synchronous commands complete before the comCmdSend_out() function returns & that function is called before the dispatch EVR is generated
This command is dispatched by https://github.com/fprime-community/fprime-baremetal/blob/main/fprime-baremetal/Svc/PassiveCmdDispatcher/PassiveCmdDispatcher.cpp#L187
Context / Environment
Execute
fprime-util version-checkand share the output.How to Reproduce
Expected Behavior
A description of the expected behavior.