-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Data Product Catalog prototype #2667
Conversation
Requested @bocchino for changes made to |
void DpCatalog :: | ||
fileDone_handler( |
Check notice
Code scanning / CodeQL
Long function without assertion Note
void DpCatalog :: | ||
START_XMIT_CATALOG_cmdHandler( |
Check notice
Code scanning / CodeQL
Long function without assertion Note
this->m_initialized = true; | ||
} | ||
|
||
Fw::CmdResponse DpCatalog::doCatalogBuild() { |
Check notice
Code scanning / CodeQL
Long function without assertion Note
|
||
} | ||
|
||
bool DpCatalog::checkInit() { |
Check notice
Code scanning / CodeQL
Long function without assertion Note
|
||
} | ||
|
||
void DpCatalog::sendNextEntry() { |
Check notice
Code scanning / CodeQL
Long function without assertion Note
DpCatalog :: | ||
DpCatalog(const char* const compName) : |
Check notice
Code scanning / CodeQL
Long function without assertion Note
@@ -98,6 +98,9 @@ | |||
//! \return The time tag | |||
Fw::Time getTimeTag() const { return this->m_timeTag; } | |||
|
|||
//! Get the product state | |||
Fw::DpState getState() const { return this->m_dpState; } |
Check notice
Code scanning / CodeQL
More than one statement per line Note
// Private data structures | ||
// ---------------------------------- | ||
|
||
struct DpStateEntry { |
Check notice
Code scanning / CodeQL
More than one statement per line Note
this->m_initialized = true; | ||
} | ||
|
||
Fw::CmdResponse DpCatalog::doCatalogBuild() { |
Check notice
Code scanning / CodeQL
Function too long Note
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
this->m_directories[dir].toChar(), | ||
this->m_fileList[file].toChar() | ||
); | ||
this->log_ACTIVITY_LO_ProcessingFile(fullFile); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be worth lowering the severity of this EVR to diagnostic, sending a event per data product file processed could add up.
Is storing transmit state (UNTRANSMITTED/PARTIAL/TRANSMITTED) in the data product header the long term term plan? It seems like this would force us to re-write data products once we start transmitting them, which could be a bit of a circular dependency. It also could get a bit confusing because the onboard DP file checksum would change after you start transmitting it. Did we consider having DpCatalog own data product transmit state instead? (I.E. have a catalog file with a list of data products and their transmit states) This could also provide a bit more flexibility because different projects may want to track data product transmit state differently (I.E. track not just that a data product is partial but how much of the file was sent, or which portions of the file need to be retransmitted). |
@Joshua-Anderson The plan is to modify the header as we process the data products, i.e. You are correct that having a separate DP state file (or other variants on the idea) is an option and @bocchino and I discussed it, but I've always preferred files to be self-contained in their state so that the |
The changes to DpWriter look good to me! I just had a couple of comments. |
~DpCatalog() | ||
{} | ||
|
||
void DpCatalog::configure( |
Check notice
Code scanning / CodeQL
Long function without assertion Note
|
||
DpCatalog :: | ||
~DpCatalog() | ||
{} |
Check notice
Code scanning / CodeQL
More than one statement per line Note
@@ -18,10 +18,14 @@ | |||
// Construction, initialization, and destruction | |||
// ---------------------------------------------------------------------- | |||
|
|||
DpWriter::DpWriter(const char* const compName) : DpWriterComponentBase(compName) {} | |||
DpWriter::DpWriter(const char* const compName) : DpWriterComponentBase(compName), m_dpFileNamePrefix() {} |
Check notice
Code scanning / CodeQL
More than one statement per line Note
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bocchino would you mark a final review on this demo component? Just clarify your comments were resolved.
product get port productGetOut | ||
|
||
@ Data product request port | ||
product request port productRequestOut |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is there bothj get and request on this component and one is left in TODO state?
Fw::Success::T status | ||
) | ||
{ | ||
// TODO |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be removed or demonstrated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was going to add that update to SignalGen
after the demo was merged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hold off for a day or so - decided to implement the missing function.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@timcanham this was merged yesterday.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah... Okay, I'll do another PR for the update.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My comments have been addressed.
Change Description
This is a prototype demonstration of
Svc/DpCatalog
It was used to demonstrate an early release of data products in conjunction with FPP updates andDpManager/DpWriter
Svc/DpCatalog
is not complete yet - this version is to capture the demo and allow users to play with it.Rationale
Get a consolidated set of data product features int he baseline.
Testing/Review Recommendations
The demo can be run and experimented with.
Future Work
Svc/DpCatalog
work will be continued with further releases.