콘텐츠로 이동

4.2. 플랫폼이 제공하는 API

다음은 실제로 플랫폼이 해당 API 를 구현하여, HAL 또는 타 태스크에서 사용하는 함수들이다. 주로, 타 태스크에서 플랫폼 태스크로 이벤트를 전달 하거나, 플랫폼을 시작하기 위해서 필요하다. HAL 포팅시 구현해야 할 API 가 아니며 제공하는 플랫폼 라이브러리에 포함되어 있어야 한다.

설명

타 태스크에서 플랫폼으로 이벤트를 넘겨 줄 때 사용하는 함수이다. 함수를 호출 할 때 함께 넘겨줄 이벤트에 대한 세부 정보는 하단 표의 매개변수 필드를 참조하면 된다.

이벤트매개변수
MH_KEY_PRESSEVENT, MH_KEY_RELEASEEVENT, MH_KEY_REPEATEVENTMH_KeyCode
MH_EXIT_EVENTNULL
MH_TIMER_EVENTNULL
MH_SMS_EVENTMH_SMSEvent의 포인터
MH_ANN_EVENTMH_AnnInfo의 포인터
MH_CALL_EVENTMH_CallEvent의 포인터
MH_NETWORK_EVENTMH_NetEvent의 포인터
MH_SERIAL_EVENTMH_SerialEvent의 포인터
MH_MEDIA_EVENTMH_MediaEvent의 포인터

표 1 HAL에서 전달 받는 이벤트에 대한 매개 변수

  • MH_KEY_PRESSEVENT - 단말기 버튼이 눌렸을 때 해당 버튼의 KeyCode 값을 MH_KeyCode 에 정의된 키로 변경시킨 후 이 함수를 통해서 전달해야 한다.
  • MH_KEY_RELEASEEVENT - 단말기 버튼이 떼어졌을 때 해당 버튼의 KeyCode 값을 MH_KeyCode 에 정의된 키로 변경시킨 후 이 함수를 통해서 전달한다.
  • MH_KEY_REPEATEVENT - 단말기 버튼이 일정시간이상 눌려져 있으면, 일정시간이후 부터 주기적으로 MH_KEYREPEAT_EVENT 를 단발기 버튼이 떼어질때까지 플랫폼에 보낼 수 있다. 운영체제가 MH_KEYREPEAT_EVENT 를 지원하면 MH_sysGetInformation()에서 key repeat 첫 발생시간과, 발생주기시간를 반환해야 한다.
  • MH_EXIT_EVENT - 표준 플랫폼의 수행을 종료할 때 전달한다.
  • MH_TIMER_EVENT - MH_timerSet()에 의해 설정된 타이머가 만료될 때 전달한다.
  • MH_SMS_EVENT – 새로운 SMS 메시지가 도착할 때 전달한다.
  • MH_ANN_EVENT - 어넌시에이터(Annunciator)의 정보가 갱신되는 경우 전달한다.
  • MH_CALL_EVENT – 전화가 왔을 때 전달한다.
  • MH_NETWORK_EVENT – 네트워크 이벤트를 전달한다.
  • MH_SERIAL_EVENT – 시리얼 이벤트를 전달한다.
  • MH_MEDIA_EVENT – 사운드 이벤트를 전달한다.

프로토타입

M_Boolean MH_pltEvent(MH_Event event, void *param)

매개 변수

  • event - [in] 표준 플랫폼에게 넘겨주는 event
  • param - [in] 해당 event 에 대한 세부 정보값. 표의 매개변수 필드 참조.

반환 값

성공

  • TRUE

실패

  • FALSE – 지원하지 않는 이벤트이거나, 이벤트를 수신하는 큐가 full이다.

부작용

MH_EXIT_EVENT 이벤트가 전달되면 MH_pltStart()함수를 반환하고 플랫폼은 종료된다.

참고 항목

없음

설명

HAL 에서 플랫폼을 시작하기 위한 함수이다. 이 함수가 불려 지면 플랫폼이 수행 되고, MH_EXIT_EVENT 이벤트를 받기 전 까지는 반환 되지 않는다. 매개변수는 플 랫폼 최초 수행시 수행시킬 프로그램을 지정한다.

예) 애플리케이션 매니저가 자바로 구현되고, Main class 이름이 org.kwis.am.Main 이며 폰이미지에 같이 있을 경우,

MH_pltStart(0, “org.kwis.am.Main”, 0, 0);

예) 애플리케이션 매니저가 자바로 구현되고, Main class 이름이 org.kwis.am.Main이며 /test/appManager.jar 라는 독립된 파일로 존재할 경우,

MH_pltStart(0, “org.kwis.am.Main”, “/test/appManager.jar”, 0);

프로토타입

M_Int32 MH_pltStart(M_Int32 JavaC, M_Char* programID, M_Char* path, M_Char* args)

매개 변수

  • JavaC - [in] 0 이면 Java, 1 이면 C 프로그램
  • programID - [in] java 인 경우, 수행시킬 프로그램의 main class 이름을 가리킨다. C 인 경우, 수행시킬 프로그램을 지정할 수 있는 ID
  • path - [in] path 값은 수행시킬 프로그램의 독립된 file 을 가리킨다. null 이면 수행시킬 프로그램이 폰이미지안에 같이 포함되어 있는 것을 의미한다.
  • args - [in] 실행시킬 프로그램에 전달할 매개변수(전달할 매개변수가 없으면 0)

반환 값

음수면 비정상 종료임.

부작용

없음

참고 항목

없음