반응형

앞선 화에서는 Runnable Implementation 대하여 살펴보았습니다. 이번화에서는 VFB에서의 Communication(Sender-Receiver) 대하여 살펴보겠습니다.

 

먼저, Communication 상에서의 Error Type 대해서 살펴보겠습니다. 그런 Sender-Receiver Communication Client-Server Communication(다음 6-1) 대하여 살펴보겠습니다.

 

우리는 전화통화를 하던 중에 다양한 이유로 통화가 끊길 있습니다. 핸드폰 밧데리가 없다던지, 통신 기지국과의 연결이 수월치 않다던지, 아니면 통화 당사자에게 이상이 생겨 통화가 안되는 경우가 생길 있습니다.

이와 같이 모든 대화나 Communication 대하여 Error 발생할 있고, 부분에 대하여 AUTOSAR에서도 별도의 타입 형태로 정의하고 있습니다.

Communication Error Type 크게 두가지로 나타낼 있습니다. 두가지는 Infrastructure errors Application errors입니다.

Infrastructure error Sender Receiver 또는 Client Server사이에서의 Communication 실패할 경우 Infrastructure error 리턴 됩니다. 가장 전형적인 예로 메시지 손실 Communication 채널의 사용불가등을 바탕으로 timeout 있습니다.

Application error 경우는 반드시 사전에 명시 되야 하고, 부분은 Application에서만 발생할 있는 에러입니다. (관련하여 RTE Spec참조)

 

Sender - Receiver Communication

부분에 대하여 앞서 Sender-Receiver Interface에서 관련된 이야기를 많이 나눴습니다. 쉽게 이야기를 하면, 단순 Signal-Passing, 또는 데이터의 분배라는 말을 많이 합니다. Sender-Receiver Interface Sender-Receiver Communication 하기 위한 Interface입니다.



앞서서 봤지만, 다시 한번 간단히 설명 드리면, Sender-Receiver Interface Data-Elements 구성됩니다. Data-Elements들을 AUTOSAR Type 참조 하게 됩니다. 여기서 Data-Element들을 사용할 크게 두가지 형태로 있습니다. Queue방식과 Last-is-best방식으로 됩니다. 저희가 자료 구조를 배우신 분이라면 쉽게 FIFO(First-In First-Out)라는 방식을 생각하시면 됩니다.

 

방식에 대해서는 반드시 INIT_VALUE 설정이 요구됩니다.

 

그러면 우리는 데이터의 제공자, 수신자 관점에서 조금 자세하게 살펴 보겠습니다.

먼저 데이터 제공자(Sender)입니다.

 

우선 Last-is-best방식일 경우, 항상 현재의 값을 가지게 됩니다. 물론, 여기에 초기값을 설정하는 경우도 있으나, 데이터 제공자 입장에서는 현재의 값으로 덮어 쓰기 수가 있습니다.

Queue 방식일 때는 연속된 값들은 큐에 저장 된다. 매번 새로운 값들은 큐에 저장이 됩니다.

, 여기서 송신자는  수신 자가  누군 인지, 인지에 대하여 모른다. 행동은 수신자의 존재 유무와 전현 상관이 없습니다.

송신자는 오직 정보를 제공하고 수신자는 언제 어떻게 정보를 사용할 것인지 자동으로 결정됩니다.

 

그러면 우리는 이제 수신자 입장에서 한번 살펴 봅시다.

수신자는 Data-Element 대해서 R-Port(Required) Port 통해 수신 있습니다.  Last is best 방식일 경우, data-elements 최신 값에 대해 접근이 가능 합니다또한 Data-Elements invalid 경우( 지원시) 부분에 대해 수신자에게 통보가 됩니다. 수신자는 RTE로부터 data-elements 생존 여부에 대해 정보를 수령합니다. Last is best 경우, R-Port(Required) Initial Value 반드시 설정해야 합니다.

 

그럼 Queue 방식 경우, 수신자가 다음 값을 얻기 위한 기능을 가지고 있습니다. Queue 비웠을 경우, 관련하여 수신자에게 통보됩니다. 만약 비워 있지 않다면, 순차적으로 다음 값이 읽혀집니다. 만약 큐가 가득 있는 상태에서 새로운 값이 추가되면, 새로운 값은 폐기 됩니다.

 

이제까지 6화에서는 VFB Communication(Sender-Receiver) 대하여 알아 보았습니다. 다음 6-1화에서는 VFB Communication(Client-Server) 대하여 살펴 보겠습니다

반응형

+ Recent posts