Skip to content
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

Bugfix: docs/Architecture related guide materials #880

Merged
merged 2 commits into from Aug 3, 2021
Merged

Bugfix: docs/Architecture related guide materials #880

merged 2 commits into from Aug 3, 2021

Conversation

ghost
Copy link

@ghost ghost commented Aug 1, 2021

Originating Project/Creator
Affected Component n
Affected Architectures(s) n
Related Issue(s) n
Has Unit Tests (y/n) n
Builds Without Errors (y/n) y
Unit Tests Pass (y/n) y
Documentation Included (y/n) y

Change Description

The relationship between "SomeComponentBase" and "SomePorts" is Composition-relationship here.

The "diamond block" should be closely placed to "SomeComponentBase" but not "SomePorts".

As an example, the specific component base class "SendBuffComponentBase", which is autogenrated based on
fprime-root-path/Ref/SendBuffApp/SendBuffComponentAi.xml.

The class "SendBuffComponentBase" pseudo-code:

class SendBuffComponentBase : public QueuedComponentBase{
// decalare some ports here
//! Input port SchedIn
Svc::InputSchedPort m_SchedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];

//... and so on
}

Rationale

document enhancement

Testing/Review Recommendations

no related

Future Work

no related

The relationship between "SomeComponentBase" and "SomePorts" is
Composition-relationship here.

The "diamond block" should be closely placed to "SomeComponentBase" but
not "SomePorts".

As an example, the specific component base class "SendBuffComponentBase",
which is autogenrated based on
fprime-root-path/Ref/SendBuffApp/SendBuffComponentAi.xml.

The class "SendBuffComponentBase" pseudo-code:

class SendBuffComponentBase : public QueuedComponentBase{
// decalare some ports here
//! Input port SchedIn
Svc::InputSchedPort m_SchedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];

//... and so on
}
@timcanham
Copy link
Collaborator

Good diagram catch. Could you just change the diagram to make the ports on the bottom as before?

@startuml
title Component Class Hierarchy
note right of Fw::ObjBase : Framework Class
note right of Fw::PassiveComponentBase : Framework Class
note right of Fw::QueuedComponentBase : Framework Class
note right of Fw::ActiveComponentBase : Framework Class
Fw::PassiveComponentBase -up-|> Fw::ObjBase
Fw::QueuedComponentBase -up--|> Fw::PassiveComponentBase
Fw::ActiveComponentBase -up--|> Fw::QueuedComponentBase
note top of SomeComponentBase : Autocoded Class
SomeComponentBase -right-|> Fw::PassiveComponentBase
SomeComponentBase *-down- "many" SomePorts
note top of SomeComponentImpl : Developer Written Class
SomeComponentImpl -right-|> SomeComponentBase
AnotherComponentBase -right-|> Fw::QueuedComponentBase
AnotherComponentBase *-down- "many" MorePorts
AnotherComponentImpl -right-|> AnotherComponentBase
ThirdComponentBase -right-|> Fw::ActiveComponentBase
ThirdComponentBase *-down- "many" OtherPorts
ThirdComponentImpl -right-|> ThirdComponentBase

@enduml

@LeStarch LeStarch requested review from timcanham and LeStarch August 3, 2021 00:50
Copy link
Collaborator

@LeStarch LeStarch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See Tim's feedback in "conversation tab" (above)

@ghost
Copy link
Author

ghost commented Aug 3, 2021

Thank Tim. I have done.

Good diagram catch. Could you just change the diagram to make the ports on the bottom as before?

@startuml
title Component Class Hierarchy
note right of Fw::ObjBase : Framework Class
note right of Fw::PassiveComponentBase : Framework Class
note right of Fw::QueuedComponentBase : Framework Class
note right of Fw::ActiveComponentBase : Framework Class
Fw::PassiveComponentBase -up-|> Fw::ObjBase
Fw::QueuedComponentBase -up--|> Fw::PassiveComponentBase
Fw::ActiveComponentBase -up--|> Fw::QueuedComponentBase
note top of SomeComponentBase : Autocoded Class
SomeComponentBase -right-|> Fw::PassiveComponentBase
SomeComponentBase *-down- "many" SomePorts
note top of SomeComponentImpl : Developer Written Class
SomeComponentImpl -right-|> SomeComponentBase
AnotherComponentBase -right-|> Fw::QueuedComponentBase
AnotherComponentBase *-down- "many" MorePorts
AnotherComponentImpl -right-|> AnotherComponentBase
ThirdComponentBase -right-|> Fw::ActiveComponentBase
ThirdComponentBase *-down- "many" OtherPorts
ThirdComponentImpl -right-|> ThirdComponentBase

@enduml

@LeStarch LeStarch merged commit 915196b into nasa:devel Aug 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants