Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR VERIFYING OPERATIONS FOR COMMON APPLICATION DEVELOPMENT OF IN-VEHICLE INFOTAINMENT SYSTEM AND MOBILE TERMINAL
Document Type and Number:
WIPO Patent Application WO/2015/133786
Kind Code:
A1
Abstract:
The present invention relates to a simulator for an easier application development and, more specifically, to a method capable of verifying operations of a common mobile application for providing an interworking function between an in-vehicle infotainment system and a mobile terminal. A method for verifying an application using a simulator related to one embodiment of the present invention may comprise: a step for running a first simulator including a client simulator and a second simulator corresponding to a server simulator; a step for inputting client setting information and server setting information to the first simulator; a step for starting a session between the first simulator and the second simulator; a step for running an application to be verified; a step for registering, to the server simulator, the application to be verified; a step for obtaining, by the application to be verified, a replacer module from the second simulator; and a step for registering, to the second simulator, a function for receiving status change information of the application to be verified.

Inventors:
LEE MINHUN (KR)
CHOI SUNGHA (KR)
Application Number:
PCT/KR2015/002028
Publication Date:
September 11, 2015
Filing Date:
March 03, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
LG ELECTRONICS INC (KR)
International Classes:
G06F9/455; G06F9/44; G06F15/16
Foreign References:
KR20060120080A2006-11-24
US20120030512A12012-02-02
US20130103779A12013-04-25
US20130066518A12013-03-14
Attorney, Agent or Firm:
KIM, Yong In et al. (KR)
김용인 (KR)
Download PDF:
Claims:
【청구의 범위】

【청구항 1】

클라이언트 시물레이터를 포함하는 제 1 시물레이터 및 서버 시물레이터에 대웅되는 제 2 시물레이터가 실행되는 단계;

상기 제 1 시뮬레이터에 클라이언트 설정 정보 및 서버 설정 정보가 입력 되는 단계; '

상기 제 1 시물레이터와상기 제 2 시물레이터간의 세션이 시작되는 단계; 검증 대상 어플리케이션이 실행되는 단계;

상기 검증 대상 어플리케이션이 상기 서버 시물레이터에 등록되는 단계; 상기 제 2 시물레이터로부터 상기 검증 대상 어플리케이션에 대체자 모들 이 획득되는 단계; 및

상기 검증 대상 어플리케이션의 상태 변경 정보를 수신하기 위한 함수가 상기 제 2 시물레이터에 등록되는 단계를 포함하는, 시물레이터를 이용한 어폴리 케이션 검증 방법.

【청구항 2]

제 1항에 있어서,

상기 제 1 시물레이터에서 제 1 세션 이벤트가 설정되는 단계;

상기 제 1 시물레이터에서 상기 제 1 세션 이벤트에 대한 정보가 상기 제 2 시물레이터로 전달되는 단계;

상기 제 2 시물레이터에서 상기 등록된 함수를 통해 상기 제 1 세션 이벤 트에 대한 정보가 상기 검증 대상 어플리케이션으로 전달되는 단계; 및

상기 검증 대상 어폴리케이션에서 상기 계 1 세션 이벤트에 대한 정보에 대웅되는 동작이 수행되는 단계를 더 포함하는, 시물레이터를 이용한 어플리케이 션 검증 방법.

【청구항 3]

제 2항에 있어서,

상기 제 1 시뮬레이터에서 상기 제 1 세션 이벤트에 대한 정보가 상기 제 2 시물레이터로 전달되는 단계는,

상기 제 1 시물레이터에서 상기 제 1 세션 이벤트에 대한 정보를 포함하는 시리얼 데이터 패킷이 생성되는 단계;

상기 시리얼 데이터 패킷이 상기 제 2 시물레이터로 전달되는 단계; 및 상기 제 2 시뮬레이터에서 상기 시리얼 데이터 패킷을 파싱하여 해석하는 단계를 포함하는, 시뮬레이터를 이용한 어플리케이션 검증 방법.

【청구항 4]

제 1항에 있어서,

상기 검증 대상 어플리케이션에서 상태 변경에 따른 제 2 세션 이벤트가 발생하는 단계 ;

상기 제 2 세션 이벤트에 대한 정보가 상기 제 2 시물레이터에 설정되는 단계;

상기 제 2 시물레이터에서 상기 제 2 세션 이벤트에 대한 정보가 상기 제 1 시뮬레이터로 전달되는 단계; 및

상기 제 1 시뮬레이터에서 상기 제 2 세션 이벤트에 대한 정보를 이용하여 상기 세션의 상태를 갱신하는 단계를 더 포함하는, 시물레이터를 이용한 어플리 케이션 검증 방법. 【청구항 5]

제 4항에 있어서,

상기 제 2 시뮬레이터에서 상기 제 2 세션 이벤트에 대한 정보가 상기 제 1 시뮬레이터로 전달되는 단계는

상기 제 2 시물레이터에서 상기 제 2 세션 이벤트에 대한 정보를 포함하는 시리얼 데이터 패킷이 생성되는 단계;

상기 시리얼 데이터 패킷이 상기 제 1 시물레이터로 전달되는 단계; 및 상기 제 1 시물레이터에서 상기 시리얼 데이터 패킷을 파싱하여 해석하는 단계를 포함하는, 시뮬레이터를 이용한 어플리케이션 검증 방법.

【청구항 6]

제 1항에 있어서,

상기 제 1 시뮬레이터는,

프레임버퍼를 시각적으로 출력하기 위한 프레임버퍼 분석 도구를 더 포함 하는, 시뮬레이터를 이용한 어플리케이션 검증 방법.

【청구항 7]

제 6항에 있어서,

상기 제 1 시물레이터에 프레임버퍼 캡쳐 명령이 입력되는 단계;

상기 프레임버퍼 캡쳐 명령이 상기 제 1 시물레이터에서 상기 제 2 시뮬레 이터로 전달되는 단계;

상기 제 2 시뮬레이터에서 상기 검증 대상 어플리케이션의 현재 프레임버 퍼를 캡쳐하는 단계;

상기 제 2 시물레이터에서 상기 캡쳐된 프레임버퍼가 상기 게 1 시물레이 터로 전달되는 단계; 및

상기 제 1 시뮬레이터에서 상기 캡쳐된 프레임버퍼를 출력하는 단계를 더 포함하는, 시물레이터를 이용한 어플리케이션 검증 방법.

【청구항.8】

제 7항에 있어서,

상기 프레임버퍼 캡쳐 명령이 상기 제 1 시물레이터에서 상기 제 2 시물레 이터로 전달되는 단계는,

상기 제 1 시물레이터에서 상기 프레임버퍼 캡쳐 명령을 포함하는 시리얼 데이터 패킷을 생성하는 단계;

상기 시리얼 데이터 패킷이 상기 제 2 시뮬레이터로 전달되는 단계; 및 상기 제 2 시뮬레이터에서 상기 시리얼 데이터 패킷이 파싱되어 해석되는 단계를 포함하는, 시뮬레이터를 이용한 어플리케이션 검증 방법.

【청구항 9】

제 1항에 있어서,

상기 클라이언트 시물레이터는 차량의 인포테인먼트 시스템의 환경에 대응 되고, 상기 서버 시뮬레이터는 스마트폰의 환경에 대웅되는, 시뮬레이터를 이용 한 어플리케이션 검증 방법.

【청구항 10】

제 1항에 있어서,

상기 제 1 시뮬레이터, 상기 제 2 시물레이터 및 상기 검증 대상 어폴리케 이션은, 미러링크 (mi rror l ink) 기술을 이용하는, 시물레이터를 이용한 어플리케 이션 검증 방법.

Description:
【명세서】

【발명의 명칭】

차량용 인포테인먼트 시스템과 이동 단말기의 공용 어플리케이션 개발을 위한 동작 검증 방법

【기술분야】

본 발명은 보다 용이한 어플리케이션 개발을 위한 시물레이터에 관한 것 으로, 보다 상세히는 차량용 인포테인먼트 시스템과 이동 단말기 간의 연동 기능 을 제공하기 위한 공용 모바일 어플리케이션의 동작을 검증할 수 있는 방법에 관 한 것이다,

【배경기술】

스마트폰의 보편화로 인하여 차량 내에서도 스마트폰에서 제공되는 다양 한 애플리케이션과 서비스 사용에 대한 수요가 증가하고 있다. 특히, 차량용 인 포테인먼트 시스템 ( IVI : In-Vehicle Infotainment system)의 서비스 중에서도 스 마트폰의 어플리케이션을 이용한 서비스를 제공함에 있어 커넥티비티 제어기 (connect ivi ty ECU)가 중요한 역할을 할 것으로 예상되고 있다.

이러한 소비자의 요구를 층족시키고, 고성장이 예상되는 커넥티비티 제어 기의 시장을 점유하기 위해 차량 업체들은 다양한 연결 제어기 기술, IVI 시스템 및 스마트폰 연동 기술 (예를 들어, MirrorLink, Ap le Digi tal iPod Out , Google Android Auto 등)을 개발하고 있다.

커넥티비티 제어기 기술들들은 IVI 시스템과 스마트폰 간의 연결을 제어 하며 정해진 프로토콜에 따라 스마트폰의 어플리케이션 및 서비스를 공유하는 환 경을 제공해준다. 따라서, 커넥티비티 제어기 기술을 기반으로 개발된 스마트폰 어플리케이션만이 IVI 시스템과 스마트폰 간의 연동 기능을 제공할 수 있다. 따라세 이를 위한 어플리케이션의 개발에 있어 정해진 프로토콜을 기반 으로 스마트폰과 IVI 시스템을 실제로 연결한 것과 같은 환경을 실제 차량이나 추가 장비 없이 손쉽게 제공하여 서드파티 (3rd party) 어플리케이션 개발자가 자 신이 개발한 어플리케이션의 동작을 쉽게 검증 가능할 수 있는 도구 (tool )의 필 요성이 대두되고 있다.

【발명의 상세한 설명】

【기술적 과제】

본 발명은 차량과 이동 단말기 간의 연동 기능 수행을 위한 어플리케이션 의 동작을 보다 편리하게 검증할 수 있는 환경을 제공하기 위한 것이다.

특히, 본 발명은 실제 차량의 인포테인먼트 시스템 없이도 그와 동일한 환경을 제공할 수 있는 시뮬레이터 및 그를 이용한 어플리케이션 동작 검증 방법 을 제공하기 위한 것이다.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과 제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로 부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해 될 수 있을 것이다.

【기술적 해결방법】

상기한 과제를 실현하기 위한 본 발명의 일 실시예.와 관련된 시뮬레이터 를 이용한 어플리케이션 검증 방법은, 클라이언트 시뮬레이터를 포함하는 제 1 시뮬레이터 및 서버 시물레이터에 대응되는 제 2 시물레이터가 실행되는 단계; 상기 제 1 시뮬레이터에 클라이언트 설정 정보 및 서버 설정 정보가 입력되는 단 계; 상기 제 1 시물레이터와 상기 제 2 시물레이터간의 세션이 시작되는 단계; 검증 대상 어플리케이션이 실행되는 단계; 상기 검증 대상 어플리케이션이 상기 서버 시물레이터에 등록되는 단계; 상기 제 2 시뮬레이터로부터 상기 검증 대상 어플리케이션에 대체자 모들이 획득되는 단계; 및 상기 검증 대상 어플리케이션 의 상태 변경 정보를 수신하기 위한 함수가 상기 제 2 시물레이터에 등록되는 단 계를 포함할 수 있다.

이때, 본 검증 방법은 상기 제 1 시뮬레이터에서 제 1 세션 이벤트가 설 정되는 단계; 상기 제 1 시물레이터에서 상기 제 1 세션 이벤트에 대한 정보가 상기 제 2 시물레이터로 전달되는 단계; 상기 제 2 시물레이터에서 상기 등특된 함수를 통해 상기 제 1 세션 이벤트에 대한 정보가 상기 검증 대상 어플리케이션 으로 전달되는 단계; 및 상기 검증 대상 어플리케이션에서 상기 제 1 세션 이벤 트에 대한 정보에 대웅되는 동작이 수행되는 단계를 더 포함할 수 있다.

여기서 상기 제 1 시물레이터에서 상기 제 1 세션 이벤트에 대한 정보가 상기 제 2 시물레이터로 전달되는 단계는, 상기 제 1 시뮬레이터에서 상기 제 1 세션 이벤트에 대한 정보를 포함하는 시리얼 데이터 패킷이 생성되는 단계; 상기 시리얼 데이터 패킷이 상기 제 2 시뮬레이터로 전달되는 단계; 및 상기 제 2 시 물레이터에서 상기 시리얼 데이터 패킷을 파싱하여 해석하는 단계를 포함할 수 있다.

또한, 본 검증 방법은 상기 검증 대상 어플리케이션에서 상태 변경에 따 른 제 2 세션 이벤트가 발생하는 단계 ; 상기 제 2 세션 이벤트에 대한 정보가 상 기 제 2 시물레이터에 설정되는 단계; 상기 제 2 시뮬레이터에서 상기 제 2 세션 이벤트에 대한 정보가 상기 제 1 시뮬레이터로 전달되는 단계; 및 상기 제 1 시 뮬레이터에서 상기 제 2 세션 이벤트에 대한 정보를 이용하여 상기 세션의 상태 를 갱신하는 단계를 더 포함할 수 있다.

이러한 경우 상기 제 2 시물레이터에서 상기 제 2 세션 이벤트에 대한 정 보가 상기 제 1 시물레이터로 전달되는 단계는, 상기 제 2 시물레이터에서 상기 제 2 세션 이벤트에 대한 정보를 포함하는 시리얼 데이터 패킷이 생성되는 단계; 상기 시리얼 데이터 패킷이 상기 제 1 시물레이터로 전달되는 단계; 및 상기 제

1 시물레이터에서 상기 시리얼 데이터 패킷을 파싱하여 해석하는 단계를 포함할 수 있다.

아울러, 본 검증 방법에서 상기 제 1 시뮬레이터는 프레임버퍼를 시각적 으로 출력하기 위한 프레임버퍼 분석 도구를 더 포함할 수 있다.

프레임버퍼 분석을 위해 본 검증 방법은 상기 제 1 시물레이터에 프레임버퍼 캡 쳐 명령이 입력되는 단계; 상기 프레임버퍼 캡쳐 명령이 상기 제 1 시물레이터에 서 상기 제 2 시뮬레이터로 전달되는 단계; 상기 제 2 시뮬레이터에서 상기 검증 대상 어플리케이션의 현재 프레임버퍼를 캡쳐하는 단계; 상기 제 2 시물레이터에 서 상기 캡쳐된 프레임버퍼가 상기 계 1 시뮬레이터로 전달되는 단계; 및 상기 제 1 시뮬레이터에서 상기 캡쳐된 프레임버퍼를 출력하는 단계를 더 포함할 수 있다.

여기서 상기 프레임버퍼 캡쳐 명령이 상기 제 1 시뮬레이터에서 상기 제

2 시물레이터로 전달되는 단계는ᅳ 상기 제 1 시뮬레이터에서 상기 프레임버퍼 캡 쳐 명령을 포함하는 시리얼 데이터 패킷올 생성하는 단계; 상기 시리얼 데이터 패킷이 상기 제 2 시물레이터로 전달되는 단계; 및 상기 제 2 시물레이터에서 상 기 시리얼 데이터 패킷이 파싱되어 해석되는 단계를 포함할 수 있다. 본 검증 방법에서 상기 들라이언트 시뮬레이터는 차량의 인포테인먼트 시 스템의 환경에 대웅되고, 상기 서버 시뮬레이터는 스마트폰의 환경에 대웅될 수 있다ᅳ 또한, 상기 제 1 시뮬레이터, 상기 제 2 시뮬레이터 및 상기 검증 대상 어 플리케이션은, 미러링크 (mirror l ink) 기술을 이용하는 것이 바람직하다.

【유리한 효과】

본 발명에 의하면, 차량과 이동 단말기 간의 연동 기능 수행을 위한 어플 리케이션의 동작이 보다 편리하게 검증될 수 있다.

특히, 본 발명에 의하면 실제 차량의 인포테인먼트 시스템과 스마트폰이 연결된 것과 같은 환경이 제공되므로 어플리케이션 개발자가 실제로 차량 또는 그의 인포테인먼트 시스템을 준비할 필요가 없다.

또한, 본 발명에 의하면 차량과 스마트폰 간에 교환되는 정보가 시각화되 므로 보다 어플리케이션의 동작 검증이 편리하다.

본 발명에서 얻은 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않 으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기 술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.

【도면의 간단한 설명】

도 1은 본 발명의 일 실시예에 따른 미러링크 세션 시물레이터의 정보 입 력을 위한 사용자 인터페이스 구성의 일례를 나타낸다.

도 2는 본 발명의 일 실시예에 따른 미러링크 서버 시뮬레이터의 고위 아 키텍쳐 구조의 일례를 나타낸다.

도 3은 본 발명의 일 실시예에 따른 미러링크 세션 시뮬레이터와 미러링 크 서버 시뮬레이터 간의 플로우의 일례를 나타낸다. 도 4는 본 발명의 일 실시예에 따른 미러링크 세션 시물레이션이 수행되 는 과정에서의 플로우의 일례를 나타낸다.

도 5는 본 발명의 일 실시예에 따른 시물레이터 구동 및 세션 이벤트를 통한 어플리케이션의 동작을 검증하는 과정의 일례를 나타낸다.

도 6은 본 발명의 일 실시예에 따른 어플리케이션에서 발생한 세션 이벤 트를 통한 동작을 검증하는 과정의 일례를 나타낸다.

도 7은 본 발명의 일 실시예에 따른 프레임 버퍼 분석을 통해 차량용 인 포테인먼트 시스템에 실제로 표시될 영상을 확인하는 과정의 일례를 나타낸다ᅳ 도 8은 표 1에 정의된 인터페이스를 이용하기 위한 과정의 일례를 나타낸 다.

도 9는 본 발명의 일 실시예에 따른 서드파티 어플리케이션과 미러링크 서버 시뮬레이터 간의 서비스 등록 및 객체 접근 과정의 일례를 나타낸다.

도 10은 본 발명의 일 실시예에 따른 시각화 도구 컨셉의 일례를 나타낸 다.

【발명의 실시를 위한 최선의 형태】

차량용 인포테인먼트 ( IVI ) 시스템과 스마트폰 간의 연동 프로토콜을 통하 여, 연결 세션 (session)을 시물레이션 할 수 있다면, 시물레이션 기능을 제공하 는 를을 구동할 수 있는 최소한의 하드웨어만을 이용하여 커넥티비디 제어기 (Connect ivi ty ECU) 기술을 기반으로 동작하는 어플리케이션을 편리하게 개발 및 검증이 가능하다.

따라서, 본 발명에서는 차량용 인포테인먼트 ( IVI ) 시스템과 스마트폰 간의 연동 기능 제공을 위한 모바일 어플리케이션 개발자를 위한 개발 도구 (development tool )를 제안한다.

본 발명에서는 언급되는 IVI 시스템과 스마트폰의 연동을 위한 프로토콜은 차량 커넥티비티 콘소시엄 (Car Connect ivi ty Consort ium)에서 제공하는 스마트폰 미러링 (Smart phone Mirroring) 기술의 하나로 안드로이드 플랫품 (android plat form)에 특화된 "미러링크 (MirrorLink) " 기술을 따르는 것으로 가정한다. 여 기서, 일반적인 미러링크 기술에서 클라이언트는 IVI 시스템이 되며, 서버는 스 마트폰이 된다. 물론, 이는 예시적인 것으로 본 발명에 따른 개발 도구는 IVI 시 스템과 스마트폰의 연동 기능을 위한 프로토콜이라면 다른 모바일 플랫품이나 커 넥티비티 기술에 제한 없이 적용될 수 있음은 당업자에 자명하다.

본 발명에 따른 개발 도구의 주요 기능은 크게 미러링크 세션 시물레이션 (Mi rrorLink session simulat ion)과 프레임 버퍼 분석 도구 (Framebuf fer Analysi s Tool )로 분류될 수 있다.

여기서 미러링크 세션 시뮬레이터는 어플리케이션 개발 /검증시 필요한 연 결 세션을 어풀리케이션 개발자가 회망하는 특정 상황 (차량의 주행 여부, 동작 중인 모드 둥)을 자유롭게 설정 /제어의 에물레이션이 가능한 환경을 제공할 수 있다. 또한, 프레임 버퍼 분석 도구는 스마트폰 서비스를 차량 내 사용을 위해서 주행 적합성 판단하는 가이드에 맞추도록 IVI의 디스풀레이에서 실제 표시되는 형태를 미리 확인해볼 수 있는 환경을 제공한다.

이하, 본 발명에 따른 개발 도구의 구성을 설명한다.

본 발명의 일 실시예에 의하면, 미러링크 어플리케이션 개발 도구는 크게 미러링크 세션 시뮬레이터 (MirrorLink Session Simulator , 또는 미러링크 시물레 이터) 어플리케이션과 미러링크 서버 시물레이터 (MirrorLink server simulator) 어플리케이션으로 구성될 수 있다. 각 시뮬레이터의 역할은 다음과 같다.

먼저, 미러링크 세션 시물레이터는 사용자 /개발자에게 미러링크 클라이언 트 시뮬레이션 (MirrorLink Cl ient simulat ion) 및 미러링크 서버 시물레이션

(MirrorLink Server simulat ion)의 설정 값을 입력받고, 입력된 정보에 대웅되도 록 미러링크 서버 시뮬레이터가 미러링크 세션을 시물레이션하도록 하는 어플리 케이션이다. 즉, 미러링크 세션 시뮬레이터는 통합적으로 입력된 클라이언트 및 서버의 설정 프로필( ^§^ 1011 prof i le) 값을 기반으로 클라이언트와 서버간 의 세션을 시물레이션을 수행한다. 그 결과로 미러링크 세션 정보가서드파티 어 플리케이션에 제공될 수 있다. 따라서, 개발된 서드파티 어플리케이션이 향후 인 증받은 모든 미러링크 기능을 제공하는 장치 (Mi rrorLink device)에서 정상적으로 작동하도록 검증 가능하다. 예를 들면 차량 (즉, 미러링크 클라이언트)에서 다이 얼 타입 조작부 (rotary knob)가 회전되는 경우 등의 이벤트 (event )를 상정하여 제어 명령 (key command)이 입력된 상황을 설정하면, 이에 대웅하여 서드파티 어 풀리케이션이 적절히 동작하는지, 또는 IVI 시스템의 디스플레이 화면이 적절히 변경되는지가 검증될 수 있다. 이를 위해 미러링크 시물레이터는 현재 미러링크 세션 및 이벤트 값을 MirrorLink Simulator는 현재 MirrorLink session 및 event 값을 자바스크립트 객체 표기 (JavaScr ipt Object Notat ion)와 같은 경량의 데이 터 교환 포맷에 맞춰 미러링크 서버 시물레이터에 전달할 수 있다.

또한, 미러링크 시뮬레이터는 개발된 어플리케이션의 차량 내 사용 적합성 을 판단하기 위한 운전자 주의분산 가이드라인 (dr iver distract ion guidel ine)을 준수한 화면 및 UI 테스트를 위한 프레임 버퍼 분석 시각화 도구 (framebuffer analysis vi sual i zat ion tool )를 제공할 수 있다. 이를 위해, 시물레이터는 표시 되고 있는 화면을 캡쳐한 후, 서버 시뮬레이터로부터 받은 클라이언트 정보에 적 합하도톡 리사이징 (resizing)한 화면을 미러링크 세션 시뮬레이터의 프레임 버퍼 분석 시각화 도구에 전달할 수 있다.

미러링크 세션 시물레이터는 도 1과 같이 미러링크 세션에 필요한 정보 및 시물레이터의 정보를 입력받을 수 있도록 사용자 인터페이스를 제공할 수 있다. 도 1은 본 발명의 일 실시예에 따른 미러링크 세션 시물레이터의 정보 입 력을 위한 사용자 인터페이스 구성의 일례를 나타낸다.

도 1을 참조하면, 미러링크 세션 시물레이터에서 제공되는 사용자 인터페 이스에는 인증 ( 110), 연결 ( 120), 데이터 서비스 (130), 디바이스 정보 ( 140), 디스 플레이 ( 150) 둥 각 항목별로 설정 값을 입력할 수 있는 다양한 필드들 ( 111, 113 , 115)이 포함될 수 있다.

한편, 미러링크 서버 시뮬레이터는 미러링크 (세션) 시뮬레이터와 서드파 티 어플리케이션 간의 소통 매개체 역할올 수행한다. 구체적으로, 서버 시뮬레이 터는 미러링크 시뮬레이터로부터 수신된 미러링크 세션 데이터를 파싱하여 서드 파티 어플리케이션에 전달하거나, 서드파티 어플리케이션에 수신된 제어

(control )값을 경량 데이터 포맷으로 변환해서 미러링크 시물레이터에 전달한다. 이때, 미러링크 서버와 서드파티 어플리케이션은 플랫품에 종속되지 않고 균일하 게 미러링크 세션에 특화된 정보를 전달하기 위해 공용 APKCommon API )를 이용 하여 정보를 교환 (Communicat ion)하는 것이 바람직하다. 보다 구체적으로, 공용

API의 셋 /겟 메소드 (set/get method)를 통해서 서드파티 어플리케이션은 미러링 크 세션 상태 정보 값에 접근하거나 그를 변경할 수 있으며, 콜백 리스너

(cal lback l i stener )를 통해서 변경된 상태 정보 값을 수신할 수도 있다. 즉, 서버 시뮬레이터는 미러링크 세션 시물레이터를 통해 입력된 정보나 자동 스크립팅 (scr ipt ing) 정보에 기반하여 미러링크 서버의 역할을 수행 할 뿐 만 아니라, 서드파티 어플리케이션이 요청하는 사항 및 메소드 콜 (method cal l ) 에 대해서, 전달 받은 클라이언트 /서버 설정 정보에 기반하여 알맞은 콜백 (cal lback) 및 리턴 (return) 값을 전달하는 방법으로 서드파티 어플리케이션과 상호작용 ( interact ion)을 수행하게 된다. 이러한 상호작용올 위한 소통은 제조사 에 종속성 (dependency) 없이 동일하게 통일된 방식인 공용 API를 이용해 수행되 는 것이 바람직하다. 이를 통해 서드파티 어플리케이션에 차량 호환 가능한 미러 링크 어플리케이션으로서의 구현 검증에 필요한 디버깅 (debugging) 환경이 제공 될 수 있다.

또한, 미러링크 서버 시뮬레이터는 미러링크 세션 시뮬레이터와 소통하기 위한 웹 서버 Oeb server) , 더미 데이터 로더 (dummy data loader) , 인터넷 프로 토콜 소켓 ( IP socket ) 통신 등의 기능을 더 포함할 수 있다. 아울러, 서드파티 어플리케이션과의 소통 (데이터 교환)은 안드로이드 인터페이스 정의 언어 (AIDL : Android Interface Def ine Language)을 바탕으로하여 RPC( remote procedure cal l )형식으로 수행될 수 있다.

상술한 미러링크 서버 시뮬레이터 구조의 일례가 도 2에 도시된다.

도 2는 본 발명의 일 실시예에 따른 미러링크 서버 시물레이터의 고위 아 키텍쳐 구조의 일례를 나타낸다.

도 2를 참조하면, 미러링크 서버 시뮬레이터의 아키텍쳐는 미러링크 서버 시뮬레이터 서비스와 미러링크 세션 핸들러를 포함한다. 여기서 미러링크 서버 시뮬레이터 서비스는 서드파티 어플리케이션이 서버 /클라이언트 간 미러링크 세 션의 정보를 얻올 수 있도록 하는 관리자 모들 (Manager module)들과 특정 이벤트 에 따라 변하는 상태 정보를 전달 하도톡 하는 리스너 모들 (Listener module)로 구성될 수 있다. 관리자 및 리스너 모듈의 내용 및 인터페이스 정보는 아래 표 1 과 같이 구성될 수 있다.

【표 1】

IConnect ionListener listener)

: return a IConnect ionManger for requesting connection informat ion

- get Con t ex t Manage r ( S t r i ng packagename , IContextList ener

1 istener)

: return a IContextManger for handling context information 一 getDataServi ceManager (St r ing packagename ,

IDataServiceListener listener)

: return a IDat Servic eMange r for handling Common Data Bus connect ion informat ion

- getDeviceInfoManager(String packagename ,

IDevicelnfoL istener listener)

: return a IDevicelnfoManger for handling device informat ion

- getDeviceStatusManager (String packagename ,

IDeviceStatusListener listener)

: return a IDeviceStatusManger for handling device status informat ion

- get D i s 1 ayManager ( St r i ng packagename , IDisplayListener

1 istener)

: return a IDisplayManger for handling remote dis lay - get Event Manager (St r i ng packagename , lEventListener

1 i stener)

: return a I Event Manger for handl ing event map ing

- getNot i f i cat ionManager (St r ing packagename , INot i f icat ionListener l istener)

: return a INot i f i cat ionManger for handl ing not i f icat ions 一 getCommonAPIServiceApiLevel 0

: report the current common API api level supported by the MirrorLink Server Simulator

Interface to expose the funct ions related to the device informat ion

- getMi rrorLinkCl ient lnformat ionO

: Mi rrorLink Cl ient Manufacturer and Model Info

- getMirrorLinkSessionVersionMajorO

IDevicelnfoMana : Mi rrorLink Session Major version

ger 一 getMirrorLinkSessionVersionMinorO

: MirrorLink Session Minor version

- get Server V i r t ua 1 Keyboar dSuppor t ( )

: provides info about the avai lable vi rtual keyboard from ML Server

- unregisterO : notifies the manager that app i s no using it anymore

Interface to handle the callback for the device informat ion

IDevicelnfoList

- onDe v icelnf oChanged (int majorVersion, int minorVersion, ener

CI ient Info info)

: indicates the client info has changed

Interface to expose the funct ions related to the certification informat ion of the appl icat ion

- get Ap 1 i cat i onCer t i f i cat i onlnf ormat i on(St r ing entity) : get appl icat ion certification info

I Cert i f icat ionM - get Ap l icat ionCert i f icat ionStausO anager : get ap l icat ion certification status ᅳ get App 1 icat i onCer t i fyingEnt itiesO : get appl icat ion certification entities. ᅳ unregisterO

: notifies the manager that app is no using it anymore

Interface to handle the callback for the ap l icat ion' s certification informat ion

ICertif icationL

- void onCert i f icat ionStatusChangedO

istener

: indicate that application certification status has changed Interface to expose the funct ions related to the connect ion informat ion of MirrorLink

- getAudi oConnect ions ()

: get establ ish audio connect ion

IConnect ionMana - getRemoteDispl ayConne c t i on ( ) ger : get establ ished remote display connect ion

- isMirrorLInkSessionEstabl i shedO

: indicates whether a Mi rrorLink Session i s establ ished

- unregi sterO

: not i f ies the manager that app is no using i t anymore

Interface to handle the cal lback for the connect ion informat ion of MirrorLink

- onAudioConnect ionChanged(Audi oConnect ion audio)

: cal lback for establ ished audio connect ion, whi ch indicate audio connect ion has changed

IConnect ionLi st

- onM i r r or L i nkSe s s i onChanged ( boo 1 ean mirrorLinkSession) ener

: cal lback for establ i shed Mi rrorLink session, which indicates the MirrorLink Session has changed

- onRemoteDi splayConnect i onChanged ( int r emo t eD i s 1 ayConnec t ion)

: cal lback for establ ished remote display connect ion : indicate the remote display connect ion changed

Interface to expose the funct ions related to the context informat ion

- resetContext Informat ion(boolean framebuf ferConext , booelan audioContext )

: reset context informat ion

- setAudioContext Informat ion(boolean audioContext , int audioCategory, boolean hand leB locking)

: set audio context informat ion and provides informat ion

IContextManager

of the current audio context and whether the app is current ly providing audio

- setFramebuf ferContext Informat ion( int ap 1 i cat i onCat egory , int cont entCat egory , int [ ] framebuf fer Area, boolean hand leB locking)

: set and provide the framebuf fer context informat ion

- unregisterO

: not i f ies the manager that app is no using it anymore

Interface to handle the cal lback for the context

IContextListene informat ion r - onAud i oB 1 ocked ( int reason)

: cal lback for audio blocking informat ion, which indicates audio i s blocked from ML cl ient ᅳ onFramebuf ferBlocked( int reason, int [] framebuf fer Area) : cal lback for the framebuf fer blocking informat ion, which indicates framebuf fer i s blocked from ML cl ient

Interface to expose the funct ions related to the Common

Data Bus/Simple Binary Protocol data service informat ion ᅳ getAvi lableServicesO

: get avai lable services provided from ML cl ient and supported from ML server

- getObject ( int serviceld, int object Id)

: get an object

- regi sterToService( int serviceld)

IDataServiceMan

: regi ster to a service

ager

- setObjecT( int serviceld, int object Id, Object obj )

: set an object

- subscr i beOb j ect ( i nt serviceld, int object Id)

: subscr ibe to an object ᅳ unregi st erFromServi ce( )

: unregi ster from the service

- unsubscr i beOb j ect ( )

: unsubscribe from an object >

>

pe ID ev cSt a ts aeee i u M Itf a c t o eo s e t euc t o s ea t e d t o t e d ev i cn r x h f n i n rlh

coe t e d m l

j gg c acu scb a o t a l Ib o dc a ti sbri n t on b e ck fr i n i n i

p y , p, ) s uce ss t u c o t v c i n sbst e i n t i ea rii n T n rl

j p,, ( c o S u bs b ee s oe t s e c e d oe ctd b on r i R n s nv i i n tbl o l ean irl - g j c C a b a f o s t t a o b e t l Ikr ennc i .

00

) b ooea s ucce sl n s

j p j,, C o S e tD a t a Ob e cts o s e t s ev c e dt o b e ct n R en i n ri i n ldl - p c ome t e dl

g gg C a lb aco dc a t t a t e st e s evce Ik fr i n ii n h r iri n ri

g , ) C e I a t a S ev c e s oe st eo S ev c e t s vce d b ooea s u ccss DriLi n RirFrrii ne rill n一

g gj a b aoe tt a o b ec Cl c k f r i nn t I

j j , ) b oeau cc e ss Ob ec t o b o l n s

j pj,,( ec td ae tsst s ece dt o b I o G e t a tObcR eone i n r v il i nn D - e cs ava i a b e sr v i e i n ll

g ,s c eae s evce s w cdc a t e h ana b co ava blrihih i n i cl a k fril I

g g ()d sS s cea e S e v ce C ane i tt r i ne r v s onv a b 1r ihLiA i 1 > < - p y/tc ooao tc o d aa s eve i na t n S en P o lrifr m i B u s m l Bi rr i

a t a c a b a c o t e C oon D oa d th e l Ik frh mm t ea c e t h n l e I n rf

y ppgg u aee t a t a is no si n t mo rs t eaa rh i no tfi e h mn n i

gO t e ue isr n r - nager status information

- isInDriveModeO

: indicate whether device is on the drive mode

- isInNightModeO

: indicate whether device is on the night mode

- i s InMi crophone0n( )

: indicate whether microphone is on

- s e t M i c r ophoneOpen ( boo 1 e an miclnput)

: set Microphone to open

ᅳ unregisterO

: notifies the manager that app is no using it anymore

Interface to handle the callback for the device status information

- onDr i veModeChange(bool ean driveMode)

: callback for indicating the change of drive mode on ML

IDeviceStatusLi server device

stener - onM i c r ophoneS tat usChange ( boo 1 ean miclnput)

: callback for opening microphone

- onN i ght ModeChange ( boo 1 ean night Mode)

: callback for indicating the change of night mode on ML Server device Interface to expose the functions related to the display information

- getCl ientPixelFormat ()

: get client pixel format being transmitted to ML Client device

- getDisplayConf igurat ion()

IDisplayManager

: get display configuration of MirrorLink session

- setFramebuf ferOr ientat ionSupport ( int framebuf f erOr i ent at ion)

: set and inform framebuf fer orientation support ᅳ unregisterO

: notifies the manager that app is no using it anymore

Interface to handle the callback for the display information

- onD i sp 1 ayConf i gur at i onChanged(D i s 1 ayConf i g config)

: callback for indicating change of display configuration

IDisplayListene

- onPixelFormat Changed ( i n t pixel Format)

r

: callback for indicating change of Client Pixel format

- onServerD ispl ayConf igurat ionChanged( int framebuf ferOr ientat ion)

: callback for switching framebuf fer orientation Interface to expose the functions related to the event informat ion ᅳ getEventConf igurat ion()

: get event conf igurat ion of MirrorLink connect ion from both ML Server & ML Client

lEventManager

- getEventMap i ngs ( )

: get event mappings of ML client events to ML server event s

- unregisterO

: notifies the manager that app is no using it anymore

Interface to handle the cal Iback for the event informat ion

- onEven t Con f i gur a t i onChanged ( Even t Con f i gu r t i on conf ig)

: cal Iback for indicating the change of Event

I Event Li stener configuration

- onEvent Mapp i ngChanged (Event Mapping map ing)

: cal Iback for indicating and receiving informat ion about event mappings

Interface to expose the funct ions related to the UPnP

INotif icationMa Notification service information nager - cancel Not i f i cat ion( int notif icaitonld)

: cancel not i f i cat ion from ap 1 i cat ion - get Not if icationConf i gur at ion ()

: get notification conf igurat ion for notification service

- ge t ot i f i cat i onEnab 1 ed( )

: get the flag that indicate whether notification is enabled for ML server and cl ient

- sendCl ientNot if icat ionCString title, String body, String iconUrl, List<String> actionList)

: send notification for cl ient based UI

- sendVNCNot i f i cat i on( )

: send notification for VNC based UI

- set Not i f act i onSuppor t ed ( boo 1 ean not i feat ionSupported)

: indicate support for UPnP notification from applications

- unregisterO

: notifies the manager that app is no using it anymore

Interface to handle the cal lback for the UPnP Notification service information

- onNot i f i cat i onAc t i onRece i ved( i nt not i f icat ionld, int

INotif icationLi

actionld)

stener

: cal lback for receiving notification action from ML cl ient ᅳ onNot i f icat ionConf i gur a t i onChanged (Not i f icationConf ig confg)

: callback for indicating the change of notification configuration

- onNot i f i cat ionEnabl edChanged (boolean not i Enabled)

: callback for indicating the change of enablement not i f icat ion

또한, 미러링크 세션 시뮬레이터 어플리케이션은 미러링크 서버 시물레이 터와 레스트풀 (RESTful) 방식 /IP Socket 통신 (WiFi, USB CDC/NCM, 등)을 기반으 로 사용자 입력 혹은 자동 스크립팅 방식을 통해서 미러링크 세션 정보를 설정 / 공유하고, 이벤트 트리거를 수행할 수 있다. 이러한 과정이 도 3에 도시된다. 도 3은 본 발명의 일 실시예에 따른 미러링크 세션 시뮬레이터와 미러링크 서버 시물레이터 간의 플로우의 일례를 나타낸다.

도 3을 참조하면, 미러링크 서버 시물레이터 어플리케이션은 일반적인 퍼 스널 컴퓨터에서 가상 장치 형태로 구동될 수도 있고, 안드로이드 기반의 스마트 폰에서 구동될 수도 있다. 이때, 세션 시뮬레이션 설정 정보 등이 미러링크 세션 시물레이터 (즉, Mirrorlink Session Controller Appl icat ion)와 레스트풀 (RESTful) 방식 /IP Socket 통신을 통해 교환될 수 있다.

상술한 모들들간의 플로우를 종합해보면, 도 4와 같은 형태가 된다.

도 4는 본 발명의 일 실시예에 따른 미러링크 세션 시뮬레이션이 수행되는 과정에서의 플로우의 일례를 나타낸다.

도 4를 참조하면, 프레임버퍼 분석 도구 (411) 및 미러링크 클라이언트 시 물레이터 (413)를 포함하는 미러링크 시물레이터 (410)에 클라이언트 설정 정보 (421) 및 서버 설정 정보 (423)가 입력될 수 있다. 이를 기반으로, 미러링크 시물 레이터 (410)와 서버 시물레이터 (430) 간의 세션 시물레이션 (440)이 수행될 수 있 다. 물론 전술된 바와 같이 서드파티 어폴리케이션 (450)은 서버 시뮬레이터 (430)와 공용 API를 통해 통신할 수 있다.

도 4에 도시된 모들간의 동작을 순서도로 나타내면 도 5 내지 도 7과 같다. 도 5는 본 발명의 일 실시예에 따른 시뮬레이터 구동 및 세션 이벤트를 통 한 어플리케이션의 동작을 검증하는 과정의 일례를 나타낸다.

도 5를 참조하면, 먼저 사용자 (app tester)는 미러링크 세션 시뮬레이터 어플리케이션과 미러링크 서버 시물레이터를 실행시킨다 (1, 2) . 각 시물레이터가 실행되면, 사용자는 세션 시물레이터에 클라이언트 및 서버 설정값을 입력한다 (3) . 설정값 입력이 완료되면, 사용자는 세션 시물레이터에 시물레이터들간의 연 결을 명령하고 (4), 그에 따라 미러링크 세션 시물레이터와 서버 시뮬레이터 간의 미러링크 세션이 시작된다 (5) .

세션이 시작되면, 사용자는 동작 검증을 희망하는 서드파티 어플리케이션 을 실행시킨다 (6) . 그에 따라, 서드파티 어플리케이션의 특정 식별자 ( ID)가 서버 시뮬레이터에 둥록되고 (7), 서드파티 어풀리케이션은 서버 시물레이터의 프록시 객체 (즉, 서버 시뮬레이터의 대체자 모들)를 획득하여 (8), 콜백 리스너 함수 (즉, 상태 변경 정보를 수신하기 위한 함수, 프로세스간의 통신 프로토콜)를 서버 시 물레이터에 등록한다 (9) .

상술한 1 내지 9의 과정은 본격적인 어플리케이션의 동작 검증을 위한 준 비 과정으로 볼 수 있다. 준비 과정이 완료되면, 사용자는 차량의 흑정 동작이나 상태에 대한 환경 (예를 들어, 주행 모드 활성화 등)을 형성하기 위하여 미러링크 세션 이벤트를 세션 시물레이터를 통해 설정할 수 있다 (10) . 세션 시물레이터는 설정된 세션 이 벤트에 대한 정보를 시리얼 데이터 패킷 형태로 서버 시뮬레이터에 전달한다 (11) . 서버 시물레이터는 시리얼 데이터 패킷을 파싱하여 그에 포함된 정보를 해석하고

(12), 해석된 세션 이벤트 정보를 콜백 리스너를 통해 서드파티 어플리케이션에 전달한다 (13) . 서드파티 어폴리케이션에서는 세션 이벤트에 대웅되는 동작을 수 행하게 되며, 이를 통해 사용자는 세션 이벤트에 맞는 동작이 수행되는지 여부를 확인할 수 있게 된다 (14) .

다음으로, 도 6을 참조하여 어플리케이션에서 상태가 변경되는 경우 이에 대한 정보가 클라이언트로 정상 전달이 되는지 여부를 검증하는 과정을 설명한다. 도 6은 본 발명의 일 실시예에 따른 어폴리케이션에서 발생한 세션 이벤트 를 통한 동작을 검증하는 과정의 일례를 나타낸다. 도 6은 도 5의 적어도 10단계 이후의 과정인 것으로 가정한다.

도 6을 참조하면, 서드파티 어플리케이션에서 상태 변경 정보 (예를 들어, 사용자가 특정 명령을 입력하거나 외부로부터 메시지 수신 등)가 입력될 수 있 다 (15) . 서드파티 어플리케이션은 상태 변경 정보를 서버 시뮬레이터에 설정하고

(16), 서버 시물레이터는 상태 변경 정보에 대웅되는 세션 이벤트 정보를 시리얼 데이터 패킷 형태로 생성하여 (17) 이를 세션 시물레이터로 전달한다 (18) . 세션 시물레이터는 수신된 시리얼 데이터 패킷을 파싱하여 세션 이벤트 정보를 해석하 고 (19) , 미러링크 세션 상태 및 이벤트 값올 업데이트한다 (20) .

이러한 과정의 결과는 프레임버퍼 분석을 통해 사용자가 시각적으로 확인 할 수 있다. 이를 도 7을 참조하여 설명한다.

도 7은 본 발명의 일 실시예에 따른 프레임 버퍼 분석을 통해 차량용 인포 테인먼트 시스템에 실제로 표시될 영상을 확인하는 과정의 일례를 나타낸다. 도 7을 참조하면, 사용자가 현재 프레임 버퍼를 캡쳐하기 위한 명령을 세 션 시뮬레이터에 입력할 수 있다 (21) . 그에 따라 세션 시물레이터는 현재 프레임 버퍼를 캡쳐하기 위한 시리얼 데이터 패킷을 생성하고 (22) , 이를 서버 시뮬레이 터에 전달한다 (23) . 서버 시물레이터는 시리얼 데이터 패킷을 파싱하여 현재 프 레임 버퍼에 대한 캡쳐 요청을 확인하고 (24), 서드파티 어플리케이션의 프레임 버퍼를 캡쳐하여 (25), 세션 시물레이터에 전달한다 (26) . 세션 시물레이터는 전달 된 프레임버퍼를 분석하고 (27), 주행 규제 가이드 라인 관련 정보와 함께 캡쳐된 프레임버퍼를 디스플레이한다 (28) .

도 5 내지 도 7을 통해 상술한 방식은 미러링크 어플리케이션 개발자에게 미러링크 세션 정보 및 공용 API와 같은 최소한의 정보 이해만을 요구하며, 실제 미러링크 클라이언트 및 서버 장비의 구입 및 세팅 대비 훨씬 용이한 개발환경 구축을 가능케 한다.

미러링크 서버 시물레이터와 미러링크 세션 시물레이터 간의 소통에 필요 한 인터페이스는 아래 표 2와 같이 구성될 수 있다.

【표 2】

( int majorVersion, int - minorVersion

minorVersion, boolean : MirrorLink minor version success) - success

: f lag to indicate the avai labi 1 ity of info

void

ᅳ CI ient Info

setMirrorLinkCl ient Info

: refer to CI ient Info . java

(CI ient lnfo cl ient lnfo,

ᅳ cal IbackTr igger

boolean

: true/false

cal IbackTr igger)

- avai lable

' •avai labi 1 i ty of a virtual void keyboard

set Server V i r t ua 1 Keyboar : true/false

dSupport - touchSupport

(boolean avai lable, : indicate whether the virtual boo lean t ouchSuppor t, keyboard supports touch event s boo 1 ean knobSuppor t, : true/ false

boolean driveMode) - knobSupport

: indi cate whether virtual keyboard support knob events · ' true/false - dr iveMode

: indicate whether driver distract ion guideline is followed : true/false void 一 cert i f icateAvai lable setApp 1 i cat i onCert if ica : indicate whether a valid tionStatus certificate exists

(boolean ': true/false certif icateAvai lable, ᅳ advert isedAsCert if ied

Cert i f ica boolean : indicate whether application has t ion Info advert i sedAsCert if ied) been advertised in UPnP void - Cert icatelnfo setAppCerti fyingEnt it ie : refer to Cert i ficate Info. java s

(Certif icatelnfo cert i Info) void setAudioConnect ion - connect

Connect io

( Aud i oConnect i on : refer to AudioConnect ion. java n

connect , boolean ᅳ cal IbackFlag

Info

cal IbackFlag) : indicate whether connect ion is establ i shed

' •true/false void - connect setRemoteDi spI ayConnect : 0x00: No connect ion establ i shed ion : 0x00: VNC

(byte connect , boolean : 0x01: HSML cal IbackFlag) : 0x02: WFD

: OxFF: Other

- cal IbackFlag

: indicate whether connect ion is establ ished

: true/fal se void setDi splayConf ig ᅳ conf ig

(DisplayConf ig conf ig, : refer to Di splayConf ig. java boolean cal IbackFlag) - cal IbackFlag

: f lag to indicate whether

Display

informat ion is correct ly set

Info

: true/ false void - pixel Info setCl ientPixelFormat : 0x01 - ARGB888

(byte pixel Info, : 0x02 - RGB888 boolean cal IbackFlag) : 0x03 - ARGB565

: 0x04 ― RGB555

: 0x05 - RGB444

: 0x06 - RGB343

: 0x07 - 16Bit Gray

: 0x08 - 8Bit Gray

- cal IbackFlag

: f lag to indicate whether informat ion is correct ly set

: true/false

void setEventConf ig - conf ig

(EventConf ig conf ig, : refer to EventConf ig. j ava boolean cal IbackFlag) - cal IbackFlag

: f lag to indicate whether

EventMapp informat ion is correct ly set ing : true/false

Info void addEventMap i ngs - remoteEvent

( int remoteEvent , int : key event value of the remote local Event , boolean event

cal IbackFlag) : value = 0

- local Event : key event value of local event

: value = 1

- cal IbackFlag

: f lag to indicate whether informat ion i s correct ly set

' true/false

void setAudioBlocking - blockingReason

( int blockingReason) : reason for blocking void setVideoBlocking - blockingReason

( int blockingReason, : reason for blocking int [] framebuf ferArea) - framebuf ferArea

: framebuf ferArea [0] = height

: framebuf ferAreatl] = width

Context

: framebuf ferArea [2] = x posi t ion Info

: framebuf ferArea[3] = y posit ion void - appCategory

setFramebuf ferContext In : category of the appl icat ion format ion - videoCont ent Category

( int appCategory, int : category of the content videoCont ent Category ᅳ framebuf ferArea

Int [ ] framebuf ferArea, : framebuf ferArea [0] = height boolean hand leB locking) : framebuf ferArea[l] = width

· ' framebuf fer Area[2] = x position

· ' framebuf fer Area [3] = y position

- hand leB locking

: indicate whether blocking is on/off

: true/false

void ᅳ audioContent

setAudioContextlnfo : ap lication provides audio

(boolean audioContent , context

int [] audioCategory, ᅳ audioCategory

boolean hand leB locking) : audio content category

ᅳ hand leB locking

: indicate whether blocking is on/off

: true/false

void setDriveMode - driveMode

DeviceSta (boolean driveMode) : flag enabling drive mode for the tus app

Info : true/false

void - mi c Input setMicrophoneAct ive : flag whether mic input is (boolean mi c Input) enabled

: true/ false void setMicr ophoneOpen - mi cr Input (boolean mi c Input , : flag whether mic input is boolean voice Input) enabled

: true/false

- voice Input

: flag whether voice input is enabled

· ' true/false void setNightMode - night Mode (boolean night Mode) : flag enabling night mode for the app

: true/false void subscr i beToOb j ect ᅳ serviceld (int serviceld, int · ' service identifier

DataServi

object Id, boolean - object Id

ce

success, : hash value of the object

Info

Int subscr iptionType, - success int interval ) ' · flag to indicate whether the act ion is successful

- subscript ionType

: 0x00 - regular interval

: 0x01 = on change

: 0x02 - automatic

- interval

: regular time interval in ms

: MUST be 0x00 for on change

: MUST be 0x02 for automatic void setObject - serviceld

(int serviceld, int : service identifier object Id, Object value) - object Id

: hash value of the object

- object value

: user define object value void set Act ion - notif icationld

(int notif icationld, : not i f iciat ion identifier

Notif icat

int act ionld) - act ionld

ion

: action Identifier

Info

void - notiTitle sendC 1 i entNot i f i cat i on : title of the notification event (string notiTit le, - not i Body

string not i Body, string : body of the notification event i conUr 1 , - iconUrl

List<String> : ur 1 to the icon of the actionList , int notification

not i f icat ionID) - actionList

: list of act ion belonging to the not i f icat ion

- notif icationID

: notification Identifier

void - not i f icat ionID

sendVNCNot if ication : notification Identifier

( int not i f icat ionID)

void cancelNot i f icat ion - not i f icat ionID

( int not i f icat ionID) : notification Identifier

상기 표 2와 같은 인터페이스를 통해, 미러링크 서버 시물레이터는 미러링 크 클라이언트의 프레임 버퍼, 디스플레이, 입력 제어기 (input controller) 등의 정보, 미러링크 클라이언트 /서버의 이벤트 설정 (event configuration), 어플리케 이션 서비스의 컨텍스트 (context) 정보 관련 내용을 설정하거나 확인할 수 있다. 한편, 안드로이드 플랫품에서 기본적으로 한 프로세스는 메모리상에서 다 른 프로세스에 대한 직접 엑세스가 불가능하다. 따라서 본 실시예에서는 다른 프 로세스에 있는 자원 혹은 기능을 이용하기 위해서 프로세스간 통신 규약 (RPC: remote process cal l )을 정의하여서 두 프로세스 사이에 대화가 가능하도록 할 것을 제안한다. 이를 도 8올 참조하여 설명한다.

도 8은 표 1에 정의된 인터페이스를 이용하기 위한 바인드 과정의 일례를 나타낸다.

도 8을 참조하면, 서드파티 어플리케이션의 프로세스 (act ivi ty process)는 미러링크 세션을 시물레이션하는 프로세스인 미러링크 서버 시뮬레이터 서비스 (MirrorLink Server Simulator service)와 서비스 등록를 통해서 접근할 수 있다. 서드파티 어플리케이션은 등톡시 반환되는 미러링크 서버 시물레이터 서비스의 대체자 객체를 저장하몌 이 대체자 객체를 통해서 미러링크 세션 관련 데이터를 관리하는 매니저 모들에도 접근이 가능하다. 아울러ᅳ 위에서 언급된 매니저 모들 의 API를 통해서 서드파티 어플리케이션은 미러링크 세션 값을 수신하고 변경할 수 있다. 이를 위해, 서버 시뮬레이터는 고유의 서비스 이름, 예를 들어, "com.mirror l ink. android, simul at or service" 라는 고유의 서비스 이름을 가질 수 있다. 고유의 이름인 "com. mi rrorL ink. android, simul at or service . BIND" 라는 인텐트 ( intent )를 등록하여 전달하는 모든 어플리케이션의 접근이 허용될 수 있 으며, 서버 시뮬레이터 서비스는 서비스 연결 메시지를 전달한 어플리케이션에 실행을 위한 웅답 (response)을 전달 한다. 만일, 서드파티 어플리케이션 서비스 에 대한 연결 해지 호출시에는 서비스를 더 이상 이용하지 않는 것으로 인지하고 연결을 해지시킬 수 있다.

한편, 서드파티 어플리케이션이 미러링크 시물레이터에 연결되기 위해서는

"com . mi rror l ink, android . simulatorservi ce .ACCESS_PERMISSION" 권한이 개발시 등록되는 것이 바람직하다.

서드파티 어플리케이션이 미러링크 서버 시물레이터를 사용하는 전반적인 과정은 도 9에 도시된다.

도 9는 본 발명의 일 실시예에 따른 서드파티 어플리케이션과 미러링크 서 버 시물레이터 간의 서비스 등록 및 객체 접근 과정의 일례를 나타낸다. 도 9를 참조하면, 서드파티 어플리케이션은 미러링크 서버 시물레이터를 사용하기 위해 미러링크 서버 시물레이터 서비스를 등톡하고, 정보 관리자 및 콜백 모들 (Information manager & callback module)객체에 접근할 수 있다.

한편, 서드파티 어플리케이션은 궁극적으로 차량에서도 사용이 가능하므로, 주행 중 운전자에게 방해가 되지 않도록 운전자 주의분산 가이드 (driver distraction guide)에 맞게 사용자 인터페이스가 구성이 되어야 한다. 따라서, 서드파티 어플리케이션이 미러링크 세션 정보 값에 적합하도톡 화면을 주행 중에 이용 가능한지 여부를 확인할 도구가 요구된다. 이러한 도구 기능은 본 실시예에 따른 프레임버퍼 분석 시각화 .도구 (framebuffer analysis visualization tool)에 서 제공될 수 있다.

시각화 도구가 갖추어야 할 고위 요구사항 (high level requirement)과 컨 셉은 아래와 같다.

<고위 요구사항>

- 물리적 크기 및 해상도를 설정하기 위한사용자 인터페이스

- 프레임 버퍼의 리사이즈 방안

- 리사이징된 프레임버퍼의 표시 또는 저장 방안

- 5% 디스플레이 문턱값의 표시 방안 - .사용자가 스케일된 프레임버퍼를 단순 조작으로 저장할 수 있는 매커니 즈 컨셉에 있어서는, 안드로이드 SDK 확장 (Androi d SDK extensi on) 방식과 퍼 스널 컴퓨터에 설치하는 형태의 어플리케이션 (PC instal l able App) 방식으로 구 분될 수 있다. 이를 도 10을 참조하여 설명한다.

도 10은 본 발명의 일 실시예에 따른 시각화 도구 컨셉의 일례를 나타낸다. 시각화 도구는 안드로이드 SDK 확장 방식으로 구현되는 경우, 기존의 안드 로이드 개발 환경에 플러그인 (plug-in) 형식으로 시각화를 체크할 새로운 기능이 제공될 수 있다. 예를 들어, 도 10의 (a)와 같이 일반)를 구성하는 Layout . xm 1 ( 1040)올 실제 화면 ( 1050)으로 변환 시켜주는 형태로 본 기능이 제공 될 수 있다.

상술한 시뮬레이터 및 그를 통한 서드파티 어플리케이션의 검증 방법을 통 하여 서드파티 어플리케이션 개발자는 스마트폰과 IVI 커넥티비티 기술의 시물레 이션 및 주행 규제에 적합한 UI를 손쉽게 개발 할 수 있다.

【산업상 이용가능성】

본 발명은 안드로이드 플랫품 기반의 미러링크 기술을 중심으로 기술되었 으나, 이는 예시적인 것으로 차량용 인포테인먼트 시스템과 모바일 기기 간의 연 결을 통한 연동 기능을 제공하는 기술이라면 어떠한 기술에도 적용될 수 있다.