9.1.2.4. ComSpec 설계 방법

Table of contents

Sender/Receiver Communication

Non-Queued Com Spec 설계 방법

SW Component간 Communication 종류에 따라서 해당하는 Communication Specification을 설계를 해주어야 한다.

Communication Specification은 Port에 설계를 해주어야 하며 Port 종류에 따라서 설계를 해주어야 하는 Communication Specification은 아래와 같다.

PPort(dataSenderPort): Non-Queued Sender Com Spec

Non-Queued Sender Com Spec 설계 방법
  • Non-Queued Sender Com Spec은 dataSenderPort에 설계를 한다.
    • Port 선택 후 > R.AUTO Context Menu > “Design Nonqueued Sender Com Spec” 선택
    • (참고) dataSenderPort일 경우 Sender Com Spec, dataReceiverPort일 경우 Receiver Com Spec이 생성 된다.
    • Port를 통해 Communication하는 SenderReceiverInterface내에 정의된 dataElement 수만큼 ValueSpecification이 생성되며 ValueSpecification을 통해 dataElement의 초기값을 설정할 수 있다.
  • Data Type별 생성되는 ValueSpecification을 확인한다.
    • NumericalValueSpecification
      • Primitive Data Type일 경우 생성되는 ValueSpecification.
      • dataElement 개수만큼 NumericalValueSpecification이 생성된다.
    • RecordValueSpecification
      • Struct 또는 Union Data Type일 경우 생성되는 ValueSpecification.
      • Struct나 Union Data의 멤버 개수만큼 RecordValueSpecification 하위에 NumericalValueSpecification이 생성된다.
    • ArrayValueSpecification
      • Array Data Type일 경우 생성되는 ValueSpecification.
      • Array Size만큼 ArrayValueSpecification 하위에 NemericalValueSpecification이 생성된다.

RPort(dataReceiverPort): Non-Queued Receiver Com Spec

Non-Queued Receiver Com Spec 설계 방법
  • Non-Queued Receiver Com Spec은 dataReceiverPort에 설계를 한다.
    • Port 선택 후 > R.AUTO Context Menu > “Design Nonqueued Receiver Com Spec” 선택
    • (참고) dataSenderPort일 경우 Sender Com Spec, dataReceiverPort일 경우 Receiver Com Spec이 생성된다.
    • Port를 통해 Communication하는 SenderReceiverInterface내에 정의된 dataElement 수만큼 ValueSpecification이 생성되며 ValueSpecification을 통해 dataElement의 초기값을 설정할 수 있다.
    • Receiver Com Spec의 경우 “enableUpdate”속성으로 Port의 Update 유무를 알 수 있는 설계를 추가할 수 있다.
  • (옵션) Rte_IsUpdated() 및 Receive Buffer에 Update Flag 생성을 위한 설계 방법
    • Non-Queued Receiver Com Spec의 “enableUpdate”값을 true로 설정한다.
    • Rte_IsUpdated() API와 Data Receive Buffer에 Update Flag가 생성되기 위해서는 Data Receive Port에 아래와 같은 설계가 되어 있어야 한다.
      • Non-Queued Receiver Com Spec이 설계되어 있고 “enableUpdate”값이 “true”로 설정되어야 함.
  • Data Type별 생성되는 ValueSpecification확인
    • NumericalValueSpecification
      • Primitive Data Type일 경우 생성되는 ValueSpecification.
      • dataElement 개수만큼 NumericalValueSpecification이 생성된다.
    • RecordValueSpecification
      • Struct 또는 Union Data Type일 경우 생성되는 ValueSpecification
      • Struct나 Union Data의 멤버 개수만큼 RecordValueSpecification 하위에 NumericalValueSpecification이 생성된다.
    • ArrayValueSpecification
      • Array Data Type일 경우 생성되는 ValueSpecification.
      • Array Size만큼 ArrayValueSpecification 하위에 NumericalValueSpecification이 생성된다.

Design All Non-Queued Sender Receiver Com Spec

Non-Queued Com Spec 설계 방법 - Design All
  • Interface 설계가 변경될 때마다 Interface를 참조해서 통신을 하는 두 개의 Port(PPort, RPort)에 ComSpec을 새로 설계를 해주어야 하는데 SW 컴포넌트 설계가 완성되기 전에는 Interface 수정이 계속 이루어지기 때문에 매번 ComSpec을 설계하는 것은 비효율적이다.
  • ComSpec은 Port별로 설계를 하는 것이기 때문에 Port가 많을 경우 효율적으로 설계를 하기 위해서 R.AUTO에서는 SW Component내의 전체 Port에 대해서 일괄적으로 ComSpec 설계를 지원한다.
  • 각 Layer Package(ApplicationLayer, ComplexDeviceDriverLayer, IoHwAbstractionLayer)에서 “Design All Nonqueued Sender Receiver Com Spec”메뉴를 실행하면 해당 Package내의 모든 SW Component의 Port에 대해서 Non-Queued Com Spec이 설계 된다.
  • 설계 완료 후 개발적인 설정은 각 Com Spec의 Tag값을 알맞게 수정한다.

Client/Server Communication

Client Server Com Spec 설계 방법

SW Component간 Communication 종류에 따라서 해당하는 Communication Specification을 설계를 해주어야 한다.

Communication Specification은 Port에 설계를 해주어야 하며 Port 종류에 따라서 설계를 해주어야 하는 Communication Specification은 아래와 같다.

PPort(serverPort): Server Com Spec

Server Com Spec 설계 방법
  • Server Com Spec은 serverPort에 설계를 한다.
    • Port 선택 후 > R.AUTO Context Menu > “Design Server Com Spec” 선택
    • (참고) serverPort일 경우 Server Com Spec, clientPort일 경우 Client Com Spec이 생성 된다.
    • Port를 통해 Communication하는 ClientServerInterface내에 정의된 operation 수만큼 ServerComSpec이 생성된다.

RPort(clientPort): Client Com Spec

Client Com Spec 설계 방법
  • Client Com Spec은 clientPort에 설계를 한다.
    • Port 선택 후 > R.AUTO Context Menu > “Design Client Com Spec” 선택
    • (참고) serverPort일 경우 Server Com Spec, clientPort일 경우 Client Com Spec이 생성 된다.
    • Port를 통해 Communication하는 ClientServerInterface내에 정의된 operation 수만큼 ClientComSpec이 생성된다.

Design All Client Server Com Spec

Client Server Com Spec 설계 방법 - Design All
  • Interface 설계가 변경될 때마다 Interface를 참조해서 통신을 하는 두 개의 Port(PPort, RPort)에 ComSpec을 새로 설계를 해주어야 하는데 SW 컴포넌트 설계가 완성되기 전에는 Interface 수정이 계속 이루어지기 때문에 매번 ComSpec을 설계하는 것은 비효율적이다.
  • ComSpec은 Port별로 설계를 하는 것이기 때문에 Port가 많을 경우 효율적으로 설계를 하기 위해서 R.AUTO에서는 SW Component내의 전체 Port에 대해서 일괄적으로 ComSpec 설계를 지원한다.
  • 각 Layer Package(ApplicationLayer, ComplexDeviceDriverLayer, IoHwAbstractionLayer)에서 “Design All Client Server Com Spec”메뉴를 실행하면 해당 Package내의 모든 SW Component의 Port에 대해서 Client Server Com Spec이 설계 된다.