< 이전 | 다음 >

학습 3: RIMBO를 사용하여 SWC 구현

Rhapsody® 구현 오브젝트(RIMBO)를 사용하여 원자 SWC 유형을 구현할 수 있습니다.
원자 SWC 유형을 구현하려면 다음을 수행하십시오.
  1. ARBMT 패키지 아래 SWC 구현 다이어그램을 작성하십시오. 패키지를 마우스 오른쪽 단추로 클릭하고 새로 추가 > 다이어그램 > SWCImplDiagram을 선택하십시오.
  2. 구현할 SWC 유형을 다이어그램에 끌어 놓으십시오.
  3. SWC 유형 상자의 내부에 있는 도구 상자에서 RIMBO를 끌어 놓으십시오.
  4. 기존 RIMB를 통해 RIMBO를 입력하십시오.
  5. 도구 상자에서 커넥터를 사용하여 SWC 유형의 포트를 RIMB의 포트에 연결하십시오.
    • 데이터 커넥터를 사용하여 송신기/수신기 포트를 연결하십시오.
    • 서비스 커넥터를 사용하여 클라이언트/서버 포트를 연결하십시오.
    참고: 주어진 SWC 유형 내부에 여러 RIMBO가 배치되어 연결되어 있을 수 있습니다. 이름에 따라 AUTOSAR 인터페이스 요소와 구현 블록 인터페이스 요소가 일치됩니다. 따라서 AUTOSAR 포트가 구현 블록 포트에 연결될 때 해당 요소의 이름에 따라 AUTOSAR 포트의 인터페이스에 있는 요소가 구현 블록의 인터페이스에 있는 요소와 일치됩니다.
    제한사항: 여러 구현 블록 오브젝트를 주어진 소프트웨어 컴포넌트 유형 내부에 배치하고 연결할 수 있지만 상호 간에 연결할 수는 없습니다.

    RIMB 구현 코드 구조는 내부 동작 태그(“SupportMultipleInstamtiation”)에 따라 다릅니다. 태그 “SupportMultipleInstantiation”이 “False”인 경우 RIMB에서 컨텍스트 포인터(“me”, “self”)를 사용하지 않습니다. RIMB를 싱글톤 또는 파일로 생성합니다(예: 구조를 생성하지 않고 “me”, “self” 포인터가 없음).

    태그 “SupportMultipleInstantiation”이 “True”인 경우에는 RIMB에서 컨텍스트 포인터(“me”, “self”)를 사용합니다.
    • 데이터를 RIMB의 C 구조로 캡슐화

    • ActiveOperation 이외의 모든 오퍼레이션에 “me” 인수 있음

    • 다음 오퍼레이션에서 “Rte_Instance self” 매개변수 사용

      • 사용자 모델 오퍼레이션

      • 상태 차트 dispatchEvent & takeEvent 오퍼레이션

      • 트리거된 오퍼레이션

      • 활성 오퍼레이션

        “Rte_Instance self” 매개변수에서 “me” 포인터를 추출하려면 Rte_PIM API를 호출하여 각 활성 오퍼레이션의 시작 부분에 코드를 추가하십시오.

      • ARBMT 액세서 헬퍼 오퍼레이션

      • mxf RiCReactive 오퍼레이션: RiCReactive_consumeEvent, RiCReactive_takeEvent, RiCReactive_takeTrigger, runToCompletion

    • RIMBO 데이터/인스턴스 선언 없음

    • RIMB_Init 오퍼레이션 없음

    • 통합 프로그램이 <RIMB-class>_Init, <RIMB-class>_startBehavior를 호출해야 함

    • InternalBehavior에서 RIMB PIM의 ARXML 정의 작성

    • 생성된 코드에 관련 유형 정의 작성

    제한사항:
    • "RTE의 스펙" 스펙으로 인해 코드에 유형에 대한 순환 종속성이 있을 수 있습니다. "통합 프로그램"으로 이를 수동으로 처리해야 합니다.

    • “Rte_Instance self” 매개변수는 상태 차트 “entDef” 오퍼레이션에 추가되지 않습니다.

    • 최적화된 상태 차트가 지원되지 않습니다.

    • 모든 실행 가능한 엔티티는 “독점 영역에서 실행” 모드에 있어야 합니다.

    • RIMB에서 하나의 RIMBO만 입력할 수 있습니다.
    • 하나의 원자 SW/C, RIMB, RIMB 인터페이스 등과 관련된 모든 요소는 개별 패키지에 있어야 하고 다른 원자 SW/C와 관련된 요소와 혼합되면 안 됩니다.
    관련 새 특성:
    • C_CG::Operation::OSContextName

    • C_CG::Operation::OSContextDeclType

    • C_CG::Operation::ActiveOperationExtractMeCall

< 이전 | 다음 >

피드백