KR101294256B1 - Computing terminal for performing application using devices and computing method thereof - Google Patents
Computing terminal for performing application using devices and computing method thereof Download PDFInfo
- Publication number
- KR101294256B1 KR101294256B1 KR1020110060209A KR20110060209A KR101294256B1 KR 101294256 B1 KR101294256 B1 KR 101294256B1 KR 1020110060209 A KR1020110060209 A KR 1020110060209A KR 20110060209 A KR20110060209 A KR 20110060209A KR 101294256 B1 KR101294256 B1 KR 101294256B1
- Authority
- KR
- South Korea
- Prior art keywords
- target device
- return value
- application
- return
- devices
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
Abstract
본 발명의 실시예들은 복수의 디바이스들을 이용하여 어플리케이션을 실행하는 컴퓨팅 단말에 관한 것으로서, 복수의 디바이스들의 반환값들을 획득하고, 어플리케이션의 요청에 따라 상기 획득된 반환값들을 가공하는 방법에 관련된다.Embodiments of the present invention relate to a computing terminal for executing an application using a plurality of devices, and to a method of obtaining return values of a plurality of devices and processing the obtained return values according to a request of an application.
Description
아래 실시예들은 복수의 디바이스들을 이용하여 어플리케이션을 실행하는 컴퓨팅 단말에 관한 것으로서, 복수의 디바이스들의 반환값들을 획득하고, 어플리케이션의 요청에 따라 상기 획득된 반환값들을 가공하는 방법에 관련된다.The embodiments below relate to a computing terminal for executing an application using a plurality of devices, and to a method of obtaining return values of a plurality of devices and processing the obtained return values in response to a request of an application.
컴퓨팅 단말은 사용자들의 요구가 점차 다양해짐에 따라 많은 종류의 디바이스들을 탑재하고 있다.Computing terminals are equipped with many kinds of devices as the needs of users gradually vary.
예컨대, 이동 단말은 터치 센서, 지자기 센서, 가속도 센서 등의 다수의 센서 디바이스들을 탑재하고 있으며, 이러한 센서 디바이스들을 통해 수집되는 정보들을 이용하여 스마트형 단말의 다양한 서비스들을 제공한다.For example, the mobile terminal includes a plurality of sensor devices such as a touch sensor, a geomagnetic sensor, an acceleration sensor, and the like, and provides various services of the smart terminal by using information collected through the sensor devices.
도 1은 종래의 컴퓨팅 단말에서 디바이스들의 반환값을 획득하는 일례를 보여준다. 여기서, 상기 디바이스들은 센서 디바이스들로 도시되었다.1 illustrates an example of obtaining return values of devices in a conventional computing terminal. Here, the devices are shown as sensor devices.
도 1을 참조하면, 컴퓨팅 단말(100)에서, 소프트웨어인 어플리케이션(110)이 제1 센서 디바이스(130)의 반환값을 획득하고자 한다면, 어플리케이션(110)은 유저 레벨에서 제1 센서 디바이스(130)에 대응하는 제1 디바이스 드라이버(120)에게 제1 센서 디바이스(130)의 반환값을 요청한다. Referring to FIG. 1, in the
제1 디바이스 드라이버(120)는 커널 레벨에서, 제1 센서 디바이스(130)와 연동하고, 제1 센서 디바이스(130)로부터 반환값을 획득한 후, 획득된 반환값을 어플리케이션(110)에게 제공한다.The
즉, 종래의 컴퓨팅 단말에서는 커널 레벨상에서 각각의 디바이스들의 반환값을 획득하여, 어플리케이션에게 전달하는 디바이스 드라이버들이 존재한다. That is, in a conventional computing terminal, there are device drivers that obtain return values of respective devices on a kernel level and deliver them to an application.
종래의 어플리케이션은 유저 레벨에서의 하나의 반환값 요청을 통해 하나의 대상 디바이스의 반환값을 별도의 처리 없이 획득하기 때문에, 상기 대상 디바이스의 반환값의 추가 보정이나 다른 디바이스의 반환값에 따른 가공이 필요하다면, 종래의 어플리케이션은 유저 레벨상에서 상기 보정이나 가공 과정을 실시해야 할 수 있다.Since a conventional application obtains a return value of one target device through a request for one return value at the user level without further processing, further correction of the return value of the target device or processing according to the return value of another device is difficult. If necessary, the conventional application may need to perform the above correction or processing on a user level.
본 발명의 실시예에 의하면, 복수의 디바이스들을 구비하여 어플리케이션을 수행하는 컴퓨팅 단말에서, 커널 레벨상에서, 어플리케이션이 요청한 대상 디바이스의 반환값을 상기 대상 디바이스와 연관된 다른 디바이스의 반환값과 융합하고, 상기 융합된 값을 상기 어플리케이션에게 제공할 수 있는 디바이스 드라이버, 드라이버 모듈, 컴퓨팅 단말 및 그 단말의 동작 방법 중 적어도 하나를 제공한다.According to an embodiment of the present invention, in a computing terminal having an application with a plurality of devices, at a kernel level, a return value of a target device requested by an application is fused with a return value of another device associated with the target device. It provides at least one of a device driver, a driver module, a computing terminal and a method of operating the terminal that can provide a fused value to the application.
특히, 본 발명의 실시예에 의하면, 복수의 디바이스들의 반환값들에 의해 추정되는 컴퓨팅 단말의 상태에 기초하여, 상기 어플리케이션이 요청한 대상 디바이스의 반환값을 상기 어플리케이션에게 제공할 수 있는 컴퓨팅 단말 및 그 단말의 동작 방법을 제공할 수 있다.In particular, according to an embodiment of the present invention, a computing terminal capable of providing a return value of a target device requested by the application to the application based on a state of the computing terminal estimated by the return values of a plurality of devices and its A method of operating a terminal may be provided.
또한, 본 발명의 실시예에 의하면, 상기 어플리케이션이 상기 컴퓨팅 단말에서 정상적으로 동작하지 않는 디바이스의 반환값을 요청하더라도, 다른 디바이스들의 반환값에 기초하여 상기 정상적으로 동작하지 않는 디바이스의 반환값을 추정하여 상기 어플리케이션에게 제공할 수 있는 컴퓨팅 단말 및 그 단말의 동작 방법을 제공할 수 있다.In addition, according to an embodiment of the present invention, even if the application requests a return value of a device that does not operate normally in the computing terminal, the return value of the non-operating device is estimated based on a return value of other devices. A computing terminal capable of providing the application and a method of operating the terminal can be provided.
본 발명의 일 실시예에 따른 컴퓨팅 단말은 어플리케이션을 실행하는 컴퓨팅 단말로서, 복수의 디바이스들과, 상기 복수의 디바이스들 각각의 반환값을 획득하는 복수의 디바이스 드라이버와, 상기 복수의 디바이스 드라이버를 관리하는 드라이버 관리 모듈을 포함하고, 상기 드라이버 관리 모듈은 커널 레벨에서 상기 복수의 디바이스들 사이의 상호 작용을 정의하고, 상기 어플리케이션으로부터 상기 복수의 디바이스들 중 대상 디바이스의 반환값에 대한 요청을 수신함에 응답하여, 상기 커널 레벨에서 상기 상호 작용을 고려하여 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하고, 상기 식별된 반환값들을 기초로 생성된 융합 반환값을 상기 어플리케이션에 제공한다.A computing terminal according to an embodiment of the present invention is a computing terminal that executes an application, and manages a plurality of devices, a plurality of device drivers for obtaining return values of each of the plurality of devices, and the plurality of device drivers. And a driver management module, the driver management module defining an interaction between the plurality of devices at a kernel level and receiving a request for a return value of a target device among the plurality of devices from the application. Thereby identifying return values of the target device and another device associated with the target device in consideration of the interaction at the kernel level, and providing the application with a fusion return value generated based on the identified return values.
이때, 상기 어플리케이션은 상기 복수의 디바이스 드라이버 중 상기 대상 디바이스에 대응하는 디바이스 드라이버에게 상기 대상 디바이스의 반환값을 요청한 후, 상기 요청에 관련된 인터럽트를 발생시키고, 상기 드라이버 관리 모듈은 상기 인터럽트를 인지함에 대응하여 상기 융합 반환값을 상기 어플리케이션에게 전송할 수 있다.In this case, the application requests a return value of the target device from a device driver corresponding to the target device among the plurality of device drivers, generates an interrupt related to the request, and the driver management module responds to recognizing the interrupt. The fusion return value to the application.
또한, 상기 드라이버 관리 모듈은 상기 융합 반환값의 생성시, 칼만 필터링을 이용하여 상기 대상 디바이스 및 상기 다른 디바이스로부터 획득되는 반환값으로부터 상기 컴퓨팅 단말의 상태를 나타내는 정보를 추정하고, 상기 추정된 정보를 기초로 상기 융합 반환값을 생성할 수 있다.In addition, the driver management module estimates information representing the state of the computing terminal from return values obtained from the target device and the other device by using Kalman filtering when generating the fusion return value, and calculates the estimated information. Based on this, the fusion return value can be generated.
또한, 상기 드라이버 관리 모듈은 상기 생성된 융합 반환값을 상기 대상 디바이스의 출력 포맷으로 변환한 후 상기 변환된 융합 반환값을 상기 어플리케이션으로 출력할 수 있다.The driver management module may convert the generated fusion return value into an output format of the target device and then output the converted fusion return value to the application.
본 발명의 다른 실시예에 따른 컴퓨팅 단말은 어플리케이션을 실행하는 컴퓨팅 단말로서, 복수의 디바이스들과, 상기 복수의 디바이스들 각각의 반환값을 획득하여 상기 어플리케이션에게 제공하는 복수의 디바이스 드라이버를 포함하고, 상기 복수의 디바이스 드라이버는 커널 레벨에서 상기 복수의 디바이스들 중 제어 대상의 대상 디바이스 및 다른 디바이스 사이의 상호 작용을 정의하고, 상기 어플리케이션으로부터 상기 대상 디바이스의 반환값에 대한 요청을 수신함에 응답하여, 상기 커널 레벨에서 정의된 상기 상호 작용에 따라 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하고, 상기 식별된 반환값들을 기초로 생성되는 융합 반환값을 상기 어플리케이션에게 제공한다.A computing terminal according to another embodiment of the present invention is a computing terminal that executes an application, and includes a plurality of devices and a plurality of device drivers that obtain return values of each of the plurality of devices and provide the same to the application. The plurality of device drivers define an interaction between a target device to be controlled and another device among the plurality of devices at a kernel level, and in response to receiving a request for a return value of the target device from the application, Identifying return values of the target device and another device associated with the target device according to the interaction defined at the kernel level, and providing the application with a fusion return value generated based on the identified return values.
이때, 상기 대상 디바이스가 정상적으로 작동하지 않는 경우, 상기 복수의 디바이스 드라이버 중 상기 대상 디바이스에 대응하는 디바이스 드라이버는 상기 상호 작용에 따라 상기 대상 디바이스와 연관된 다른 디바이스로부터 식별된 반환값을 기초로 상기 대상 디바이스의 반환값을 추정하고, 상기 추정된 반환값을 상기 어플리케이션에게 제공할 수 있다.In this case, when the target device does not operate normally, a device driver corresponding to the target device among the plurality of device drivers is based on a return value identified from another device associated with the target device according to the interaction. Estimate a return value of and provide the estimated return value to the application.
또한, 상기 대상 디바이스가 정상적으로 작동하지 않는 경우, 상기 대상 디바이스가 출력 가능한 반환값들이 상기 대상 디바이스와 연관된 다른 디바이스가 출력하는 반환값들과 서로 매핑된 샘플링 데이터를 더 포함하고, 상기 복수의 디바이스 드라이버 중 상기 대상 디바이스에 대응하는 디바이스 드라이버는 상기 요청에 응답하여, 상기 샘플링 데이터로부터 상기 다른 디바이스의 반환값에 대응하는 샘플링 데이터를 독출하고, 상기 독출된 샘플링 데이터를 상기 대상 디바이스의 반환값으로서 상기 어플리케이션에게 제공할 수 있다.In addition, when the target device does not operate normally, the return values output by the target device may further include sampling data mapped with return values output by another device associated with the target device, and the plurality of device drivers. In response to the request, the device driver corresponding to the target device reads sampling data corresponding to a return value of the other device from the sampling data, and uses the read sampling data as a return value of the target device. Can be provided to
본 발명의 또 다른 실시예에 따른 컴퓨팅 단말의 동작 방법은 복수의 디바이스들; 상기 복수의 디바이스들 각각의 반환값을 획득하는 복수의 디바이스 드라이버; 및 상기 복수의 디바이스 드라이버를 관리하는 드라이버 관리 모듈을 포함하고, 어플리케이션을 실행하는 컴퓨팅 단말의 동작 방법에 있어서, 커널 레벨에서 상기 복수의 디바이스들 사이의 상호 작용을 정의하는 단계와, 상기 어플리케이션으로부터 상기 복수의 디바이스들 중 대상 디바이스의 반환값에 대한 요청을 수신하는 단계와, 상기 요청의 수신에 응답하여, 상기 커널 레벨에서 상기 상호 작용에 따라 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하는 단계와, 상기 식별된 반환값들을 기초로 상기 대상 디바이스를 위한 융합 반환값을 생성하고, 상기 생성된 융합 반환값을 상기 어플리케이션에게 제공하는 단계를 포함한다.According to another embodiment of the present invention, a method of operating a computing terminal includes a plurality of devices; A plurality of device drivers for obtaining return values of each of the plurality of devices; And a driver management module for managing the plurality of device drivers, the method comprising: defining an interaction between the plurality of devices at a kernel level; Receiving a request for a return value of a target device from among a plurality of devices, and in response to receiving the request, a return value of the target device and another device associated with the target device according to the interaction at the kernel level And generating a fusion return value for the target device based on the identified return values, and providing the generated fusion return value to the application.
이때, 상기 생성된 융합 반환값을 상기 어플리케이션에게 제공하는 단계는 상기 생성된 융합 반환값을 상기 대상 디바이스의 출력 포맷으로 변환하여 상기 어플리케이션에게 제공할 수 있다.In this case, the providing of the generated fusion return value to the application may convert the generated fusion return value into an output format of the target device and provide the generated fusion return value to the application.
또한, 상기 생성된 융합 반환값을 상기 어플리케이션에게 제공하는 단계는 칼만 필터링을 이용하여 상기 식별된 반환값으로부터 상기 컴퓨팅 단말의 상태를 나타내는 정보를 추정하는 단계와, 상기 추정된 정보를 기초로 상기 대상 디바이스를 위한 융합 반환값을 생성하는 단계와, 상기 생성된 융합 반환값을 상기 어플리케이션으로 전달하는 단계를 포함할 수 있다.The providing of the generated fusion return value to the application may include estimating information representing the state of the computing terminal from the identified return value using Kalman filtering, and based on the estimated information. Generating a fusion return value for the device and delivering the generated fusion return value to the application.
본 발명의 또 다른 실시예에 따른 컴퓨팅 단말의 동작 방법은 복수의 디바이스들; 상기 복수의 디바이스들 각각의 반환값을 획득하는 복수의 디바이스 드라이버; 및 상기 복수의 디바이스 드라이버를 관리하는 드라이버 관리 모듈을 포함하고, 어플리케이션을 실행하는 컴퓨팅 단말의 동작 방법으로서, 상기 드라이버 관리 모듈이 커널 레벨에서 상기 복수의 디바이스들 사이의 상호 작용을 정의하는 단계와, 상기 어플리케이션이 상기 대상 디바이스에 대응하는 디바이스 드라이버에게 상기 대상 디바이스의 반환값을 요청하고, 인터럽트를 발생시키는 단계와, 상기 드라이버 관리 모듈이 상기 인터럽트를 인지하는 단계와, 상기 인지에 대응하여, 상기 드라이버 관리 모듈이 상기 커널 레벨에서 상기 상호 작용에 따라 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하는 단계와, 상기 드라이버 관리 모듈이 상기 식별된 반환값들을 기초로 상기 대상 디바이스를 위한 융합 반환값을 생성하고, 상기 생성된 융합 반환값을 상기 어플리케이션에 제공하는 단계를 포함한다.According to another embodiment of the present invention, a method of operating a computing terminal includes a plurality of devices; A plurality of device drivers for obtaining return values of each of the plurality of devices; And a driver management module for managing the plurality of device drivers, the method comprising: defining interactions between the plurality of devices at a kernel level by the driver management module; The application requesting a return value of the target device from a device driver corresponding to the target device, generating an interrupt, acknowledging the interrupt by the driver management module, and responsive to the recognition; The management module identifying return values of the target device and another device associated with the target device according to the interaction at the kernel level, and the driver management module for the target device based on the identified return values. fusion Generating a hwangap, and includes the step of providing the generated fusion return value to the application.
본 발명의 또 다른 실시예에 따른 컴퓨팅 단말의 동작 방법은 복수의 디바이스들을 구비하고, 어플리케이션을 실행하는 컴퓨팅 단말에서, 상기 복수의 디바이스들 중 대상 디바이스의 반환값을 상기 어플리케이션에게 제공하는 디바이스 드라이버의 동작 방법으로서, 커널 레벨에서, 상기 대상 디바이스와 상기 대상 디바이스와 연관된 다른 디바이스 사이의 상호 작용을 정의하는 단계와, 상기 어플리케이션으로부터 상기 대상 디바이스의 반환값에 대한 요청이 수신되었는 지를 판단하는 단계와, 상기 판단 결과, 상기 정의된 상호 작용에 따라 상기 대상 디바이스 및 상기 다른 디바이스 각각의 반환값을 식별하는 단계와, 상기 식별된 반환값들을 기초로 상기 대상 디바이스를 위한 융합 반환값을 생성하고, 상기 생성된 융합 반환값을 상기 어플리케이션에게 제공하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of operating a computing terminal, comprising: a device driver configured to provide a return value of a target device among the plurality of devices to the application in a computing terminal including a plurality of devices and executing an application; A method of operation comprising the steps of: defining at the kernel level an interaction between the target device and another device associated with the target device, determining whether a request for a return value of the target device has been received from the application; As a result of the determination, identifying a return value of each of the target device and the other device according to the defined interaction, generating a fusion return value for the target device based on the identified return values, and generating the The fusion return value to the application Providing the example.
본 발명의 또 다른 실시예에 따른 컴퓨팅 단말의 동작 방법은 복수의 디바이스들 및 복수의 디바이스 드라이버들을 구비하고 어플리케이션을 실행하는 컴퓨팅 단말에서, 정상적으로 작동하지 않는 대상 디바이스에 대응하는 디바이스 드라이버의 동작 방법으로서, 커널 레벨에서, 상기 대상 디바이스와 상기 대상 디바이스와 연관된 다른 디바이스 사이의 상호 작용을 정의하는 단계와, 상기 어플리케이션으로부터 상기 대상 디바이스의 반환값에 대한 요청이 수신되었는 지를 판단하는 단계와, 상기 판단 결과, 상기 정의된 상호 작용에 따라 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하는 단계와, 상기 식별된 반환값들을 기초로 상기 대상 디바이스의 반환값을 추정하는 단계를 포함한다.A method of operating a computing terminal according to another embodiment of the present invention is a method of operating a device driver corresponding to a target device not normally operating in a computing terminal including a plurality of devices and a plurality of device drivers and executing an application. Defining, at a kernel level, an interaction between the target device and another device associated with the target device, determining whether a request for a return value of the target device has been received from the application, and the determination result Identifying return values of another device associated with the target device according to the defined interaction, and estimating a return value of the target device based on the identified return values.
이때, 상기 대상 디바이스가 출력 가능한 반환값들이 상기 대상 디바이스와 연관된 다른 디바이스가 출력하는 반환값들과 서로 매핑된 샘플링 데이터를 미리 저장하고 유지하는 단계를 더 포함하고, 상기 식별된 반환값을 기초로 상기 대상 디바이스의 반환값을 추정하는 단계는 상기 샘플링 데이터로부터 상기 다른 디바이스의 반환값에 대응하는 샘플링 데이터를 독출하는 단계와, 상기 독출된 샘플링 데이터를 상기 대상 디바이스의 반환값으로 결정하는 단계를 포함할 수 있다.The method may further include storing and maintaining sampling data mapped to each other with return values output by another device associated with the target device, based on the identified return value. The estimating of a return value of the target device may include reading sampling data corresponding to a return value of the other device from the sampling data, and determining the read sampling data as a return value of the target device. It may include.
본 발명의 실시예에 의하면, 커널 레벨에서, 대상 디바이스의 반환값이 다른 디바이스의 반환값과 융합 처리되어 어플리케이션의 유저 레벨로 전달됨으로써, 어플리케이션은 한 번의 디바이스 반환값 요청을 통해 상기 복수의 반환값들이 융합 처리된 값을 획득할 수 있다. 이에 따라 어플리케이션은 이전보다 빠르게 동작할 수 있고 연산 처리 시간도 줄어들 수 있다. 또한, CPU는 반환값을 요청하고 전달하는 과정에서 커널 레벨과 유저 레벨 간 모드를 전환하는 횟수가 이전보다 줄어들 수 있으므로, CPU의 전력 소모량이 감소될 수 있다.According to an embodiment of the present invention, at a kernel level, a return value of a target device is fused with a return value of another device and transferred to a user level of an application, whereby an application requests the plurality of return values through a single device return value request. Can obtain the fused value. This allows applications to run faster and reduce computational processing time. In addition, since the CPU can switch the mode between the kernel level and the user level in a process of requesting and transferring a return value, the CPU power consumption can be reduced.
또한, 커널 레벨에서, 대상 디바이스의 반환값과 다른 디바이스의 반환값으로부터 컴퓨팅 단말의 상태를 추정함으로써, 대상 디바이스의 반환값만으로 컴퓨팅 단말을 추정하는 경우보다 오차가 적어질 수 있다. 따라서, 어플리케이션은 대상 디바이스의 반환값만을 이용하는 경우보다 오차가 적어진 반환값을 커널 레벨로부터 쉽게 획득할 수 있다.In addition, at the kernel level, by estimating the state of the computing terminal from the return value of the target device and the other device, the error may be smaller than that of estimating the computing terminal only by the return value of the target device. Therefore, the application can easily obtain the return value with less error than the case of using only the return value of the target device from the kernel level.
또한, 본 발명의 실시예에 따른 컴퓨팅 단말에서는 더미 디바이스 드라이버가 정상적으로 작동하지 않는 디바이스의 반환값을 추정하여 제공할 수 있다. 이에 따라 어플리케이션은 컴퓨팅 단말의 구체적인 하드웨어 정보를 모르거나 부품이 변경되더라도, 더미 디바이스를 통해 정상적으로 작동하지 않는 디바이스의 반환값을 획득하여 원래의 어플리케이션 동작들을 무리없이 수행할 수 있다.In addition, the computing terminal according to an embodiment of the present invention may estimate and provide a return value of a device in which the dummy device driver does not operate normally. Accordingly, even if the application does not know specific hardware information of the computing terminal or the parts are changed, the application may acquire the return value of a device that does not operate normally through the dummy device and perform the original application operations without difficulty.
나아가, 더미 디바이스 드라이버를 사용하는 경우, 본 발명의 실시예에 따른 컴퓨팅 단말은 실제 탑재되지 않은 디바이스의 반환값을 이용할 수 있기 때문에 하드웨어 탑재에 필요한 비용을 줄일 수 있다. Furthermore, when the dummy device driver is used, the computing terminal according to the embodiment of the present invention can use the return value of the device that is not actually mounted, thereby reducing the cost required for hardware mounting.
또한, 기존의 디바이스들은 특정 버스 인터페이스(예컨대, I2C(Inter IC), SCI(Scalable Coherent Interface) 등)을 통해 프로세서와 통신하는 반면, 더비 디바이스 드라이버는 이러한 버스 인터페이스를 사용하지 않아도 된다. 따라서, 본 발명의 실시예에 따른 컴퓨팅 단말은 버스 인터페이스의 사용에 따라 발생하는 리소스 크기를 기존보다 줄일 수 있다.In addition, existing devices communicate with the processor via a particular bus interface (eg, Inter IC (I2C), Scalable Coherent Interface (SCI), etc.), while the Derby device driver does not have to use this bus interface. Therefore, the computing terminal according to the embodiment of the present invention can reduce the resource size generated by the use of the bus interface than conventional.
아울러, 센서 디바이스들의 경우, 센서의 특성상 각각의 바이어스 오류를 자체적으로 가질 수 있기 때문에, 센서 디바이스들은 서로 동일한 모델이더라도 다소 상이한 센서값을 반환할 수 있다. 그러나, 더미 디바이스 드라이버는 항상 일정하게 모델링된 반환값을 출력하기 때문에, 본 발명의 실시예에 따른 컴퓨팅 단말은 이러한 더미 디바이스를 통해 균일한 센서값을 보장할 수 있다.In addition, in the case of sensor devices, since each bias error may have its own characteristics due to the characteristics of the sensor, the sensor devices may return somewhat different sensor values even if they are the same model. However, since the dummy device driver always outputs a uniformly modeled return value, the computing terminal according to the embodiment of the present invention can guarantee a uniform sensor value through the dummy device.
도 1은 종래의 컴퓨팅 단말에서 디바이스들의 반환값을 획득하는 일례를 보여주는 도면.
도 2는 제1 실시예에 따른 컴퓨팅 단말의 구성을 보여주는 도면.
도 3은 본 발명의 제2 실시예에 따른 컴퓨팅 단말의 구성을 보여주는 도면.
도 4는 본 발명의 제3 실시예에 따른 컴퓨팅 단말의 구성을 보여주는 도면.
도 5 및 6은 도 4에 도시된 드라이버 관리 모듈에서 적용될 수 있는 변환 방식의 예시를 보여주는 도면.
도 7은 본 발명의 제4 실시예에 따른 컴퓨팅 단말의 구성을 보여주는 도면.1 illustrates an example of obtaining return values of devices in a conventional computing terminal.
2 illustrates a configuration of a computing terminal according to the first embodiment.
3 illustrates a configuration of a computing terminal according to a second embodiment of the present invention.
4 is a diagram illustrating a configuration of a computing terminal according to a third embodiment of the present invention.
5 and 6 show examples of conversion schemes that can be applied in the driver management module shown in FIG.
7 illustrates a configuration of a computing terminal according to a fourth embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 발명의 실시예에 의하면, 복수의 디바이스들을 구비하여 어플리케이션을 수행하는 컴퓨팅 단말은 커널 레벨상에서, 어플리케이션이 요청한 대상 디바이스의 반환값을 상기 대상 디바이스와 연관된 다른 디바이스의 반환값과 내부적으로 융합하고, 상기 융합된 값(이하, '융합 반환값'이라 칭함)을 상기 어플리케이션에게 제공한다.According to an embodiment of the present invention, a computing terminal including a plurality of devices to perform an application internally fuses a return value of a target device requested by an application with a return value of another device associated with the target device on a kernel level. The fused value (hereinafter referred to as a fusion return value) is provided to the application.
이를 위하여, 컴퓨팅 단말은 제1 실시예에서, 복수의 디바이스들과, 상기 복수의 디바이스들 각각의 반환값을 상기 어플리케이션에게 제공시 상기 복수의 디바이스들 간의 상호 작용에 따라 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값을 기초로 상기 융합 반환값을 생성하는 적어도 하나의 디바이스 드라이버를 구비한다.To this end, in the first embodiment, the computing terminal, according to the interaction between the plurality of devices and the plurality of devices when providing a return value of each of the plurality of devices to the application with the target device and the target device; At least one device driver for generating the fusion return value based on a return value of another associated device.
제2 및 제3 실시예에서, 상기 컴퓨팅 단말은 어플리케이션을 실행하는 단말로서, 복수의 디바이스들과, 상기 복수의 디바이스들 각각의 반환값을 획득하는 복수의 디바이스 드라이버들을 구비하고, 상기 복수의 디바이스 드라이버들을 관리하며 상기 복수의 디바이스들의 반환값들을 기초로 상기 융합 반환값을 생성하는 별도의 드라이버 관리 모듈을 더 구비한다.
In the second and third embodiments, the computing terminal is a terminal that executes an application, the computing terminal having a plurality of devices and a plurality of device drivers for obtaining a return value of each of the plurality of devices, wherein the plurality of devices And a separate driver management module for managing drivers and generating the fusion return value based on the return values of the plurality of devices.
도 2는 제1 실시예에 따른 컴퓨팅 단말의 구성을 보여주는 도면이다. 2 is a diagram illustrating a configuration of a computing terminal according to the first embodiment.
도 2를 참조하면, 컴퓨팅 단말(200)은 어플리케이션(210), 복수의 디바이스 드라이버들(220 내지 222) 및 복수의 디바이스들(230 내지 233)을 포함한다.2, the
어플리케이션(210)은 유저 레벨에서 수행되며, 다양한 하드웨어들과 연동하는 소프트웨어 모듈이다. 어플리케이션(210)은 기 탑재된 소프트웨어의 기능을 수행하면서, 상기 복수의 디바이스 드라이버들(220 내지 222)에게 상기 기능에 필요한 디바이스들의 반환값을 요청한다.The
예컨대, 어플리케이션(210)은 다수의 센서를 활용하는 게임 어플리케이션 등이 될 수 있다. 특히, 게임 어플리케이션의 경우, 게임 기능을 수행하면서, 가속도나 중력 등과 같이 게임 기능에 필요한 센서 디바이스들의 센싱 정보를 상기 복수의 디바이스 드라이버들(220 내지 222)에 요청하여 제공받는다.For example, the
복수의 디바이스 드라이버들(220 내지 222)은 상기 복수의 디바이스들(230 내지 233) 각각을 제어하고, 복수의 디바이스들(230 내지 233)은 상기 제어에 대응하여, 센싱 정보와 같은 출력 데이터를 각각의 디바이스 드라이버들(220 내지 222)에게 반환한다. 즉, 하나의 디바이스 드라이버는 하나의 디바이스에 대한 제어를 담당하고, 하나의 디바이스는 자신에게 대응하는 디바이스 드라이버의 제어에 대응에 따라 생성되는 출력 데이터를 상기 디바이스의 반환값으로서 출력한다.The plurality of
이러한 디바이스 드라이버들(220 내지 222)은 어플리케이션 개발자의 편의를 돕기 위한 개념으로 연동 가능한 디바이스들의 제어 기능이 디바이스 레벨에서 구현되어 있고, 모듈화될 수 있다. 컴퓨팅 단말은 하나의 디바이스 및 그 디바이스를 제어하는 디바이스 드라이버를 추가함으로써, 디바이스 확장성을 높일 수 있다.These
복수의 디바이스 드라이버들(220 내지 222) 중 하나는 디바이스 정의부를 구비하여, 커널 레벨에서 상기 복수의 디바이스들 중 하나의 대상 디바이스 및 다른 디바이스 사이의 상호 작용을 나타내는 데이터를 정의할 수 있다.One of the plurality of
즉, 상기 복수의 디바이스 드라이버들(220 내지 222) 중 하나의 대상 디바이스 드라이버(예컨대, 제1 디바이스 드라이버)는 하나의 대상 디바이스(예컨대, 제1 디바이스)의 제어를 담당하며, 상기 대상 디바이스와, 특정한 다른 디바이스(예컨대, 제2 디바이스)가 상호 작용한다는 정보를 커널 레벨에서 미리 정의한다.That is, one target device driver (eg, the first device driver) of the plurality of
또한, 상기 대상 디바이스 드라이버는 어플리케이션(210)으로부터 상기 대상 디바이스의 반환값에 대한 요청을 수신함에 대응하여, 상기 커널 레벨에서 정의된 상기 상호 작용을 기초로 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별한다. 그리고, 상기 대상 디바이스 드라이버는 상기 식별된 반환값들을 기초로 융합 반환값을 생성하고, 상기 생성된 융합 반환값을 어플리케이션(210)에게 제공한다.In addition, the target device driver, in response to receiving a request for a return value of the target device from an
이를 위하여, 상기 대상 디바이스 드라이버는 융합 처리부 및 반환 처리부를 포함할 수 있다.To this end, the target device driver may include a fusion processor and a return processor.
즉, 어플리케이션(210)이 A1 단계에서 제1 디바이스 드라이버에게 제1 디바이스의 반환값을 요청한다면, 융합 처리부는 상기 정의된 상호 작용에 대한 정보를 참조하여, 제1 디바이스와 관련된 다른 디바이스가 제2 디바이스임을 인지한다. 융합 처리부는 A2 단계에서, 상기 제1 디바이스의 반환값을 식별하고, A3 단계에서, 상기 제2 디바이스의 반환값을 식별한 후, 상기 A2 및 A3 단계에서 식별된 반환값들을 기초로 하나의 융합 반환값을 생성한다. 그리고, 반환 처리부는 A4 단계에서 상기 융합 반환값을 어플리케이션(210)에게 제공한다.That is, if the
이때, 상기 융합 반환값이 상기 제1 디바이스 드라이버(220)의 반환 처리부에서 어플리케이션(210)으로 제공되는 과정은 반환 처리부가 상기 융합 반환값을 특정 변수에 저장한 후, 유저 레벨상의 어플리케이션(210)이 상기 변수를 참조함으로써, 이루어질 수 있다.In this case, the process of providing the fusion return value to the
결과적으로, 상기 제1 디바이스 드라이버가 상기 A2 내지 A4 단계의 동작들을 디바이스 레벨에서 모두 수행함으로써, 어플리케이션(210)은 상기 A1 단계에서 유저 레벨상의 한 번의 반환값 요청으로, 대상 디바이스의 반환값 및 다른 디바이스의 반환값이 내부에서 융합된 값을 획득할 수 있다.
As a result, the first device driver performs all of the operations in steps A2 to A4 at the device level, so that the
도 3은 본 발명의 제2 실시예에 따른 컴퓨팅 단말의 구성을 보여주는 도면이다.3 is a diagram illustrating a configuration of a computing terminal according to a second embodiment of the present invention.
도 3을 참조하면, 컴퓨팅 단말(300)은 어플리케이션(310), 복수의 디바이스 드라이버들(320 내지 322) 및 복수의 디바이스들(330 내지 333)를 포함하고, 별도의 드라이버 관리 모듈(340)를 더 구비한다.Referring to FIG. 3, the
여기서, 어플리케이션(310) 및 복수의 디바이스들(330 내지 333)은 앞서 설명된 도 2의 컴퓨팅 단말(200)에 구비된 대응하는 구성들(210, 230 내지 233)과 동일하다. Here, the
다만, 복수의 디바이스 드라이버들(320 내지 322)은 도 2의 디바이스 드라이버들(220 내지 222)과는 달리, 디바이스들(330 내지 333) 각각의 제어 및 반환값 획득의 일반적인 디바이스 드라이버 기능을 수행한다. However, unlike the
드라이버 관리 모듈(340)은 어플리케이션(310)이 대상 디바이스에 대한 반환값을 요청함에 대응하여, 상기 대상 디바이스의 반환값과 상기 대상 디바이스와 관련된 다른 디바이스의 반환값을 내부적으로 융합 처리하여 어플리케이션에게 제공한다.In response to the
자세히 말해서, 드라이버 관리 모듈(340)은 디바이스 정의부(341), 요청 판단부(342), 필터링부(343) 및 변환 출력부(344)를 포함할 수 있다.In detail, the
디바이스 정의부(341)는 커널 레벨에서 상기 복수의 디바이스들 중 하나의 대상 디바이스 및 다른 디바이스 사이의 상호 작용을 나타내는 데이터를 정의한다. The
요청 판단부(342)는 어플리케이션(310)으로부터 상기 대상 디바이스의 반환값에 대한 요청이 수신한다.The
필터링부(343)는 상기 커널 레벨에서 정의된 상기 상호 작용을 고려하여, 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값을 획득하고, 상기 획득된 반환값들을 필터링하여 하나의 융합 반환값을 생성한다.The
변환 출력부(344)는 상기 생성된 융합 반환값을 변환하여 어플리케이션(310)에게 제공한다.The
이때, 어플리케이션(310)은 디바이스 드라이버(예컨대, 제1 디바이스 드라이버)에게 상기 대상 디바이스의 반환값을 요청하거나 또는 드라이버 관리 모듈(340)에게 상기 대상 디바이스의 반환값을 요청하는 것으로 구현될 수 있다. 따라서, 드라이버 관리 모듈(340)의 요청 판단부(342)는 어플리케이션(310)에서 디바이스 드라이버로 송신된 요청을 인지하거나 또는 어플리케이션(310)으로부터의 요청을 직접 인지하는 것으로 구현될 수 있다. 전자의 경우 상기 도 3의 제2 실시예로서 설명하고, 후자의 경우 도 4의 제3 실시예로서 설명하도록 한다.
In this case, the
제2 실시예에서, 어플리케이션(310)은 상기 대상 디바이스에 대응하는 대상디바이스 드라이버에게 상기 대상 디바이스의 반환값을 요청하고, 상기 요청에 관련된 인터럽트를 발생시킬 수 있다. In a second embodiment, the
드라이버 관리 모듈(340)의 요청 판단부(340)는 상기 발생된 인터럽트를 인지하고, 상기 인지에 대응하여, 상기 융합 반환값의 생성 및 제공을 수행할 수 있다. 이로써, 드라이버 관리 모듈(340)은 어플리케이션(310)이 상기 대상 디바이스 드라이버에게 요청한 것을 가로채고, 상기 대상 디바이스 드라이버 대신에 상기 융합 반환값을 어플리케이션(310)에게 제공할 수 있다.The
자세히 말하자면, 어플리케이션(310)은 B1 단계에서, 제1 디바이스의 반환값을 제1 디바이스 드라이버에게 요청하고, 상기 요청에 관련된 인터럽트를 발생시킨다. 이때, 상기 B1 단계는 어플리케이션(310)에 의해 유저 레벨상에서 이루어진다.In detail, the
드라이버 관리 모듈(340)은 B2 단계에서, 상기 발생된 인터럽트를 인지하고, 상기 정의된 상호 작용에 대한 정보를 참조하여, 제1 디바이스와 관련된 다른 디바이스가 제2 디바이스임을 인지한다.The
드라이버 관리 모듈(340)은 B3 단계에서, 제1 디바이스 드라이버와 연동하여 제1 디바이스의 반환값을 획득하고, B4 단계에서, 제2 디바이스 드라이버와 연동하여 제2 디바이스의 반환값을 획득한다.The
드라이버 관리 모듈(340)은 상기 B3 및 B4 단계에서 획득된 반환값들을 기초로 상기 제1 디바이스에 대한 융합 반환값을 생성하고, B5 단계에서, 상기 생성된 융합 반환값을 어플리케이션(310)에게 제공한다.The
이에 따라 드라이버 관리 모듈(340)은 상기 제1 디바이스 드라이버를 대신하여, 제1 디바이스에 대한 상기 융합 반환값을 어플리케이션(310)에게 제공할 수 있다. 이 경우, 어플리케이션(310)은 종래와 마찬가지로 디바이스 드라이버에게 대상 디바이스의 반환값을 요청하면 되므로, 본 발명의 제2 실시예를 위한 어플리케이션 수정이 최소화될 수 있다.
Accordingly, the
한편, 어플리케이션(310)은 제3 실시예에서, 드라이버 관리 모듈(340)에게 상기 대상 디바이스의 반환값을 요청한다. 상기 제3 실시예는 도 4를 통해 설명될 수 있다.Meanwhile, in the third embodiment, the
도 4를 참조하면, 어플리케이션(410)은 디바이스 드라이버들(420 내지 422)과 직접 연동하는 대신, 드라이버 관리 모듈(440)과 연동하고, 드라이버 관리 모듈(440)을 통해 대상 디바이스에 대한 융합 반환값을 획득한다.Referring to FIG. 4, the
즉, 어플리케이션(410)은 특정한 대상 디바이스의 반환값이 필요한 경우, C1단계에서, 드라이버 관리 모듈(440)에게 상기 대상 디바이스의 반환값을 요청한다.That is, when the
드라이버 관리 모듈(440)은 상기 요청에 대응하여, C2, C3 및 C4 단계를 통해 상기 대상 디바이스 및 상기 대상 디바이스와 관련된 다른 디바이스의 반환값들을 획득할 수 있다.The
드라이버 관리 모듈(440)은 칼만 필터링을 이용하여 상기 획득된 반환값들으로부터 상기 컴퓨팅 단말의 상태를 나타내는 정보를 추정하고, 상기 추정된 정보를 기초로 상기 융합 반환값을 생성하고, 상기 생성된 융합 반환값을 어플리케이션(410)에게 제공할 수 있다.The
여기서, 상기 대상 디바이스는 제1 디바이스, 제2 디바이스 및 제3 디바이스 중 하나가 될 수 있으며, 상기 대상 디바이스의 반환값의 포맷은 각각의 디바이스의 출력 포맷에 따라 달라질 수 있다. 따라서, 드라이버 관리 모듈(440)은 어플리케이션(410)에게 상기 융합 반환값을 각각의 디바이스의 출력 포맷에 맞는 형식으로 변환하여 제공할 수 있다. The target device may be one of a first device, a second device, and a third device, and a format of a return value of the target device may vary according to an output format of each device. Accordingly, the
이를 위하여, 드라이버 관리 모듈(440)은 필터링부(441) 및 변환 출력부(442)를 포함할 수 있다.To this end, the
필터링부(441)는 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스로부터 획득되는 반환값들을 칼만 필터에 적용하여, 상기 컴퓨팅 단말의 상태를 나타내는 정보를 추정할 수 있다. 상기 추정된 정보는 상기 컴퓨팅 단말의 위치, 각도, 온도 등과 같이 상태에 관련된 정보가 될 수 있다. The
변환 출력부(442)는 필터링부(441)에 의해 추정된 정보를 어플리케이션(410)이 요청한 디바이스의 출력 포맷의 융합 반환값으로 변환하고, 상기 융합 반환값을 어플리케이션(410)에게 제공할 수 있다. 즉, 어플리케이션(410)이 C1에서 제1 디바이스의 반환값을 요청하였다면, 변환 출력부(442)는 C5와 같이 상기 융합 반환값을 제1 디바이스의 출력 포맷(예컨대, 가속도 센서의 출력 포맷(Fx, Fy, Fz))과 동일한 포맷으로 전달하고, 어플리케이션(410)이 C1에서 제2 디바이스 또는 제3 디바이스의 반환값을 요청하였다면, 변환 출력부(442)는 C6 또는 C7과 같이 상기 융합 반환값을 제2 디바이스의 출력 포맷(예컨대, 지자기 센서의 출력 포맷(M)) 또는 제3 디바이스의 출력 포맷(예컨대, 자이로 센서의 출력 포맷(Wx, Wy, Wz))으로 변환하여 전달할 수 있다.The
한편, 필터링부(441)의 동작은 어플리케이션(410)의 요청에 응답하여 실시간으로 실행될 수도 있지만, 미리 설정된 규칙에 따라 주기적으로 실행될 수도 있다.Meanwhile, the operation of the
즉, 필터링부(441)는 상기 복수의 디바이스들 모두 또는 일부의 반환값들을 주기적으로 획득하여, 상기 상기 컴퓨팅 단말의 상태를 나타내는 정보를 추정할 수 있다. That is, the
변환 출력부(442)는 어플리케이션(410)의 요청에 대응하여, 상기 추정된 정보를 참조하고, 상기 추정된 정보에 대응하여 어플리케이션(410)이 요청한 디바이스의 포맷의 융합 반환값을 어플리케이션(410)에게 제공할 수 있다.The
나아가, 드라이버 관리 모듈(440)은 커널 레벨에서 상기 복수의 디바이스들 사이의 상호 작용을 직접 정의할 수도 있지만, 컴퓨팅 단말(100)이 상기 정의를 위한 디바이스 정의부(450)를 별도로 구비할 수도 있다.Furthermore, the
이 경우, 디바이스 정의부(450)는 상기 복수의 디바이스들 사이의 상호 작용을 정의하고, 드라이버 관리 모듈(440)은 디바이스 정의부(450)에 의해 정의된 정보를 참조하여, 복수의 디바이스들 중에서 상기 대상 디바이스와 연관된 다른 디바이스들이 어느 것인지를 식별할 수 있을 것이다.
In this case, the
도 5 및 6은 도 4에 도시된 드라이버 관리 모듈에서 적용될 수 있는 변환 방식의 예시를 보여주는 도면이다.5 and 6 illustrate examples of a conversion scheme that may be applied to the driver management module illustrated in FIG. 4.
도 5를 참조하면, 상기 드라이버 관리 모듈은 자이로(gyros) 센서 디바이스(510), 기울기 및 지자기(Inclinometers & Compass) 센서 디바이스(520)의 반환값들을 이용하며, 상기 디바이스들 각각의 디바이스 드라이버들은 도면에서 생략하도록 한다.Referring to FIG. 5, the driver management module uses return values of a
필터링부(530)은 자이로 센서 디바이스의 반환값()을 획득하여, 자이로 센서 보상기(Gyro Error Compensation)(531)에 통과시켜서 자이로 센서 반환값의 바이어스(bias) 오차를 줄인다. The
필터링부(530)는 칼만 필터(Kalman Filter)(532)에 상기 오차가 줄어진 자이로 센서 반환값()과, 기울기 및 지자기 센서 디바이스(520)의 반환값()을 통과시켜, 상기 컴퓨팅 단말의 상태에 관련된 정보 중 하나인 각도 정보()를 추정한다. 이때, 필터링부(530)는 상기 반환값()도 미리 필터링하여 오차를 줄일 수 있다.The
필터링부(530)는 상기 추정된 각도 정보를 변환 출력부(540)에게 전달한다.The
변환 출력부(540)는 상기 어플리케이션이 어느 디바이스의 반환값을 요청하였는 지에 따라, 상기 각도 정보()를 다르게 변환하여 상기 어플리케이션에게 제공할 수 있다.The
예컨대, 변환 출력부(540)는 상기 어플리케이션이 가속도 센서에 대한 반환값을 요청한 경우라면, 상기 각도 정보()를 가속도 센서의 반환값(Fx, Fy, Fz)으로 변환하여 상기 어플리케이션에게 제공할 수 있다. 또한, 상기 어플리케이션이 자이로 센서에 대한 반환값을 요청한 경우라면, 상기 각도 정보()를 미분하여 상기 어플리케이션에게 제공할 수 있다. 여기서, 적분오차의 누적에 의해 오차가 발생할 수 있으므로, 상기 드라이버 관리 모듈은 반환값()을 일정 주기마다 업데이트하여 누적되는 오차를 줄일 수 있다.For example, if the
도 6은 도 4에 도시된 드라이버 관리 모듈에서 적용될 수 있는 변환 방식의 다른 예시를 보여주는 도면으로, 도 5에 비해 보다 정밀한 오차 보정이 가능한 경우이다.FIG. 6 is a diagram illustrating another example of a conversion method that may be applied to the driver management module illustrated in FIG. 4, and may be more precise than error correction.
도 6을 참조하면, 필터링부(630)는 자이로 에러 보상기(Gyro Error Compensation)(631)를 이용하여 자이로 센서 디바이스(610)의 반환값()의 오차를 줄이고, 자세 계산기(Attitude Computation)(632)를 이용하여 컴퓨팅 단말의 각도 정보()를 추정할 수 있다.Referring to FIG. 6, the
필터링부(630)는 칼만 필터 에러 추정기(Kalman Filter Error Estimator)(633)를 이용하여 기울기 및 지자기 센서 디바이스(520)의 반환값()의 오차를 줄이고, 그 결과를 자이로 에러 보상기(631) 및 자세 계산기(632)에 각각 입력한다. 자이로 에러 보상기(631) 및 자세 계산기(632)는 칼만 필터 에러 추정기(633)로부터 입력된 값들을 기초로, 자신의 출력값의 미세한 오차를 줄일 수 있다.The
필터링부(630)는 자세 계산기(631)에 의해 최종 출력된 결과인 각도 정보()를 변환 출력부(640)에 전달하고, 변환 출력부(640)는 상기 어플리케이션이 어느 디바이스의 반환값을 요청하였는 지에 따라, 상기 각도 정보()를 다르게 변환하여 상기 어플리케이션에게 제공할 수 있다.
한편, 본 발명의 실시예에 따른 컴퓨팅 장치는 커널 레벨에서, 복수의 디바이스들의 반환값을 융합처리하여 어플리케이션의 유저 레벨로 전달할 수 있음에 따라, 상기 컴퓨팅 단말에서 정상적으로 작동하지 않는 디바이스의 반환값을 추정하고 그 추정된 반환값을 어플리케이션에게 제공하는 것으로 구현될 수도 있다.On the other hand, the computing device according to an embodiment of the present invention can converge the return values of a plurality of devices to the user level of the application at the kernel level, and thus, return the return value of the device that does not operate normally in the computing terminal It may be implemented by estimating and providing the estimated return value to the application.
여기서, 정상적으로 작동하지 않는 디바이스는 상기 컴퓨팅 단말에서 오작동하거나 또는 구비되지 않은 디바이스가 해당될 수 있다. 이 경우, 디바이스 드라이버 또는 드라이버 관리 모듈은 상기 정상적으로 작동하지 않는 디바이스의 반환값을 직접적으로 획득하지 못할 것이다.Here, the device that does not operate normally may correspond to a device malfunctioning or not provided in the computing terminal. In this case, the device driver or the driver management module may not directly obtain a return value of the device that does not operate normally.
예를 들어, 개발자가 컴퓨팅 단말의 하드웨어적인 구조를 변경하거나, 컴퓨팅 단말에 다른 어플리케이션을 탑재하면, 어플리케이션은 변경된 구조나 또는 탑재된 컴퓨팅 단말의 구조를 모를 수 있기 때문에, 정상적으로 작동하지 않는 디바이스에 대한 반환값을 요청하게 될 수 있다.For example, if a developer changes the hardware structure of the computing terminal or mounts another application on the computing terminal, the application may not know the changed structure or the structure of the mounted computing terminal, so that the device may not be able to operate normally. You may be asked for a return value.
이를 위한 실시예로서, 도 7은 본 발명의 제4 실시예에 따른 컴퓨팅 단말의 구성을 설명한다.As an embodiment for this purpose, FIG. 7 illustrates a configuration of a computing terminal according to a fourth embodiment of the present invention.
도 7을 참조하면, 컴퓨팅 단말(700)은 정상적으로 작동하지 않는 디바이스에 대응하는 디바이스 드라이버를 더미 디바이스 드라이버(720)로서 구비한다.Referring to FIG. 7, the
더미 디바이스 드라이버(720)는 커널 레벨에서 정의된 상호 작용에 따라서, 상기 대상 디바이스와 연관된 다른 디바이스로부터 식별되는 반환값들을 기초로 상기 대상 디바이스의 반환값을 추정할 수 있다. The
이러한 반환값의 추정은 상기 대상 디바이스에 대하여 미리 저장된 샘플링 데이터에 의해 이루어질 수 있다. 이 경우, 컴퓨팅 단말(700)은 상기 대상 디바이스가 출력 가능한 반환값들이 상기 대상 디바이스와 연관된 다른 디바이스가 출력하는 반환값들과 서로 매핑된 샘플링 데이터(730)를 더 구비할 수 있다. Estimation of such a return value may be made by sampling data stored in advance for the target device. In this case, the
그리고, 더미 디바이스 드라이버(720)는 어플리케이션(710)이 D1 단계에서 대상 디바이스의 반환값을 요청함에 응답하여, D2 단계에서 상기 대상 디바이스와 연관된 다른 디바이스(750)의 반환값을 상기 다른 디바이스 드라이버(740)로부터 획득할 수 있다. In response to the
더미 디바이스 드라이버(720)는 D3 단계에서, 샘플링 데이터(730)로부터 상기 대상 디바이스와 연관된 다른 디바이스(750)의 반환값에 대응하는 샘플링 데이터를 독출할 수 있다. 더미 디바이스 드라이버(720)는 D4 단계에서, 상기 독출된 샘플링 데이터를 상기 대상 디바이스의 반환값으로서 상기 어플리케이션에게 제공할 수 있다.In operation D3, the
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. The methods according to embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.
Claims (14)
복수의 디바이스들;
상기 복수의 디바이스들 각각의 반환값을 획득하는 복수의 디바이스 드라이버; 및
상기 복수의 디바이스 드라이버를 관리하는 드라이버 관리 모듈
을 포함하고,
상기 드라이버 관리 모듈은
커널 레벨에서 상기 복수의 디바이스들 사이의 상호 작용을 정의하고,
상기 어플리케이션으로부터 상기 복수의 디바이스들 중 대상 디바이스의 반환값에 대한 요청을 수신함에 응답하여, 상기 커널 레벨에서 상기 상호 작용을 고려하여 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하고, 상기 식별된 반환값들을 기초로 생성된 융합 반환값을 상기 어플리케이션에 제공하는
컴퓨팅 단말.In the computing terminal running the application,
A plurality of devices;
A plurality of device drivers for obtaining return values of each of the plurality of devices; And
Driver management module for managing the plurality of device drivers
/ RTI >
The driver management module
Define interactions between the plurality of devices at the kernel level,
In response to receiving a request for a return value of a target device of the plurality of devices from the application, identifying return values of the target device and another device associated with the target device in consideration of the interaction at the kernel level; Providing the application with a fusion return value generated based on the identified return values.
Computing terminal.
상기 어플리케이션은
상기 복수의 디바이스 드라이버 중 상기 대상 디바이스에 대응하는 디바이스 드라이버에게 상기 대상 디바이스의 반환값을 요청한 후, 상기 요청에 관련된 인터럽트를 발생시키고,
상기 드라이버 관리 모듈은
상기 인터럽트를 인지함에 대응하여 상기 융합 반환값을 상기 어플리케이션에게 전송하는
컴퓨팅 단말.The method of claim 1,
The application
After requesting a return value of the target device from a device driver corresponding to the target device among the plurality of device drivers, generating an interrupt related to the request,
The driver management module
Sending the fusion return value to the application in response to acknowledging the interrupt.
Computing terminal.
상기 드라이버 관리 모듈은
상기 융합 반환값의 생성시, 칼만 필터링을 이용하여 상기 대상 디바이스 및 상기 다른 디바이스로부터 획득되는 반환값으로부터 상기 컴퓨팅 단말의 상태를 나타내는 정보를 추정하고, 상기 추정된 정보를 기초로 상기 융합 반환값을 생성하는
컴퓨팅 단말.The method of claim 1,
The driver management module
In generating the fusion return value, information indicating the state of the computing terminal is estimated from the return values obtained from the target device and the other device using Kalman filtering, and the fusion return value is calculated based on the estimated information. Generated
Computing terminal.
상기 드라이버 관리 모듈은
상기 생성된 융합 반환값을 상기 대상 디바이스의 출력 포맷으로 변환한 후 상기 변환된 융합 반환값을 상기 어플리케이션으로 출력하는
컴퓨팅 단말.The method of claim 3,
The driver management module
Converting the generated fusion return value to an output format of the target device and outputting the converted fusion return value to the application
Computing terminal.
복수의 디바이스들; 및
상기 복수의 디바이스들 각각의 반환값을 획득하여 상기 어플리케이션에게 제공하는 복수의 디바이스 드라이버
를 포함하고,
상기 복수의 디바이스 드라이버는
커널 레벨에서 상기 복수의 디바이스들 중 제어 대상의 대상 디바이스 및 다른 디바이스 사이의 상호 작용을 정의하고,
상기 어플리케이션으로부터 상기 대상 디바이스의 반환값에 대한 요청을 수신함에 응답하여, 상기 커널 레벨에서 정의된 상기 상호 작용에 따라 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하고, 상기 식별된 반환값들을 기초로 생성되는 융합 반환값을 상기 어플리케이션에게 제공하는
컴퓨팅 단말.In the computing terminal running the application,
A plurality of devices; And
A plurality of device drivers to obtain a return value of each of the plurality of devices to provide to the application
Lt; / RTI >
The plurality of device drivers
Define an interaction between a target device to be controlled and another device among the plurality of devices at a kernel level,
In response to receiving a request for a return value of the target device from the application, identifying return values of the target device and another device associated with the target device according to the interaction defined at the kernel level, and identifying the identified Providing the application with a fusion return value generated based on the return values.
Computing terminal.
상기 대상 디바이스가 정상적으로 작동하지 않는 경우,
상기 복수의 디바이스 드라이버 중 상기 대상 디바이스에 대응하는 디바이스 드라이버는
상기 상호 작용에 따라 상기 대상 디바이스와 연관된 다른 디바이스로부터 식별된 반환값을 기초로 상기 대상 디바이스의 반환값을 추정하고, 상기 추정된 반환값을 상기 어플리케이션에게 제공하는
컴퓨팅 단말.The method of claim 5,
If the target device does not operate normally,
Among the plurality of device drivers, a device driver corresponding to the target device may be
Estimating a return value of the target device based on a return value identified from another device associated with the target device according to the interaction, and providing the estimated return value to the application.
Computing terminal.
상기 대상 디바이스가 정상적으로 작동하지 않는 경우,
상기 대상 디바이스가 출력 가능한 반환값들이 상기 대상 디바이스와 연관된 다른 디바이스가 출력하는 반환값들과 서로 매핑된 샘플링 데이터를 더 포함하고,
상기 복수의 디바이스 드라이버 중 상기 대상 디바이스에 대응하는 디바이스 드라이버는
상기 요청에 응답하여, 상기 샘플링 데이터로부터 상기 다른 디바이스의 반환값에 대응하는 샘플링 데이터를 독출하고, 상기 독출된 샘플링 데이터를 상기 대상 디바이스의 반환값으로서 상기 어플리케이션에게 제공하는
컴퓨팅 단말.The method according to claim 6,
If the target device does not operate normally,
The return values output by the target device may further include sampling data mapped to return values output by another device associated with the target device.
Among the plurality of device drivers, a device driver corresponding to the target device may be
In response to the request, reading sampling data corresponding to a return value of the other device from the sampling data, and providing the read sampling data to the application as a return value of the target device;
Computing terminal.
커널 레벨에서 상기 복수의 디바이스들 사이의 상호 작용을 정의하는 단계;
상기 어플리케이션으로부터 상기 복수의 디바이스들 중 대상 디바이스의 반환값에 대한 요청을 수신하는 단계;
상기 요청의 수신에 응답하여, 상기 커널 레벨에서 상기 상호 작용에 따라 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하는 단계; 및
상기 식별된 반환값들을 기초로 상기 대상 디바이스를 위한 융합 반환값을 생성하고, 상기 생성된 융합 반환값을 상기 어플리케이션에게 제공하는 단계
를 포함하는 컴퓨팅 단말의 동작 방법.A plurality of devices; A plurality of device drivers for obtaining return values of each of the plurality of devices; And a driver management module for managing the plurality of device drivers, the method of operating a computing terminal executing an application,
Defining interactions between the plurality of devices at a kernel level;
Receiving a request for a return value of a target device among the plurality of devices from the application;
In response to receiving the request, identifying return values of the target device and another device associated with the target device in accordance with the interaction at the kernel level; And
Generating a fusion return value for the target device based on the identified return values and providing the generated fusion return value to the application
Method of operation of a computing terminal comprising a.
상기 생성된 융합 반환값을 상기 어플리케이션에게 제공하는 단계는
상기 생성된 융합 반환값을 상기 대상 디바이스의 출력 포맷으로 변환하여 상기 어플리케이션에게 제공하는
컴퓨팅 단말의 동작 방법.9. The method of claim 8,
Providing the generated fusion return value to the application
Converting the generated fusion return value into an output format of the target device and providing the converted value to the application;
Method of operation of a computing terminal.
상기 생성된 융합 반환값을 상기 어플리케이션에게 제공하는 단계는
칼만 필터링을 이용하여 상기 식별된 반환값으로부터 상기 컴퓨팅 단말의 상태를 나타내는 정보를 추정하는 단계;
상기 추정된 정보를 기초로 상기 대상 디바이스를 위한 융합 반환값을 생성하는 단계; 및
상기 생성된 융합 반환값을 상기 어플리케이션으로 전달하는 단계
를 포함하는 컴퓨팅 단말의 동작 방법.9. The method of claim 8,
Providing the generated fusion return value to the application
Estimating information indicative of the state of the computing terminal from the identified return value using Kalman filtering;
Generating a fusion return value for the target device based on the estimated information; And
Delivering the generated fusion return value to the application
Method of operation of a computing terminal comprising a.
상기 드라이버 관리 모듈이 커널 레벨에서 상기 복수의 디바이스들 사이의 상호 작용을 정의하는 단계;
상기 어플리케이션이 상기 대상 디바이스에 대응하는 디바이스 드라이버에게 상기 대상 디바이스의 반환값을 요청하고, 인터럽트를 발생시키는 단계;
상기 드라이버 관리 모듈이 상기 인터럽트를 인지하는 단계;
상기 인지에 대응하여, 상기 드라이버 관리 모듈이 상기 커널 레벨에서 상기 상호 작용에 따라 상기 대상 디바이스 및 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하는 단계; 및
상기 드라이버 관리 모듈이 상기 식별된 반환값들을 기초로 상기 대상 디바이스를 위한 융합 반환값을 생성하고, 상기 생성된 융합 반환값을 상기 어플리케이션에 제공하는 단계
를 포함하는 컴퓨팅 단말의 동작 방법.A plurality of devices; A plurality of device drivers for obtaining return values of each of the plurality of devices; And a driver management module for managing the plurality of device drivers, the method of operating a computing terminal executing an application,
The driver management module defining an interaction between the plurality of devices at a kernel level;
Requesting, by the application, a return value of the target device from a device driver corresponding to the target device, and generating an interrupt;
The driver management module recognizing the interrupt;
In response to the recognition, the driver management module identifying return values of the target device and another device associated with the target device according to the interaction at the kernel level; And
The driver management module generating a fusion return value for the target device based on the identified return values and providing the generated fusion return value to the application
Method of operation of a computing terminal comprising a.
커널 레벨에서, 상기 대상 디바이스와 상기 대상 디바이스와 연관된 다른 디바이스 사이의 상호 작용을 정의하는 단계;
상기 어플리케이션으로부터 상기 대상 디바이스의 반환값에 대한 요청이 수신되었는 지를 판단하는 단계;
상기 판단 결과, 상기 정의된 상호 작용에 따라 상기 대상 디바이스 및 상기 다른 디바이스 각각의 반환값을 식별하는 단계; 및
상기 식별된 반환값들을 기초로 상기 대상 디바이스를 위한 융합 반환값을 생성하고, 상기 생성된 융합 반환값을 상기 어플리케이션에게 제공하는 단계
를 포함하는 디바이스 드라이버의 동작 방법.In a computing terminal having a plurality of devices and executing an application, a method of operating a device driver for providing a return value of a target device among the plurality of devices to the application,
At a kernel level, defining an interaction between the target device and another device associated with the target device;
Determining whether a request for a return value of the target device has been received from the application;
As a result of the determination, identifying a return value of each of the target device and the other device according to the defined interaction; And
Generating a fusion return value for the target device based on the identified return values and providing the generated fusion return value to the application
Method of operating a device driver comprising a.
커널 레벨에서, 상기 대상 디바이스와 상기 대상 디바이스와 연관된 다른 디바이스 사이의 상호 작용을 정의하는 단계;
상기 어플리케이션으로부터 상기 대상 디바이스의 반환값에 대한 요청이 수신되었는 지를 판단하는 단계;
상기 판단 결과, 상기 정의된 상호 작용에 따라 상기 대상 디바이스와 연관된 다른 디바이스의 반환값들을 식별하는 단계; 및
상기 식별된 반환값들을 기초로 상기 대상 디바이스의 반환값을 추정하는 단계
를 포함하는 디바이스 드라이버의 동작 방법.In a computing terminal having a plurality of devices and a plurality of device drivers and executing an application, a method of operating a device driver corresponding to a target device not normally operating,
At a kernel level, defining an interaction between the target device and another device associated with the target device;
Determining whether a request for a return value of the target device has been received from the application;
As a result of the determination, identifying return values of another device associated with the target device according to the defined interaction; And
Estimating a return value of the target device based on the identified return values
Method of operating a device driver comprising a.
상기 대상 디바이스가 출력 가능한 반환값들이 상기 대상 디바이스와 연관된 다른 디바이스가 출력하는 반환값들과 서로 매핑된 샘플링 데이터를 미리 저장하고 유지하는 단계를 더 포함하고,
상기 식별된 반환값을 기초로 상기 대상 디바이스의 반환값을 추정하는 단계는
상기 샘플링 데이터로부터 상기 다른 디바이스의 반환값에 대응하는 샘플링 데이터를 독출하는 단계; 및
상기 독출된 샘플링 데이터를 상기 대상 디바이스의 반환값으로 결정하는 단계
를 포함하는 디바이스 드라이버의 동작 방법.The method of claim 13,
Storing and maintaining sampling data in which return values output by the target device are mapped with return values output by another device associated with the target device in advance;
Estimating a return value of the target device based on the identified return value
Reading sampling data corresponding to a return value of the other device from the sampling data; And
Determining the read sampling data as a return value of the target device
Method of operating a device driver comprising a.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110060209A KR101294256B1 (en) | 2011-06-21 | 2011-06-21 | Computing terminal for performing application using devices and computing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110060209A KR101294256B1 (en) | 2011-06-21 | 2011-06-21 | Computing terminal for performing application using devices and computing method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120140461A KR20120140461A (en) | 2012-12-31 |
KR101294256B1 true KR101294256B1 (en) | 2013-08-07 |
Family
ID=47906507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110060209A KR101294256B1 (en) | 2011-06-21 | 2011-06-21 | Computing terminal for performing application using devices and computing method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101294256B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030014521A1 (en) | 2001-06-28 | 2003-01-16 | Jeremy Elson | Open platform architecture for shared resource access management |
JP2008059312A (en) | 2006-08-31 | 2008-03-13 | Hitachi Ltd | Controller and development system therefor |
-
2011
- 2011-06-21 KR KR1020110060209A patent/KR101294256B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030014521A1 (en) | 2001-06-28 | 2003-01-16 | Jeremy Elson | Open platform architecture for shared resource access management |
JP2008059312A (en) | 2006-08-31 | 2008-03-13 | Hitachi Ltd | Controller and development system therefor |
Also Published As
Publication number | Publication date |
---|---|
KR20120140461A (en) | 2012-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102004060B1 (en) | Efficient communications amongst computing nodes for operating autonomous vehicles | |
KR102033265B1 (en) | System Delay Estimation Method for Autonomous Vehicle Control | |
JP6437007B2 (en) | Page cache write logging in block-based storage | |
CN111833607B (en) | Techniques for route navigation sharing in community clouds | |
KR101531449B1 (en) | Methods and apparatuses for controlling invocation of a sensor | |
KR20210042856A (en) | Positioning method and apparatus, autonomous driving vehicle, electronic device and storage medium | |
JP2017520030A (en) | Durability features that dynamically modify for individual data volumes | |
JP6908675B2 (en) | Vehicle accelerator / brake assist system based on a predetermined calibration table for L2 autonomous driving | |
JP6250842B2 (en) | Sharing non-USB sensor with another device using USB over IP | |
WO2022127829A1 (en) | Self-moving robot, and path planning method, apparatus and device therefor, and storage medium | |
CN109213144A (en) | Man-machine interface (HMI) framework | |
JP2017530350A (en) | Automatic sensor selection based on required sensor characteristics | |
CN111127584A (en) | Method and device for establishing visual map, electronic equipment and storage medium | |
CN109302563B (en) | Anti-shake processing method and device, storage medium and mobile terminal | |
US11669192B2 (en) | Electronic device for processing input event and method of operating same | |
KR101294256B1 (en) | Computing terminal for performing application using devices and computing method thereof | |
KR20200023600A (en) | Data transfer logic for data transfer between sensors and planning and control of autonomous vehicles | |
EP4296841A1 (en) | Method and system for solid state drive (ssd)-based redundant array of independent disks (raid) | |
CN111428937A (en) | User loss prediction method and device, electronic equipment and readable storage medium | |
WO2014085195A1 (en) | Usb device interrupt signal | |
JP6163897B2 (en) | Numerical calculation program, numerical calculation method, and information processing apparatus | |
US11586564B2 (en) | Head of line entry processing in a buffer memory device | |
US10303462B2 (en) | Windows support of a pluggable ecosystem for universal windows application stores | |
WO2022179602A1 (en) | Navigation information processing method and apparatus, electronic device, and storage medium | |
WO2020255760A1 (en) | Vehicular control device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160629 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170626 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180625 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190807 Year of fee payment: 7 |