KR20200071721A - 구성 가능한 가상 위젯들을 포함하는 터치 감지 사용자 인터페이스 - Google Patents

구성 가능한 가상 위젯들을 포함하는 터치 감지 사용자 인터페이스 Download PDF

Info

Publication number
KR20200071721A
KR20200071721A KR1020207005377A KR20207005377A KR20200071721A KR 20200071721 A KR20200071721 A KR 20200071721A KR 1020207005377 A KR1020207005377 A KR 1020207005377A KR 20207005377 A KR20207005377 A KR 20207005377A KR 20200071721 A KR20200071721 A KR 20200071721A
Authority
KR
South Korea
Prior art keywords
virtual
touch
gui
widget
elements
Prior art date
Application number
KR1020207005377A
Other languages
English (en)
Other versions
KR102556638B1 (ko
Inventor
윌리엄 제이. 리델
Original Assignee
마이크로칩 테크놀로지 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로칩 테크놀로지 인코포레이티드 filed Critical 마이크로칩 테크놀로지 인코포레이티드
Publication of KR20200071721A publication Critical patent/KR20200071721A/ko
Application granted granted Critical
Publication of KR102556638B1 publication Critical patent/KR102556638B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04809Textured surface identifying touch areas, e.g. overlay structure for a virtual keyboard

Abstract

터치 감지 그래픽 사용자 인터페이스(GUI)는 하나 이상의 가상 위젯들의 배열을 포함하는 그래픽 사용자 인터페이스를 디스플레이하도록 구성된 터치 스크린을 포함할 수 있으며, 각각의 가상 위젯은 형상을 갖고, 그래픽 사용자 인터페이스를 통해 디스플레이되는 하나 이상의 사용자 인터페이스 요소들을 포함한다. 하나 이상의 가상 위젯들의 배열은 구성 가능하다. 마이크로컨트롤러는 터치 스크린에서의 터치를 감지하고, 터치와 대응하는 가상 위젯을 식별하고, (a) 식별된 가상 위젯이 디스플레이되는 터치 스크린의 영역에서 햅틱 피드백을 제공하도록 액추에이터를 제어하는 것 또는 (b) 사용자 인터페이스 시스템과 연관된 전자 디바이스를 제어하는 것 중 적어도 하나를 포함하는 액션을 개시하도록 구성될 수 있다.

Description

구성 가능한 가상 위젯들을 포함하는 터치 감지 사용자 인터페이스
관련 출원
본 출원은 (a) 2017년 10월 24일자로 출원된 미국 가특허 출원 제62/576,383호, 및 (b) 2017년 10월 24일자로 출원된 미국 가특허 출원 제62/576,563호에 대한 우선권을 주장하며, 이들 출원의 전체 내용들은 이에 의해 모든 목적들을 위해 참고로 포함된다.
기술분야
본 개시는 터치 감지 사용자 인터페이스들, 예를 들어 터치스크린들에 관한 것이며, 보다 구체적으로는 구성 가능한 가상 위젯들의 배열을 사용한 터치 감지 사용자 인터페이스에 관한 것이다.
터치 감지를 포함하는 터치 인터페이스들이 예를 들어 태블릿 컴퓨터들, 개인용 컴퓨터들, 스마트폰들 및 다른 소비자 제품들에서를 비롯해 다양한 응용들에 사용된다. 이들은 또한 자동차, 기기(예를 들어, 냉장고, 오븐, 세탁기/건조기 등) 난방 및 공조 제어 시스템, 보안 시스템, 자동 입출금기(ATM)를 위한 제어 패널들로서 사용된다. 이러한 응용들에서의 터치 인터페이스는 예를 들어 터치 패드일 수 있거나, 스크린 및 그래픽 사용자 인터페이스(graphical user interface, GUI)를 포함할 수 있다.
본 개시의 몇몇 실시예는, 일반적으로, 접촉 감지 스크린, 예컨대 종래의 그리드 타입 터치 위치 보고를 사용한 터치스크린 상에 디스플레이된 그래픽 사용자 인터페이스(GUI)의 요소를 검색하기 위한 명령어들을 생성하는 방법에 관한 것이다. 방법은 GUI 정의를 파싱(parsing)하고 파싱에 응답하여 GUI의 요소들을 식별하는 단계; 식별된 요소들의 엔트리들을 포함하는 레코드를 생성하는 단계; 식별된 요소들을 유사하게 위치된 요소들의 그룹들과 연관시키는 단계; 식별된 요소들의 레코드를 트리형 구조(tree-like structure)로 배열하는 단계; 동일 그룹들 내의 식별된 요소들을 트리형 구조 내의 단일 리프(leaf)로 콜랩싱(collapsing)하는 단계; 트리형 구조를 최적화하는 단계; 및 트리형 구조에 응답하여 검색 명령어들 리스트를 생성하는 단계를 포함한다.
본 개시의 몇몇 실시예는, 일반적으로, 컴퓨터가 그래픽 사용자 인터페이스(GUI)의 요소를 검색하기 위한 실행 가능 명령어들을 생성할 수 있게 하기 위한 컴퓨터 프로그램 제품에 관한 것이다. 프로그램 제품은 컴퓨터 판독 가능 매체, 및 컴퓨터 판독 가능 매체 상의 소프트웨어 명령어들을 포함할 수 있다. 컴퓨터 판독 가능 매체 상의 소프트웨어 명령어들은 컴퓨터가 GUI 정의를 파싱하고 파싱된 GUI 정의에 응답하여 GUI의 요소들을 식별하는 동작; 식별된 요소들의 엔트리들을 포함하는 레코드를 생성하는 동작; 식별된 요소들을 유사하게 위치된 요소들의 그룹들과 연관시키는 동작; 식별된 요소들의 레코드를 트리형 구조로 배열하는 동작; 동일 그룹들 내의 식별된 요소들을 트리형 구조 내의 단일 리프로 콜랩싱하는 동작; 트리형 구조를 최적화하는 동작; 및 트리형 구조에 응답하여 검색 명령어들의 리스트를 생성하는 동작을 수행할 수 있게 하도록 적응된다.
본 개시의 몇몇 실시예는, 일반적으로, 그래픽 사용자 인터페이스(GUI)를 디스플레이하도록 구성된 터치 스크린에 동작 가능하게 결합된 마이크로컨트롤러에 관한 것이다. 마이크로컨트롤러는 적어도 하나의 프로세서, 및 비일시적 저장 매체에 저장된 하나 이상의 실행 가능 명령어들을 포함한다. 명령어들은, 프로세서에 의해 실행될 때, 프로세서가 터치 스크린에서 감지된 터치의 위치를 결정하고; 감지된 터치에 대응하는 터치의 위치와 연관된 GUI 요소를 식별할 수 있게 하도록 적응된다.
본 개시의 몇몇 실시예는, 일반적으로, 터치 스크린에 디스플레이된 그래픽 사용자 인터페이스(GUI)의 요소를 식별하는 방법에 관한 것이다. 방법은 터치 스크린에서 감지된 터치의 위치를 결정하는 단계; 위치에 응답하여 하나 이상의 검색 명령어들을 실행하는 단계 - 하나 이상의 검색 명령어들 중 각각의 검색 명령어는 GUI 요소에 대응하고, 실행될 때, 검색 결과를 반환하도록 적응됨 -; 및 검색 결과에 응답하여 GUI 요소를 식별하는 단계를 포함한다.
본 개시의 몇몇 실시예는, 일반적으로, 시스템에 관한 것이다. 시스템은 디스플레이 서브시스템 및 터치 서브시스템을 포함한다. 디스플레이 서브시스템은 디스플레이를 제어하도록 구성된다. 터치 서브시스템은 터치 센서 및 터치 컨트롤러를 포함한다. 터치 컨트롤러는 터치 센서에서 감지된 터치의 위치를 결정하고; 위치 및 검색 트리에 응답하여 하나 이상의 검색 명령어들을 실행하고 - 하나 이상의 검색 명령어들 중 각각의 검색 명령어는 GUI 요소에 대응하고, 실행될 때, 검색 결과를 반환하도록 적응됨 -; 검색 결과에 응답하여 GUI 요소를 식별하고; 식별된 GUI 요소에 응답하여 햅틱 제어 메시지를 생성하도록 구성된다.
본 개시의 몇몇 실시예는 가상 위젯들을 이용하는 접촉 감지 GUI를 포함하며, 가상 위젯들 각각은 디스플레이 가능 GUI 스크린에 포함되는 (예를 들어, 하나 이상의 활성 UI 요소를 포함하는) 형상들의 집합을 포함한다. 예를 들어, 가상 위젯은 가상 버튼들, 슬라이더들, 노브들, 다이얼들 등의 다수의 인스턴스 및/또는 타입의 정의된 집합을 포함할 수 있다. 다른 예로서, 가상 위젯은 정의된 기능을 제어하기 위해 인터페이스를 집합적으로 정의하는 활성 요소들의 정의된 집합을 포함할 수 있다.
몇몇 실시예들에서, 가상 위젯들은 터치스크린 상에 디스플레이될 수 있지만, 몇몇 실시예들에서 단지 터치스크린 구성 모듈/프로세스와 관련하여 그리고 터치스크린 디스플레이 상에 존재한다. 가상 위젯들은 헤드 유닛에 보고할 수 있다. 가상 위젯들의 사용은 터치 감지 GUI의 물리적 인터페이스 복잡성을 감소시킬 수 있다. 예를 들어, 가상 위젯들의 사용은 터치 위치들을 처리하기 위한 헤드 유닛에 대한 오버헤드를 감소시킬 수 있고, 예를 들어 가열 제어들, 라디오 제어들 또는 임의의 다른 타입의 제어들을 위해 물리적 로터들, 슬라이더들 등에 대한 별도의 하드웨어 또는 전자장치를 필요로 하지 않을 수 있다.
몇몇 실시예들은 가상 위젯들(예를 들어, 버튼들, 슬라이더들, 다이얼들 등)로서 동작되도록 터치스크린의 영역들(예를 들어, 구성된 스크린 페이지 내의 영역들)을 구성 가능한 방식으로 정의하기 위한 시스템들 및 방법들을 제공한다. 터치스크린 상에서 터치가 검출될 때, 터치 컨트롤러는 사용자 터치에 대응하는 위젯의 위치 또는 상태(예를 들어, 가상 슬라이더의 선형 위치 또는 검출된 터치 위치와 대응하는 가상 다이얼의 회전 위치)를 결정하고, 터치스크린 상의 터치의 위치를 나타내는 "터치 메시지"를 보고하는 대신에 또는 그에 추가하여, "위젯 메시지" 내의 그러한 위치/상태 정보를 헤드 유닛에 보고할 수 있다. 위젯 메시지들은, 예를 들어, 검출된 터치 위치, 힘, 및/또는 터치스크린 상의 검출된 터치의 다른 측정 가능한 태양과 대응하는, 사용자 선택 위치, 회전, '터치된' 상태, 및/또는 각자의 위젯 상의 검출된 터치들의 수를 나타낼 수 있다. 일 실시예에서, 위젯 메시지들은 또한 위젯들, 예컨대 버튼들 또는 키들의 세트의 터치된/터치되지 않은 상태를 보고할 수 있다.
몇몇 실시예들 또는 상황들에서, 가상 버튼/위젯을 터치하는 액션은 (예를 들어, 헤드 유닛 인터페이스의 자체 수정을 통해) 장래의 버튼 누름들로 지속되는 방식으로 스크린 상의 "페이지" 또는 인에이블/디스에이블 버튼들을 업데이트하는 효과를 가질 수 있으며, 이는 (실시예 또는 구성에 따라) 그 시간에 위젯 보고를 헤드 유닛에 전송할 수 있거나 그렇지 않을 수 있지만, 터치스크린 상의 동일한 위치들은 그 후에 상이한 결과들, 예를 들어 라디오로부터 히터 제어들로의 스위칭을 생성할 수 있다. 그 결과, 헤드 유닛은 선택된 페이지 이미지와 매칭하기 위해 디스플레이를 업데이트하는 것만을 필요로 할 것이다.
또한, 몇몇 실시예들에서, 터치스크린 컨트롤러가 스크린 메모리 내의 페이지들을 제어하도록 설정되는 경우, 컨트롤러는 관련 위젯 페이지 ID와 매칭하기 위해 SPI 또는 다른 이용 가능한 GPIO 인터페이스를 통해 스크린 메모리 내의 페이지들을 선택하기 위한 프로세스를 실행할 수 있다. 그러한 구성에서, 터치스크린 컨트롤러는 스크린 상에 형상들을 그리기보다는, 전체적으로 스크린 페이지들을 선택하고 디스플레이할 수 있다. 상이한 스크린 페이지들은, 예를 들어, 버튼들 또는 키들의 정의된 세트 상에서 라벨들만을 변경할 수 있다. 그러한 구성은 매우 유연할 수 있으며, 헤드 유닛 메시지 전송 지연들을 제거하고 매우 응답적일 수 있다.
가상 위젯들을 이용하는 것은 헤드 유닛의 요구되는 처리를 단순화할 수 있다. 예를 들어, 가상 위젯들의 사용은 단일 스크린 설계가 다수의 응용을 가질 수 있게 할 수 있다. 예를 들어, 하나의 인터페이스는 적합한 구성을 통해 모든 제품 변형을 처리할 수 있다.
본 개시의 예시적인 태양들 및 실시예들이 이하의 첨부된 도면들과 관련하여 이하에서 설명된다.
도 1은 검색 작업 리스트를 생성하고 사용하여 GUI 내의 접촉 UI 요소들을 식별하는 프로세스를 예시하는 스윔 다이어그램(swim-diagram)이다.
도 2는 본 개시의 실시예에 따른 검색 작업 리스트를 생성하기 위한 프로세스의 플로차트이다.
도 3은 본 개시의 실시예에 따른 UI 구조 정의로부터 UI 요소들을 추출하기 위한 프로세스의 플로차트이다.
도 4는 본 개시의 실시예에 따른 중간 검색 트리를 생성하는 프로세스의 플로차트이다.
도 5는 본 개시의 실시예에 따른 검색 작업 트리를 생성하는 프로세스의 플로차트이다.
도 6은 본 개시의 실시예에 따른 검색 작업 리스트를 생성하는 프로세스의 플로차트이다.
도 7은 본 개시의 실시예에 따른, UI 요소 내에서 터치가 발생했는지를 결정하는 결정하는 UI 요소들/형상 검색 프로세스의 플로차트이다.
도 8은 UI 요소들로 구성된 라디오 GUI의 실시예를 도시한다. (컬러판 입수 가능)
도 9는 본 개시의 실시예들에 따라 그룹화된 도 8의 라디오 GUI의 UI 요소들을 도시한다. (컬러판 입수 가능)
도 10a 내지 도 10e는 본 개시의 실시예들에 따라 형성된 트리 구조 내의 UI 요소들을 도시한다. (컬러판 입수 가능)
도 11은 검색 작업 리스트들을 포함하는 시스템의 실시예를 도시한다.
도 12는 라디오 GUI의 UI 요소들 중 적어도 일부와 연관된 특징들 및 파라미터들을 포함하는 라디오 GUI의 실시예를 도시한다. (컬러판 입수 가능)
도 13은 서브시스템으로서 자동차의 헤드 유닛에 통합된 도 11의 시스템의 실시예를 예시한다.
도 14는 예시적인 실시예에 따른, 본 명세서에 개시된 바와 같은 가상 위젯들을 이용하는 예시적인 터치스크린 시스템을 예시한다.
도 15는 하나의 예시적인 실시예에 따른, 다양한 UI 요소 그룹들을 포함하는 가상 위젯들의 배열을 포함하는 예시적인 라디오 터치스크린 GUI를 예시한다.
하기의 상세한 설명에서, 상세한 설명의 일부를 이루고, 본 개시가 실시될 수 있는 실시예의 구체적인 예가 예시로서 도시되어 있는 첨부 도면을 참조한다. 이들 실시예는 이 분야의 통상의 기술자가 본 개시를 실시하는 것을 가능하게 하기에 충분히 상세히 설명된다. 그러나, 본 개시의 범위로부터 벗어남이 없이 다른 실시예가 이용될 수 있고 구조, 재료 및 프로세스 변경이 이루어질 수 있다. 여기에 제시된 예시들은 임의의 특정한 방법, 시스템, 디바이스 또는 구조의 실제 도면들인 것으로 의도되는 것이 아니라, 단지 본 개시의 실시예들을 설명하는 데 이용되는 이상화된 표현들이다. 여기에 제시된 도면들은 반드시 일정한 축척으로 작성된 것은 아니다. 다양한 도면들 내의 유사한 구조들 또는 컴포넌트들이 독자의 편의를 위해 동일하거나 유사한 넘버링을 보유하지만, 넘버링의 유사성은 구조들 또는 컴포넌트들이 반드시 크기, 조성, 구성 또는 임의의 다른 특성에 있어서 동일하다는 것을 의미하지는 않는다.
본 명세서에서 일반적으로 기술되고 도면에 예시된 바와 같은 실시예의 컴포넌트들이 매우 다양한 상이한 구성들로 배열 및 설계될 수 있는 것이 손쉽게 이해될 것이다. 따라서, 다양한 실시예들의 하기 설명은 본 개시의 범위를 제한하려는 것이 아니라, 단지 다양한 실시예들을 나타낼 뿐이다. 실시예들의 다양한 태양들이 도면들에 제시될 수 있지만, 명확히 지시되지 않는 한 도면들은 반드시 일정한 축척으로 작성된 것은 아니다.
이하의 설명은 이 분야의 통상의 기술자가 개시된 실시예들을 실시할 수 있게 하는 것을 돕기 위한 예들을 포함할 수 있다. 용어 "예시적인", "예로서", 및 "예를 들어"의 사용은 관련 설명이 설명적인 것임을 의미하며, 본 개시의 범위가 예들 및 법적 등가물들을 포함하도록 의도되지만, 그러한 용어의 사용은 실시예 또는 본 개시의 범위를 명시된 컴포넌트들, 단계들, 특징들, 기능들 등으로 제한하도록 의도되지 않는다.
또한, 도시되고 설명되는 특정 구현예들은 단지 예일 뿐이며, 본 명세서에서 달리 명시되지 않는 한 본 개시를 구현하는 유일한 방법으로 해석되지 않아야 한다. 요소들, 회로들 및 기능들은 불필요한 상세로 본 개시를 모호하게 하지 않기 위해 블록도 형태로 도시될 수 있다. 반대로, 도시되고 설명된 특정 구현예들은 단지 예시적인 것일 뿐이며, 본 명세서에서 달리 명시되지 않는 한 본 개시를 구현하는 유일한 방법으로 해석되지 않아야 한다. 또한, 블록 정의들 및 다양한 블록들 사이의 논리의 분할은 특정 구현예를 예시한다. 본 개시가 많은 다른 분할 솔루션에 의해 실시될 수 있다는 것을 이 분야의 통상의 기술자가 손쉽게 알 수 있을 것이다. 대부분, 타이밍 고려 사항 등에 관한 상세들은, 그러한 상세들이 본 개시의 완전한 이해를 얻는 데 필요하지 않고 관련 분야의 통상의 기술자의 능력 내에 있는 경우 생략되었다.
이 분야의 통상의 기술자는 정보 및 신호가 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 이 설명 전체에 걸쳐 언급될 수 있는 데이터, 명령어들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자성 입자들, 광학 필드들 또는 입자들, 또는 이들의 임의의 조합에 의해 표현될 수 있다. 몇몇 도면들은 프레젠테이션 및 설명의 명료함을 위해 신호들을 단일 신호로서 예시할 수 있다. 신호는 신호들의 버스를 표현할 수 있으며, 여기서 버스는 다양한 비트 폭들을 가질 수 있고 본 개시는 단일 데이터 신호를 포함한 임의의 수의 데이터 신호에 대해 구현될 수 있다는 것이 이 분야의 통상의 기술자에 의해 이해될 것이다.
본 명세서에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들 및 회로들은 범용 프로세서, 특수 목적 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래밍 가능 게이트 어레이(FPGA) 또는 다른 프로그래밍 가능 논리 디바이스, 개별 게이트 또는 트랜지스터 논리, 개별 하드웨어 컴포넌트들, 또는 본 명세서에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합을 이용하여 구현되거나 수행될 수 있다. 범용 프로세서(본 명세서에서 호스트 프로세서 또는 간단히 호스트로 또한 지칭될 수 있음)는 마이크로프로세서일 수 있지만, 대안에서, 프로세서는 임의의 종래의 프로세서, 컨트롤러, 마이크로컨트롤러 또는 상태 기계일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 관련한 하나 이상의 마이크로프로세서, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다. 프로세서를 포함하는 범용 컴퓨터는 특수 목적 컴퓨터로 간주되는 반면, 범용 컴퓨터는 본 개시의 실시예들과 관련된 컴퓨팅 명령어들(예를 들어, 소프트웨어 코드)을 실행하도록 구성된다.
실시예들은 플로차트, 흐름도, 구조도, 또는 블록도로서 묘사되는 프로세스의 관점에서 설명될 수 있다. 플로차트가 동작 액트들을 순차적인 프로세스로서 설명할 수 있지만, 이러한 액트들 중 다수는 다른 시퀀스로, 병렬로, 또는 실질적으로 동시에 수행될 수 있다. 게다가, 액트들의 순서는 재배열될 수 있다.
프로세스는 방법, 스레드, 기능, 절차, 서브루틴, 서브프로그램 등에 대응할 수 있다. 또한, 본 명세서에 개시된 방법들은 하드웨어, 소프트웨어 또는 둘 모두로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독 가능 매체에 하나 이상의 명령어 또는 코드로서 저장되거나 송신될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체와, 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체 둘 모두를 포함한다.
"제1", "제2" 등과 같은 명칭을 사용한 본 명세서에서의 요소에 대한 임의의 언급은 그러한 요소들의 수량 또는 순서를 제한하지 않는다 - 그러한 제한이 명시적으로 언급되지 않는 한 -. 오히려, 이러한 명칭들은 본 명세서에서 둘 이상의 요소 또는 요소의 인스턴스들을 구별하는 편리한 방법으로서 사용될 수 있다. 따라서, 제1 및 제2 요소들에 대한 언급은 2개의 요소만이 거기에서 사용될 수 있거나 제1 요소가 소정 방식으로 제2 요소에 선행해야 한다는 것을 의미하지 않는다. 또한, 달리 언급되지 않는 한, 요소들의 세트는 하나 이상의 요소를 포함할 수 있다.
본 명세서에서 사용되는 바와 같이, 주어진 파라미터, 특성 또는 조건과 관련한 용어 "실질적으로"는, 이 분야의 통상의 기술자가 이해할 정도로, 주어진 파라미터, 특성 또는 조건이 예를 들어 허용 가능한 제조 공차들 이내와 같은 적은 정도의 변동을 갖고서 충족되는 것을 의미하고 포함한다. 예로서, 실질적으로 충족되는 특정 파라미터, 특성 또는 조건에 따라, 파라미터, 특성 또는 조건은 적어도 90% 충족되거나, 적어도 95% 충족되거나, 심지어 적어도 99% 충족될 수 있다.
본 개시에 설명된 다양한 실시예들은, 일반적으로, 접촉 감지 사용자 인터페이스 상에서 선택된 UI 요소들을 결정하기 위한 기술들 및 그러한 기술들을 사용하여 하나 이상의 햅틱 응답을 제공하는 것에 관한 것이다. 본 명세서에 설명된 실시예의 목적을 위해 이해되는 바와 같이, 접촉 센서는 터치 인터페이스의 접촉 감지 영역과의 물체(예를 들어, 손가락 또는 스타일러스)의 접촉, 또는 접촉 감지 영역에의 물체의 근접에 응답할 수 있다. 본 개시에서, "접촉"은 일반적으로 접촉 감지 영역과의 물체의 물리적 접촉을 지칭하지만, 그것은 또한 접촉 센서에 의한 측정 가능한 응답을 생성하는 물체의 매우 근접을 포함할 수 있다. 또한, 접촉 감지 영역은 접촉 센서가 물체의 접촉에 응답할 수 있는 터치 인터페이스 상의 물리적 영역을 지칭한다.
본 명세서에서 사용되는 바와 같은 접촉 감지 GUI 또는 터치스크린은 GUI와 통합된 터치 인터페이스를 지칭한다. 예를 들어, GUI는 전형적으로 하나 이상의 디스플레이 영역들 및 활성/활성 영역들을 포함한다. 본 개시에서, 디스플레이 영역은 사용자에게 정보를 디스플레이하는 사용자 인터페이스의 영역이다. 활성 영역은 사용자가 사용자 인터페이스에 대해 소정의 액션을 취할 수 있게 하는, 버튼, 슬라이더 또는 메뉴와 같은, GUI의 영역이다. 몇몇 디스플레이 영역들은 또한 그들이 정보를 디스플레이하고 소정의 액션이 취해질 수 있다는 점에서 활성 영역들이다. 접촉 감지 GUI에서, 활성 영역이 디스플레이되는 터치 감지 영역과 접촉하는 것(예를 들어, 터치 스크린 상의 GUI 버튼을 탭핑(tapping)하는 것)은 그 영역을 활성화시킬 수 있다. 활성 영역들은 GUI 요소들/객체들, 예를 들어, 버튼들, 슬라이더들, 선택 가능한 창들, 메뉴들 등, 모든 다양한 형상들 및 크기들로서 디스플레이될 수 있다.
일반적으로, 접촉 감지 영역에서 접촉이 감지되는 경우, 만약 있다면, 접촉이 그에 대응하는 GUI의 활성 영역(들)을 결정하기 위해 프로세스가 사용된다. 예를 들어, "입력" 버튼이 탭핑되는 경우, 접촉이 측정되고, 입력 버튼의 위치에서 접촉이 이루어졌는지를 결정하기 위해 알고리즘이 실행된다. 입력 버튼은 활성 영역이며, 따라서 터치 감지 GUI 및/또는 GUI를 호출한 기본 애플리케이션 프로그램에서 이벤트들이 생성된다.
또한, 특정 GUI 요소가 활성 영역과 연관되면, 터치 인터페이스와 통합된 액추에이터들이 일반적으로 햅틱 응답으로 지칭되는 하나 이상의 물리 응답을 제공할 수 있다. 이들은 힘, 진동 또는 이동의 형태일 수 있고, 표면 텍스처, 리지(ridge), 에지, 버튼을 미는 것/클릭하는 것과 같은 상호작용뿐만 아니라 다른 시뮬레이션된 감각 및 응답을 모방할 수 있다. GUI의 경우, 햅틱 응답은 사용자가 그와 상호작용하는 GUI 요소에 국한될 수 있다. 예를 들어, 사용자가 GUI 버튼을 터치하면, 햅틱 응답은, 마치 버튼이 눌린 것처럼, 또는 버튼이 거친 텍스처를 가진 것처럼, 에지와 함께 버튼을 상승된 것으로 느껴지게 할 수 있다.
예를 들어 도 14 및 도 15를 참조하여 이하에서 논의되는 바와 같이, 몇몇 실시예들에서, 접촉 감지 GUI는 디스플레이 가능 GUI 스크린에 포함되는 (예컨대, 하나 이상의 활성 GUI 요소들/객체들을 포함하는) 형상들의 임의의 집합을 포함하는 "가상 위젯들"을 이용할 수 있다. 예를 들어, 가상 위젯은 가상 버튼들, 슬라이더들, 노브들, 다이얼들 등의 다수의 인스턴스 및/또는 타입의 정의된 집합을 포함할 수 있다. 다른 예로서, 가상 위젯은 정의된 기능을 제어하기 위해 인터페이스를 집합적으로 정의하는 활성 요소들의 정의된 집합을 포함할 수 있다. 예를 들어, 슬라이더 타입 가상 위젯 또는 회전 가능 다이얼 타입 가상 위젯은, 예를 들어 아래에 논의되는 도 15의 예에 도시된 예시적인 회전 가능 다이얼들에 의해 예시된 바와 같이, 슬라이더 또는 회전 가능 다이얼에 대한 위치 선택들의 범위에 관련된 UI 요소들의 정의된 집합으로 이루어질 수 있다. GUI 요소들(UI 요소들로 또한 지칭됨) 또는 형상들에 관한 본 명세서의 임의의 개시는 가상 위젯들에 유사하게 적용된다는 것이 이해되어야 한다.
본 명세서에 설명된 다양한 실시예는 때때로 전자 레코드들을 생성하고 업데이트하는 것과 관련이 있을 수 있다. 전자 레코드들은 데이터 파일의 형태일 수 있고, 전자 레코드를 업데이트하는 것은 레코드의 하나 이상의 필드에서 데이터 엔트리들을 삽입하거나 삭제하는 것을 포함할 수 있다. 대안적으로, 실행 시간에, 그것은 클래스 객체 및 인스턴스화된 객체들이 설명된 레코드와 일치하는 상태 정보 및 변수들을 갖는 것을 지칭할 수 있다. 둘 모두의 상황들이 본 명세서에 설명된 다양한 실시예들에서 고려된다.
본 개시의 다양한 실시예들은 접촉 감지 인터페이스 상에서 접촉된 그러한 GUI 요소들을 식별하기 위한 기술들에 관한 것이다. 이러한 기술들 및 연관된 구조들은 메모리 사용 및 응답성의 관점에서 특히 효율적이다.
또한, 다른 기술들에 비해, 인터페이스 데이터 저장 요구들이 적고, UI 요소를 식별하기 위해 실행 시간에 수행되는 작업들의 수가 적다.
본 개시의 몇몇 실시예들은 접촉 감지 인터페이스 상에서 접촉된 GUI 요소들을 식별하기 위해 수행될 수 있는 최적화된 검색 작업들의 리스트를 생성하기 위한 프로세스에 관한 것이다. 그러한 검색은 본 명세서에서 UI 요소 검색 또는 "형상 검색"으로 지칭될 수 있다. 검색 작업들은, 실행될 때, 만약 있다면, 접촉된 GUI의 요소를 검색하고 있는 서브시스템에 성공 또는 실패 메시지를 반환하는 프로세서 실행 가능 명령어들일 수 있다. 일 실시예에서, 검색 작업들은 GUI 내의 다양한 요소들 및 그들의 위치들을 맵 아웃(map out)하는 정의 파일에 기초하여 생성된다. 검색 작업은 다양한 효율 파라미터들에 대해 최적화될 수 있다.
일 실시예에서, 검색 작업 리스트는 디스플레이 서브시스템(예를 들어, 자동차 헤드-유닛)에서 UI 요소/형상 검색을 수행할 수 있는 본 개시의 발명자들에게 알려진 종래의 접촉 감지 GUI들에 비해, 내장형 디바이스, 예를 들어 터치 컨트롤러에 의해 실행될 수 있다. 터치 컨트롤러에서 GUI 요소에 대한 검색을 수행하는 것은 디스플레이 서브시스템과 통신하는 시간 및 서브시스템이 예를 들어 햅틱 피드백 서브시스템에 응답하고 그와 통신하는 시간을 절약한다. 절약된 시간은 종래의 접촉 감지 GUI들에 비해 접촉 감지 GUI들의 응답성을 개선하고, 사용자의 관점에서, 그/그녀가 스크린을 터치한 때로부터 터치에 응답하여 피드백을 수신할 때까지의 시간을 줄인다.
또한, 작업 검색 리스트의 생성은 구성 가능하고, GUI에 따라, 특정 응용에 최적화된 구현을 위해 공통 특징들의 세트들이 선택될 수 있다. 예를 들어, 몇몇 실시예들에서, 생성 프로세스는 다른 GUI 요소들, 소정 형상들의 요소들, 또는 접촉될 때 이동하거나 변형되는 요소들을 가리는 페이징, 드롭다운 메뉴들 및 팝업 윈도우들을 포함하는 GUI에 최적화될 수 있다.
도 1은 본 개시의 다양한 실시예들에 따른 시스템의 전반적인 동작을 예시한다. 동작 112에서, 소프트웨어 애플리케이션 툴(102)은, 만약 있다면, 접촉 감지 스크린 상에서 접촉된 UI 요소를 식별하기 위해 UI 요소/형상 검색을 수행하기 위한 컨디셔닝된 실행 가능 명령어들의 검색 작업 리스트를 생성하기 위해(동작 108) UI 정의 파일을 처리하도록 구성된다.
검색 작업 리스트는 터치 시스템의 일부인 하나 이상의 프로세서에 의해 액세스 가능한 비일시적 저장 메모리에 저장될 수 있다(동작 110). 터치 인터페이스에서 접촉 이벤트가 발생할 때, 터치 센서(106)가 터치를 감지하고(동작 118), 터치를 나타내는 하나 이상의 신호를 하나 이상의 터치 프로세서(104)에 제공할 수 있다. 터치 프로세서들(104)은 접촉이 발생한 터치 인터페이스 상의 위치를 결정하고(동작 112), 그 결정에 응답하여, 만약 있다면, 접촉된 UI 요소를 검색 및 식별한다(동작 114). 일 실시예에서, 터치 프로세서(104)는 검색 결과들을 그래픽 사용자 인터페이스 서브시스템에 제공할 수 있다(동작 116).
검색 작업 리스트를 생성하는 프로세스의 실시예가 도 2 내지 도 7을 참조하여 설명될 것이다. 본 개시의 실시예들은 트리 및 그리드 기술에 따라 UI 요소들을 조직화하는 검색 트리 구조를 이용한다. 다양한 UI 요소들은 그리드들과 같이 취급되는 관련 그룹들로 분할되고, 검색 트리로 조직화되고, 이어서 다양한 검색 작업들이 생성된다. 검색 작업들은 명령어들을 사용하여 UI 요소/형상 검색의 실행을 최적화하도록 컨디셔닝된다. 이 분야의 통상의 기술자는 스크린(들)을 검색 가능 영역들로 분할하기 위해 다른 알고리즘들, 예를 들어 분할 및 정복 방법이 사용될 수 있다는 것을 이해할 것이다.
도 2는 UI 요소/형상 검색을 수행하기 위한 검색 작업 리스트를 생성하는 프로세스의 실시예를 예시한다. 동작 202에서, 스크린들, 서브스크린들, 및 그러한 스크린들 및 서브스크린들 상의 UI 요소들을 식별하기 위해 UI에 대한 구조 정의가 로딩되고 파싱된다. UI 구조 정의는 전자 파일, 데이터베이스, 미처리 데이터 등일 수 있다. 동작 204에서, UI 요소들은 그룹화되고, 검색 가능 영역은 UI 요소 그룹들을 갖는 하나 이상의 검색 가능 영역들로 분할된다. 동작 206에서, UI 요소 그룹들은 검색 가능 영역들에 기초하여 트리 구조로 링크된다. 동작 208에서, 검색 작업들은 검색 트리 브랜치들 및 노드들과 연관되어 검색 트리를 형성하고, 검색 트리는 최적화된다. 동작 210에서, 검색 트리의 컨디셔닝된 작업들은 프로세서에 의해 실행될 수 있는 작업 리스트인 리스트에 저장된다.
일 실시예에서, 검색 작업 리스트를 생성하는 소프트웨어 애플리케이션 툴(102)은 동작들(202, 204, 206, 208, 210) 중 하나 이상의 결과들을 출력 파일에 기입하도록 구성될 수 있다. 이것은 프로세스의 결과들을 검토하기 위해 디버깅 툴에 의해 사용될 수 있다. 동일한 디버깅 툴은 검색 작업 리스트의 텍스트 버전을 사용하고, 이를 (예를 들어,.dos 실행 파일로서) 가상 테스트 환경 내에서 실행하여 검색 작업 리스트가 동작적으로 준비되어 있는 것을 검증하도록 구성될 수 있다.
도 3은 UI 구조 정의로부터 UI 요소들을 추출하기 위한 프로세스(300)의 실시예를 예시한다. 일 실시예에서, UI 구조 정의는 애플리케이션 툴의 구성 생성 특징들에 의해 변환될 디스플레이의 부분들의 xml 정의이다. 애플리케이션 툴은 구조 정의들을 파싱하고, 정의 구조에 정의된 UI 요소들을 파악한다. 동작 302에서, 각각의 UI 요소가 로딩되고, 동작 304에서, 그것이 공지된 UI 요소인지에 대한 결정이 이루어진다. 그것이 공지된 UI 요소가 아닌 경우(즉, 이것은 이 요소가 구조 정의들에서 처음 식별되었다는 것임), 동작 306에서, 프로세스는 그 타입의 UI 요소(예를 들어, 버튼, 노브, 슬라이더 등)에 대한 새로운 요소 정의를 생성한다.
새로운 정의를 생성한 후에, 또는 요소가 공지된 UI 요소인 경우, 동작 308에서, 요소를 기존 그룹에 할당할지에 대한 결정이 이루어진다. 일 실시예에서, 기존 그룹에 할당할지에 대한 결정은 다양한 미리 결정된 파라미터들, 예를 들어 요소들의 공통 특징들, 예컨대 요소의 타입, UI 요소가 디스플레이되는 스크린 위치, 계층 위치, 요소와 연관된 응답의 타입(예를 들어, 시각, 햅틱, 오디오 등) 등에 기초한다. 요소를 새로운 그룹에 할당하기로 결정이 이루어진 경우, 동작 310에서, 요소에 관련된 파라미터들로 새로운 그룹 레코드가 생성된다.
새로운 그룹 레코드가 생성된 후에, 또는 요소를 기존 그룹에 할당하기로 결정이 이루어진 경우, 동작 312에서, 새로운 요소 엔트리가 그 새로운 요소에 대한 그룹 레코드에 삽입된다. 일 실시예에서, 엔트리는 요소 ID 및 요소의 위치(즉, 스크린 상의 요소의 좌표들)에 대한 필드들을 포함한다. 동작 314에서, UI 요소가 더 존재하는지에 대한 결정이 이루어지고 UI 요소들이 더 존재하는 경우, 프로세스는 UI 구조 정의에서 식별된 각각의 나머지 UI 요소에 대해 수행된다. 동작 316에서, 프로세스는 요소(들), 요소 정의(들) 및 그룹(들)을 반환한다.
일 실시예에서, UI 구조 정의가 하나 초과의 스크린 정의를 포함하면, 각각의 그러한 스크린은 UI 요소의 파라미터인 스크린 ID를 할당받는다. 그것은 또한 각각의 그룹에 대한 파라미터로서 포함될 수 있다. 각각의 스크린은 또한 디스플레이된 GUI의 정의된 영역들인 서브스크린들을 포함할 수 있고, 그러한 정의된 영역들에서 몇몇 UI 요소들이 동적으로 변하는 반면 그러한 영역들 외부의 UI 요소들은 정적으로 유지된다. 비제한적인 예로서, 동적 UI 요소들을 갖는 영역들은 스와핑 가능한 창들, 스크롤 가능한 메뉴들, 활성화 가능한 정보 창들, 내비게이션 버튼들 등을 포함할 수 있다.
도 4는 본 개시의 실시예에 따른 검색 트리를 생성하는 프로세스(400)를 예시한다. 이 프로세스에서, UI 정의에서 식별된 각각의 스크린을 어떻게 검색 가능 영역들로 분할할지에 관한 결정이 이루어지며, 각각의 검색 가능 영역은 UI 요소들의 하나 이상의 그룹을 포함한다. 도 4에 도시된 예시적인 실시예에서, 적어도 하나의 UI 요소 그룹이 분할 라인의 일측에 있고 적어도 하나의 다른 UI 요소 그룹이 분할 라인의 다른 측에 있도록 UI 요소들의 그룹들을 분할하는 분할 라인(x-y 좌표들)이 선택된다.
분할 라인은 스크린을 분할 라인을 따른 공유 경계를 갖는 2개의 검색 가능 영역으로 효과적으로 분할한다. UI 요소 그룹들은 UI 요소 그룹들이 더 분할될 수 없을 때까지 반복적으로 분할된다.
다른 실시예에서, 스크린 또는 검색 가능 영역들은 x 좌표 방향 및 y 좌표 방향 둘 모두로 동시에 분할되며, 이는 UI 요소 그룹들의 최대 4개의 세분을 유발할 수 있다. 이 기술은 또한 4개 미만의 세분, 예를 들어, UI 요소 그룹들의 3개의 분할 및 하나의 빈 검색 가능 영역을 유발할 수 있다.
또 다른 실시예들에서, 검색 가능 영역들로부터 배제할 스크린의 일부를 정의하여 스크린이 검색 가능 영역들로 세분되지 않게 하기 위해 원들, 정사각형들 및/또는 다각형들이 사용될 수 있다.
동작 402에서, 2개 이상의 그룹을 갖는 제1 검색 가능 영역이 로딩된다. 제1 반복에 대해, 이것은 모든 그룹들을 포함하는 전체 스크린일 수 있다. 이 실시예에서, 초기 검색 가능 영역 레코드는 모든 UI 요소들 및 UI 요소 그룹들을 포함하는 전체 스크린을 포함하도록 정의된 영역과 함께 존재한다. 동작 404에서, 초기 검색 가능 영역을 그룹들 중 일부를 각각 갖는 2개의 검색 가능 영역으로 분할하는 그리드 라인이 선택된다. 동작 406에서, 새로운 레코드가 생성되고, UI 요소 그룹들은 초기 레코드와 새로운 레코드 사이에서 분류되고, 레코드들은 그들 각자의 검색 가능 영역들로 업데이트된다. 분할 라인은 2개의 검색 가능 영역 사이의 분리/분할로서 기록된다. 제1 검색 가능 영역 및 그 안의 UI 요소 그룹들 및 UI 요소들은 분할에 링크되고, 이것은 이어서 새로운 검색 가능 영역 및 그 안의 UI 요소 그룹들 및 UI 요소들에 링크된다.
실행 시간에, UI 요소들의 클래스 객체들, UI 요소 그룹들의 클래스 객체들, 및 분리들/분할들의 클래스 객체들이 존재할 것이다.
하나 초과의 UI 요소 그룹을 포함하는 각각의 검색 가능 영역에 대해, 프로세스는 검색 가능 영역들을 분할하기 위해 반복적으로 실행된다(동작 408).
특히, 일 실시예에서, UI 요소들은 UI 요소 정의(예를 들어, 요소 ID)에 대한 참조 및 UI 요소의 원점으로의 이동에 의해 정의되고, 이 실시예에서 인터페이스 메모리 요구들은 각각의 UI 요소가 개별적으로 정의될 필요가 없기 때문에 감소된다.
일단 스크린이 완전히 분할되면, 분할들/분리들, UI 요소들, 및 UI 요소 그룹들, 및 이들 사이의 링크들을 포함하는 중간 검색 트리가 이제 존재한다.
동작 410에서, 그룹 레벨 검색 작업들이 각각의 UI 요소 그룹에 대해 생성된다. 그룹 레벨 작업은 프로세스 단계 또는 일련의 프로세스 단계들이다. 작업들은 (i) 터치 또는 접촉 이벤트가 UI 요소 내에서(또는 UI 요소 없이) 발생했는지를 결정하기 위한 작업들; (ii) 소정의 방식으로 검색 영역을 수정하기 위한 작업들; 및 (iii) 다음 작업에 대해 셋업하기 위한 작업들을 포함할 수 있다.
각각의 그룹 레벨 작업은 성공 또는 실패 시에 수행될 다음 작업의 표시를 포함할 수 있다. 예를 들어, 각각의 작업은 다음 작업 어드레스에 대한 "오프셋"을 갖는 비트를 포함할 수 있다. 또한, 각각의 그룹 레벨 작업은 그것이 실행될 때 인수들을 수신할 수 있다. 몇몇 실시예들에서, 이전 작업은 인수들을 제공하거나, 어느 인수들이 다음 작업에 이용 가능한지를 표시하기 위해 환경 비트/플래그를 설정할 수 있다.
일 실시예에서, UI 요소 그룹 좌표들(위치의 각도)에서의 오프셋은 인덱스를 생성하는 데 사용될 수 있다. 검색 가능 영역 내의 모든 UI 요소는, 구성되는 경우, 검색 가능 영역의 기본 ID로부터 인덱스만큼 오프셋된 상이한 ID를 할당받을 수 있다. 결과는 요소 ID 및 오프셋 값이다. 응답(예를 들어, 햅틱) 또는 요소 ID를 수정하기 위한 별개의 제공들이 존재한다 - 따라서 하나의 그룹 요소는 단일 요소 ID, 그러나 다수의 응답 ID를 반환할 수 있고, 다른 그룹 요소는 다수의 상이한 요소들에 대한 하나의 응답 ID를 반환할 수 있다.
그룹 레벨 검색 작업들은 그룹 레코드들에 삽입되거나, 검색 작업 리스트에 삽입되거나, 중간 레코드에 삽입될 수 있다. 일단 그룹 레벨 검색 작업들이 완료되면, 동작 412에서 중간 검색 트리가 반환된다.
일 실시예에서, 적용 가능한 경우, 작업이 수행되고, 성공이고, 최종 작업인 경우에 무엇이 반환될지를 나타내는 각각의 작업에 대해 환경 변수들이 설정될 수 있다. 비제한적인 예로서, 환경 변수는 햅틱 ID, 그룹 형상 내의 요소에 대해 요소 ID 및 햅틱 ID가 수정되는 방법을 제어하는 값들 등일 수 있다. 다음 작업 설명과 동반하도록 전송될 데이터를 나타내는 환경 플래그들이 또한 설정될 수 있다. 소정의 제약들 및 올바른 환경 변수들을 사용함으로써, 예를 들어 원의 정의가 7 바이트로부터 2 바이트로 감소될 수 있다.
도 5는 중간 검색 트리에 대해 수행되는 최적화 프로세스(500)의 실시예를 예시한다. 동작 502에서, 모든 UI 요소들이 공통 특징들에 의해 그룹화된다. 공통 특징들의 예들은 UI 요소 타입, 계층 내의 위치, 다른 계층 내의 다른 요소(예를 들어, 동일 UI 요소 뒤의 모든 것)에 대한 위치, 디스플레이 그룹, 형상 등을 포함한다. 일 실시예에서, 공통 특징들은 UI 요소/형상 검색 프로세스를 최적화하도록 선택될 수 있다. 예를 들어, UI 요소들이 검색 트리의 상부에 있는 상위 계층 상의 UI 요소들과 계층 위치에 의해 그룹화되는 경우, 그들이 먼저 검색될 것이다. 다른 예로서, "페이징"(즉, 사용자 인터페이스의 계층들이 그 아래의 계층들을 노출시키도록 또는 계층을 다른 계층 위로 당기도록 스와이프될 수 있음)이 있는 응용에서, 디스플레이 그룹에 의한 그룹화는 단일 제어를 사용하여 모든 디스플레이된 UI 요소들의 제어 - 예를 들어 디스플레이 그룹 내의 모든 UI 요소들을 검색, 제어 설정들에 응답하여 그러한 UI 요소들에 변경들을 적용, 디스플레이 그룹 내의 모든 UI 요소들을 턴온 또는 턴오프 등 - 를 가능하게 한다. 다양한 실시예들에서, 식별자들은 공통 특징들, 예를 들어 계층 ID들, 위치 ID들, 형상 ID들 등에 의해 조직화된 그룹들을 식별하는 데 사용될 수 있다.
동작 504에서, 검색 작업들이 각각의 요소에 대한 검색 트리에 삽입되고, 중간 검색 작업 트리를 형성하도록 분리된다. 동작 506에서, 중간 검색 작업 트리는 각각의 작업에 대한 단일 통과(pass through)를 보장하도록 재순서화(re-ordering)된다. 동작 508에서, 중복된 또는 비효율적인 검색 작업들이 제거된다. 동작 510에서, 최적화된 검색 작업 트리가 반환된다.
도 6은 검색 작업 리스트를 생성하는 프로세스(600)의 실시예를 예시한다. 동작 602에서, 검색 작업 트리 내의 클래스 객체들이 로딩되고, 동작 604에서, 명령어 워드들(즉, 검색 작업들)이 클래스 객체들로부터 생성되고 명령어 워드들(즉, 검색 작업들)이 검색 작업 리스트에 삽입된다. 도 6에 도시된 실시예에서, 명령어 워드는 작업 코드 필드 및 점프 필드를 포함한다. 일 실시예에서, 명령어 워드는 데이터 필드를 포함한다. 모든 실패(즉, 요소가 상이함) 및 모든 분리는 다음 작업이 메모리에서 현재 작업을 바로 뒤따르지 않는 한 다른 명령어로의 점프를 요구한다.
동작 606에서, 작업 코드들이 작업 코드 필드에 삽입되고, 동작 608에서 점프 값들이 점프 필드에 삽입된다.
몇몇 실시예들에서, 점프 값들 중 일부 또는 전부는 모든 작업들이 검색 작업 리스트에 삽입될 때까지 삽입되지 않는다. 다른 실시예들에서, 점프 값들은 검색 작업 트리로부터 추정될 수 있다.
동작 610에서, 검색 작업 리스트의 다양한 작업들이 메모리에서 연결되어 컨디셔닝된 검색 작업 리스트를 형성하며, 이 리스트는, 모든 객체들이 리스트에 있는 경우(동작 612), 동작 614에서 프로세스에 의해 반환된다. 검색 작업 리스트 및 검색 트리는 메모리에 저장될 수 있다.
작업 명령어들은 검색 작업 리스트가 구현될 특정 환경에서 이용 가능한 컨테이너 크기 제한들(즉, 바이트 제한들)에 의해 달라질 수 있다. 일 실시예에서, 각각의 작업 명령어와 연관된 데이터는 명령어 인터페이스 요구들(8-비트, 12-비트, 16-비트 등), 이용 가능한 메모리 등을 포함한 시스템 요구들에 따라 달라질 수 있다. 비제한적인 예로서, 8변 다각형 형상의 UI 요소 내에서 검색하기 위한 명령어는 단지 x 및 y 좌표 데이터 및 변들의 수를 이용하여 수행될 수 있다. 그러나, 명령어 인터페이스 및 다른 메모리 요구들이 허용하는 경우 추가 데이터가 포함될 수 있다.
도 7은 본 개시의 실시예에 따른, UI 요소 내에서 터치가 발생했는지를 결정하는 UI 요소/형상 검색 프로세스를 예시한다. 검색 트리의 검색은 제공된 데이터 및 검색 작업 리스트를 사용하여 수행된다. 동작 702에서, 각각의 작업에 대한 실행 가능 명령어가 각각의 작업에 대한 페이로드 데이터와 순차적으로 프로세서의 인터페이스 상에 제공되고, 동작 704에서 실행된다. 검색 트리가 검색됨에 따라, UI 요소 내에서 터치가 발생했는지에 대한 결정이 동작 706에서 이루어지고, 각각의 작업의 결과는 UI 요소 내에서 터치가 발생했는지를 나타내는 참/거짓, 성공/실패이다. 동작 708에서, 현재 작업의 결과가 성공인 것에 응답하여 다음 작업 명령어 및 관련 데이터가 로딩되고 프로세서에 의해 수신된다. 즉, 동작 706의 결과가 성공인 경우, 작업 리스트 내의 다음 작업이 실행된다.
결과가 실패인 경우, 결과에 응답하여 교체(alt) 작업 명령어 및 관련 데이터가 로딩되고 프로세서에 의해 수신된다. 교체 작업이 존재하는 경우(동작 714), 교체 작업 위치가 동작 716에서 공급되고, 프로세스는 동작 702로 루프백되고, 작업들은 프로세서에 대한 교체 위치로부터 로딩된다. 검색이 고갈될 때, UI 요소는 발견되거나 발견되지 않는다. UI 요소가 발견되면, 발견 결과가 동작 710에서 반환되고, 동작 712에서, 그 요소에 대한 ID는 물론, 임의의 환경 설정들/응답성 파라미터들이 반환된다. 동작이 발견되지 않으면, 미발견 결과가 동작 720에서 반환된다.
일 실시예에서, 도 7에 도시된 UI 요소/형상 검색 프로세스는 터치 프로세서(마이크로컨트롤러)에서 실행하는 펌웨어 애플리케이션일 수 있다. 터치 프로세서는 플래시 메모리에 저장된 검색 프로세스에 의해 실행되는 하나 이상의 검색 작업을 가질 수 있다. 일 실시예에서, 검색 작업들은 디스플레이 컨트롤러와 연관된 RAM에 저장될 수 있고, 검색 작업들은 셋업 또는 프로비저닝 프로세스 동안 터치 프로세서에 제공되고 검색 프로세스에 액세스 가능하게 유지될 수 있다.
설명된 실시예는 대안적인 접근법에 비해 몇 가지 이점을 제공한다. 메모리 요구들은 선형 검색, 순수 그리드 방법 또는 순수 검색 트리 방법으로부터 상당히 - 50%까지 - 감소되고, 여전히 조합 그리드/트리 방법들에 비해 개선이다. 이것은 부분적으로는 수행되는 검색 동작들의 수가 감소되기 때문이다. 검색 동작들의 수가 감소되기 때문에, 응답 사이클들이 (종래의 접근법들을 포함하는) 대안 접근법들보다 상당히 더 짧다. 예를 들어, 1200x1200 접촉 감지 GUI 상에서, 72μs(순수 그리드) 내지 1200μs(선형)의 범위에 이르는 대안 접근법들에 비해 36μs 미만의 사이클 시간들이 달성되었다. 사용자에게, 이 차이는 훨씬 더 응답적인 터치 인터페이스이다.
설계자에게, 상이한 응답 특성들을 가진 많은 요소를 갖는 터치 인터페이스는 더 복잡할 수 있다.
도 8, 도 9 및 도 10a 내지 도 10e는 본 개시의 실시예들과 함께 사용될 수 있는 GUI의 하나의 비제한적인 예로서 라디오 응용을 위한 GUI와 관련하여, 도 2 내지 도 7을 참조하여 예시되고 설명된 프로세스들을 예시한다. 도 8에 예시된 라디오 GUI(810)는 표(820)에 요약된 8개의 타입의 UI 요소들 및 총 144개의 UI 요소를 포함한다. 몇몇 실시예에서, GUI(810)는 종래의 그리드 타입 터치 위치 보고를 사용한 터치스크린일 수 있다.
도 9는 도 3을 참조하여 설명된 방법들에 따라 그룹화된 UI 요소들을 도시한다. 이 실시예에서, 그룹화된 요소들(832, 834, 836, 838, 840, 842, 844, 846, 848)은 유사한 터치 특성들(예를 들어, 터치에 응답하는 햅틱 피드백), 스크린 상의 물리적 위치들, 및 형상들을 갖는다.
도 10a 내지 도 10e는 도 4를 참조하여 설명된 트리 및 그리드 방법을 사용하여 형성된 트리 구조들(850)의 예를 도시한다.
도 11은 본 개시의 실시예에 따른 본 명세서에 설명된 UI 요소/형상 검색 방법들을 구현할 수 있는 시스템(1000) 및 관련 툴(1040)을 예시한다. 시스템(1000)은 GUI 요소들에 대한 GUI 요소 검색 기능(1012) 및 응답 결정(1014)을 갖는 마이크로컨트롤러 펌웨어(1010)를 포함한다. 마이크로컨트롤러 펌웨어(1010)를 실행하는 프로세서는 마이크로컨트롤러 펌웨어(1010)로부터 제어 신호들을 수신하고 이어서 접촉 감지 인터페이스(1020)에서 응답을 구동할 수 있는 응답 구동기(1018)에 결합된다. 일 실시예에서, 접촉 감지 인터페이스(1020)는 하나 이상의 액추에이터를 포함하는 터치 스크린이고, 응답 구동기(1018)는 액추에이터들을 여기시킬 제어 신호들을 생성하도록 구성된 햅틱 구동기이다. 감지 회로(1022)는 접촉 감지 인터페이스(1020)에서의 접촉에 응답하여 하나 이상의 측정 신호를 생성할 수 있다. 접촉 측정 및 처리(1016)는 감지 회로(1022)로부터의 측정 신호들에 응답하여 접촉 정보(예를 들어, 위치, 타입 등)를 결정하고 이를 응답 결정(1014) 및 GUI 요소 검색 기능(1012)에 제공할 수 있다. 응답 구동기(1018)에서 수신된 제어 신호들은, 예를 들어, 접촉 감지 인터페이스(1020) 상의 우측 위치에서 햅틱 피드백이 제공되도록 접촉 정보에 적어도 부분적으로 기초할 수 있다.
또한 도 11에, 본 개시의 실시예에 따른, 검색 리스트 생성 프로세스를 구현하고 요소 검색 작업 리스트 및 요소 응답 정보를 생성할 수 있는 툴(1040)이 도시되어 있다. 검색 리스트 생성 애플리케이션 프로그램(1044)은 GUI 정의 XAML 파일(1042)을 처리하기 위한 도 2 내지 도 6을 참조하여 설명된 프로세스들을 구현하여 요소 검색 작업 리스트를 생성하도록 구성된다. 애플리케이션(1044)은 요소 검색 작업 리스트(1046) 및 요소 응답 정보(1048)를 파일로서 마이크로컨트롤러 펌웨어(1010)에 제공할 수 있다. 일 실시예에서, 그것은 또한 검색 트리를 제공할 수 있지만, 이는 검색 작업들에 통합될 수 있다.
펌웨어의 몇몇 실시예에서, 펌웨어는 터치 이벤트에 관한 힘 레벨 정보를 포함시키기 위한 힘 측정 및 처리 기능들을 포함할 수 있다. 이러한 실시예들에서, 요소 검색 기능에 의해 반환되는 힘 레벨 정보 및 GUI 요소 ID 및 햅틱 응답 상세들은 상기 힘 레벨, GUI 요소 ID 및 햅틱 응답 상세들에 응답하여 햅틱 제어 신호들을 생성하기 위해 햅틱 시퀀서에 의해 사용될 수 있다.
도 11의 시스템은 자동차들을 포함한, 터치 인터페이스들 및 터치 제어 패널들을 이용하는 다양한 소비자 제품들, 기기들 및 기계류에 통합될 수 있다.
도 12는 자동차 터치 제어 패널을 위한 라디오 GUI(1210)의 단순화된 버전을 예시한다. 3개의 영역, 즉 영역 1, 영역 2 및 영역 3이 특별히 콜아웃된다. 영역 1은 온도 제어를 위한 회전식 다이얼(1214)의 중간에 있는 버튼(1212)이다. 햅틱 프로파일 ID #4(진동)에 따른 햅틱 피드백이 강한 힘 레벨을 갖는 터치 이벤트에 응답하여 제공된다. 영역 2는, 또한 온도 제어를 위한, 회전식 다이얼(1214)이다. 햅틱 프로파일 ID #3(마찰)에 따른 햅틱 피드백이 약한 힘 레벨을 갖는 터치 이벤트에 응답하여 제공된다. 마지막으로, 영역 3은 자동차 설정들에 대한 메뉴를 띄우는 버튼(1216)이다. 햅틱 프로파일 ID #2(클릭)에 따른 햅틱 피드백이 강한 힘 레벨을 갖는 터치 이벤트에 응답하여 제공되고, 햅틱 프로파일 ID #3(마찰)에 따른 햅틱 피드백이 약한 힘 레벨을 갖는 터치 이븐에 응답하여 제공된다.
도 13은 헤드 유닛(1310)에 의해 명령되는 자동차 제어들에 통합된 도 11의 시스템 및 도 12의 GUI를 예시하며, 헤드 유닛(1310)에서의 햅틱 효과들은 마이크로컨트롤러에 의해 제어된다. 이 실시예에서, 터치 컨트롤러(1320) 및 UI 요소/형상 검색 기능들(1324)은 자동차 헤드 유닛(1310)이 헤드 유닛의 처리 회로의 직접적인 개입 없이 햅틱 피드백으로 터치들에 응답하는 자동차 서브시스템의 일부이다. 터치 컨트롤러(1320)는 터치 위치들 및 힘 레벨 정보로부터 터치된 스크린 버튼들을 식별하고, 햅틱 효과를 트리거하기 위해 버튼 위치를 포함하는 터치 상태 기계를 실행하도록 구성된다.
이 실시예에서, 힘 처리(1326) 및 터치 처리(1322)는 하나의 컨트롤러 컴포넌트(1320)에 통합되고, 터치 스크린(1332)은 터치 컨트롤러(1320)에 의해 직접 활성화되고 햅틱 디바이스(1350)에 의해 수행될 햅틱 효과들의 범위를 도출하는 데 각각 필요한 다수의 기하학적 객체 설명의 정의들(스크린 디스플레이 설계(1336) 및 검색 트리 정의들(1338))을 포함한다. 터치 컨트롤러(1320)는 또한 터치 컨트롤러 구성 유닛(1340)을 통해 이러한 정의들을 수신할 수 있다.
예를 들어, 디스플레이(1330)에서의 터치 후에, 터치 컨트롤러(1320)는 힘 처리(1326) 및 터치 처리(1322)로부터 힘 정보 및 터치 정보를 수신한다. 정보는 힘 센서(1334)로부터의 힘 측정 및 디스플레이 상의 터치 위치를 포함할 수 있다. UI 요소/형상 검색(1324)은, 만약 있다면, 터치가 발생한 디스플레이(1330)에 디스플레이되는 UI 요소에 대응하는 UI 요소 정보를 제공한다. 디스플레이 상의 위치에 대응하는 UI 요소가 없다면, UI 요소/형상 검색(1324)은 널(null) 검색 결과를 제공한다. UI 요소의 형상 정보를 검색하는 동안, UI 요소/형상 검색(1324)은 헤드 유닛(1310)에 저장된 정의들을 사용할 수 있다. 일 실시예에서, UI 요소/형상 검색(1324)은 프로비저닝 프로세스 동안, 예를 들어 터치 컨트롤러(1320)가 헤드 유닛(1310)과 통합될 때 또는 헤드 유닛(1310)이 파워 온될 때, 정의들을 수신할 수 있다.
UI 요소/형상 검색(1324)이 UI 요소를 식별하는 경우, 햅틱 정보는 햅틱 효과 및 햅틱 효과에 대한 위치를 포함하는 햅틱 활성화 메시지를 햅틱 디바이스(1350)에 전송하기 위해 햅틱 제어(1328)에 의해 사용된다. 햅틱 활성화 메시지는 햅틱 효과의 레벨(예를 들어, 약함, 중간, 강함)을 나타내는 파라미터를 포함할 수 있다. 햅틱 디바이스(1350)는 햅틱 디바이스에 저장된 햅틱 라이브러리(1352)에서 햅틱 효과 정의를 검색한다. 이어서 햅틱 디바이스(1350)는 디스플레이의 특정 영역이 요청된 햅틱 효과를 나타내도록 디스플레이(1330)에 있는 액추에이터들을 제어한다. 특히, 상이한 햅틱 디바이스들은 상이한 햅틱 라이브러리들을 가질 수 있으며 따라서 효과들은 디바이스들 사이에서 상이할 수 있다.
이 실시예에서, GUI 정의는 그래픽 사용자 인터페이스들을 위한 xml 구현예인 XAML 파일이다. XAML 파일은 GUI의 UI들의 스크린 요소들에 대한 드로잉 명령어들의 계층적 구조화된 리스트를 포함한다. XAML 파일에는 GUI 요소들과 연관된 태그들이 있다. 예를 들어, "폭", "높이" 및 "수평 정렬"은 특정 요소들에 대한 모든 유효한 태그들이다.
가상 위젯들
위에서 논의된 바와 같이, 몇몇 실시예들에서, 접촉 감지 GUI(GUI와 통합된 터치 인터페이스)는 예를 들어 위에서 논의된 특징들 중 임의의 것과 조합하여 가상 위젯들을 이용할 수 있다. 본 명세서에서 사용되는 바와 같이, "가상 위젯"은 디스플레이 가능 GUI 스크린에 포함되는 (예를 들어, 하나 이상의 활성 UI 요소를 포함하는) 형상들의 임의의 집합이다. 예를 들어, 가상 위젯은 가상 버튼들, 슬라이더들, 노브들, 다이얼들 등의 다수의 인스턴스 및/또는 타입의 정의된 집합을 포함할 수 있다. 다른 예로서, 가상 위젯은 정의된 기능을 제어하기 위해 인터페이스를 집합적으로 정의하는 활성 요소들의 정의된 집합을 포함할 수 있다. 예를 들어, 슬라이더 타입 가상 위젯 또는 회전 가능 다이얼 타입 가상 위젯은, 예를 들어 아래에 논의되는 도 15의 예에 도시된 예시적인 회전 가능 다이얼들에 의해 예시된 바와 같이, 슬라이더 또는 회전 가능 다이얼에 대한 위치 선택들의 범위에 관련된 UI 요소들의 정의된 집합으로 이루어질 수 있다.
가상 위젯들은 터치스크린 상에 디스플레이될 수 있지만, 몇몇 실시예들에서 단지 터치스크린 구성 모듈/프로세스와 관련하여 그리고 터치스크린 디스플레이 상에 존재한다. 가상 위젯들은 헤드 유닛에 보고할 수 있다. 가상 위젯들의 사용은 터치 감지 GUI의 물리적 인터페이스 복잡성을 감소시킬 수 있다. 예를 들어, 가상 위젯들의 사용은 터치 위치들을 처리하기 위한 헤드 유닛에 대한 오버헤드를 감소시킬 수 있고, 예를 들어 가열 제어들, 라디오 제어들 또는 임의의 다른 타입의 제어들을 위해 물리적 로터들, 슬라이더들 등에 대한 별도의 하드웨어 또는 전자장치를 필요로 하지 않을 수 있다.
몇몇 실시예들은 가상 위젯들(예를 들어, 버튼들, 슬라이더들, 다이얼들 등)로서 동작되도록 터치스크린의 영역들(예를 들어, 구성된 스크린 페이지 내의 영역들)을 구성 가능한 방식으로 정의하기 위한 시스템들 및 방법들을 제공한다. 터치스크린 상에서 터치가 검출될 때, 터치 컨트롤러는 사용자 터치에 대응하는 위젯의 위치 또는 상태(예를 들어, 가상 슬라이더의 선형 위치 또는 검출된 터치 위치와 대응하는 가상 다이얼의 회전 위치)를 결정하고, 터치스크린 상의 터치의 위치를 나타내는 "터치 메시지"를 보고하는 대신에 또는 그에 추가하여, "위젯 메시지" 내의 그러한 위치/상태 정보를 헤드 유닛에 보고할 수 있다. 위젯 메시지들은, 예를 들어, 검출된 터치 위치, 힘, 및/또는 터치스크린 상의 검출된 터치의 다른 측정 가능한 태양과 대응하는, 사용자 선택 위치, 회전, '터치된' 상태, 및/또는 각자의 위젯 상의 검출된 터치들의 수를 나타낼 수 있다.
몇몇 실시예들에서, 위젯 메시지들은, 예를 들어 이하에서 논의되는 도 14에 도시된 예시적인 실시예에서, 터치 메시지들로부터의 분리된 스트림에서 헤드 유닛에 통신된다. 몇몇 실시예들에서, 터치 컨트롤러는 가상 위젯 상의 터치가 검출될 때 헤드 유닛으로의 터치 메시지들의 전송을 억제하는데; 다시 말해서 터치 메시지들은 가상 위젯과의 터치 상호작용 동안 위젯 메시지들을 위해 유보될 수 있다.
그러한 가상 위젯들의 사용은 가상 GUI 제어들이 터치스크린 상의 어느 곳에나 구성 가능하고 동적인 방식으로 위치될 수 있게 한다. 몇몇 실시예들에서, 스크린 상에 디스플레이된 가상 제어들은, 예를 들어 UI 형상 검색에 대해 위에서 개시된 기술들에 기초하여, 스크린 디스플레이 ID를 변경함으로써 변경 및/또는 재위치될 수 있다.
도 14는 하나의 예시적인 실시예에 따른, 본 명세서에 개시된 바와 같은 가상 위젯들을 이용하는 예시적인 GUI 터치스크린 시스템(1400)을 예시한다. GUI 터치스크린 시스템(1400)은 접촉 감지 터치스크린(1402), 터치 컨트롤러(1404) 및 헤드 유닛(1406)을 포함할 수 있으며, 이들 각각은 컴포넌트들(예를 들어, 터치 센서, 마이크로컨트롤러, 마이크로컨트롤러 펌웨어, 프로세서, 메모리, 햅틱 액추에이터 등) 중 임의의 것을 제공하고, 위에서 논의된 바와 같이 터치스크린, 터치 컨트롤러 및 헤드 유닛에 의해 제공되는 기능 중 임의의 것을 제공할 수 있다. 몇몇 실시예들에서, 터치 컨트롤러(1404)는 마이크로컨트롤러 내의 펌웨어에 의해 구현될 수 있다.
시스템(1400)은 또한 스크린 설계 모듈(1410) 및 터치 컨트롤러 구성 모듈(1414)을 포함할 수 있다. 스크린 설계 모듈(1410)은 터치스크린(1402)에 선택적으로 디스플레이될 수 있는 하나 이상의 상이한 스크린(페이지로도 지칭됨) 각각에 대한 스크린 설계를 정의하거나 구성할 수 있다. 각각의 스크린에 대해, 스크린 설계 모듈(1410)은 스크린 내에 포함시킬 가상 위젯들을 선택하고, 선택된 위젯들의 배열/레이아웃을 선택할 수 있다. 스크린 설계 모듈(1410)은 저장을 위해 스크린 설계(들)를 헤드 유닛(1406)에 통신할 수 있고, 헤드 유닛(1406)은, 예를 들어 (예컨대, 헤드 유닛(1406)에 의해 제공되는 스크린 선택 상태 머신을 이용하여) 디스플레이를 위해 현재 선택된 스크린에 기초하여, 스크린 설계들을 GUI 요소 검색 엔진(1424)에 적절히 선택적으로 제공할 수 있다. 이어서 헤드 유닛(1406) 또는 대안적으로 터치 컨트롤러 구성 모듈(1414)은 예를 들어 가상 위젯들의 다양한 선택들 및/또는 배열들을 사용하여 다수의 상이한 스크린 중 어느 것이 현재 디스플레이되는지를 제어함으로써 터치스크린 상의 디스플레이를 제어할 수 있다.
스크린 설계 모듈(1410)은 또한 스크린 설계들 중 임의의 것에 포함된 각각의 가상 위젯의 파라미터들(1412)을 정의하고, 저장을 위해 각자의 위젯 정의들(1416)을 터치 컨트롤러 구성 모듈(1414)에 통신할 수 있다. 따라서 터치 컨트롤러 구성 모듈(1414)은 하나 또는 다수의 타입의 관련 UI 요소들의 정의된 집합을 포함할 수 있는, 각각의 가상 위젯에 대한 위젯 정의를 저장할 수 있다. 도시된 바와 같이, 터치 컨트롤러 구성 모듈(1414)은 GUI 요소 검색 엔진(1424)이 터치스크린 상의 검출된 터치에 기초하여 가상 위젯과의 사용자 상호작용을 검출할 수 있게 하기 위해 현재 디스플레이된 스크린에 포함된 위젯 정의들을 GUI 요소 검색 엔진(1424)에 제공할 수 있다.
위에서 언급된 바와 같이, 각각의 가상 위젯은 터치스크린 상에 디스플레이된 형상들의 임의의 집합을 포함할 수 있다. 각각의 가상 위젯은 위젯 ID 및 스크린 상의 상대 위치를 가질 수 있다. 가상 위젯들은 예를 들어 (버튼 타입 위젯들에 대한) 버튼 번호, (로터 타입 위젯들에 대한) 로터 위치/변경, 또는 (슬라이더 타입 위젯들에 대한) 슬라이더 위치/변경과 같은 파라미터들에 의해 추가로 정의될 수 있다. 가상 위젯들은 또한 예를 들어 헤드 유닛에 의해 페이징될 수 있는 형상 구성에 의해 정의될 수 있다.
동작 시에, 사용자가 터치스크린(1402)을 터치/접촉할 때, 터치 컨트롤러(1404)의 감지 회로는 1420에서 센서 신호들을 측정하고, 터치스크린(1402)에서의 측정된 접촉에 응답하여 하나 이상의 측정 신호를 생성할 수 있다. 접촉 측정 및 처리(1420, 1422)는 터치 정보(예를 들어, 위치, 타입, 힘 등)를 결정하고, 이를 GUI 요소 검색 엔진(또는 "형상 검색" 모듈)(1424)에 제공할 수 있다. 이어서 GUI 요소 검색 엔진(1424)은, 예를 들어 위젯 정의들(1416)에 포함된 위젯 위치 및 형상 파라미터들에 기초하여, 터치 위치가 현재 디스플레이된 가상 위젯들과 대응하는지를 결정할 수 있다. 이 결정은 UI 요소 터치 검출에 대해 위에서 논의된 다양한 기술들 중 임의의 것을 이용할 수 있다.
GUI 요소 검색 엔진(1424)이 터치 위치가 현재 디스플레이된 가상 위젯과 대응한다고 결정하는 경우, 검색 엔진(1424)은 각자의 위젯 ID, 위젯 형상 인덱스, 위젯 내의 어느 UI 요소(들)가 터치되고 있는지, 및/또는 터치되고 있는 가상 위젯에 관한 다른 관련 정보를 포함하는 위젯 정보(1426)를 위젯 처리 모듈(1428)에 통신할 수 있다. 1428에서, 위젯 처리 모듈(1428)은 GUI 요소 검색 엔진(1424)으로부터 수신된 위젯 정보(1426) 및/또는 위젯 정의 정보(1416) 중 임의의 것을 포함하는 위젯 메시지(1430)를 메시지 인터페이스(1434)에 대해 생성할 수 있으며, 이 메시지 인터페이스는 위젯 처리 모듈(1428)로부터의 정보를 포함하는 이벤트 보고(1440)를 헤드 유닛(1406)에 전달할 수 있다.
몇몇 실시예들에서, 위젯 처리 모듈(1428)은 각각의 관련 위젯 터치 이벤트에 대한 이벤트 보고(1440)를 생성할 수 있으며, 이는 예를 들어 헤드 유닛(1406) 및/또는 터치 컨트롤러(1404)에 의해 생성되거나 달리 그들이 액세스 가능한 위젯 정의들(1416) 또는 다른 로직에 의해 정의되는 바와 같은 햅틱 응답 또는 다른 사용자 피드백 또는 제어 기능을 트리거하는 각각의 위젯 터치 이벤트를 포함할 수 있다. 예를 들어, 관련 위젯 터치 이벤트들은, 예를 들어 각자의 함수를 턴 온/오프하거나 예를 들어 조정 가능 제어 파라미터(예를 들어, 볼륨, 팬 속도, 디스플레이 밝기 등)를 증가 또는 감소시키는 것에 의해, 위젯과 연관된 설정을 변경하는 위젯 상의 터치 이벤트들을 포함할 수 있다. 위젯 처리 모듈(1428)은 GUI 요소 검색 엔진(1424)으로부터 수신된 위젯 정보(1426) 및/또는 위젯 정의 정보(1416)로부터 관련 위젯 터치 이벤트들을 식별할 수 있다.
따라서 헤드 유닛(1406)은 메시지 인터페이스(1434)를 통해 위젯 처리 모듈(1428)로부터 위젯 관련 이벤트 보고들(1440)을 수신하고, 터치스크린(1402)에서의 디스플레이된 스크린의 태양들을 제어하고/하거나, 터치되고 있는 가상 위젯과 연관된 적어도 하나의 외부 시스템 또는 디바이스, 예를 들어 라디오, 인포테인먼트 시스템, 지도/안내 시스템, 라이트, 팬, 모터, 엔진 등을 제어하는 것에 의해 각각의 이벤트 보고(1440)에 응답할 수 있다. 몇몇 실시예들에서, 헤드 유닛(1406)은, 예를 들어 위젯 정의 정보(1416)에 의해 정의된 바와 같이, 터치의 위치에서 사용자에게 정의된 햅틱 피드백을 제공하도록 각자의 액추에이터(들)를 제어할 수 있다. 다른 실시예들에서, 터치스크린(1402)을 통한 햅틱 피드백은 헤드 유닛(1406)보다는 터치 컨트롤러(1404)에 의해 제어되고 제공될 수 있으며, 이는 사용자에게 피드백을 제공하기 위한 응답 시간을 증가시킬 수 있다.
또한, 도 14에서 1432에 표시된 바와 같이, 터치 컨트롤러(1404)는 모든 처리된 터치 정보를 메시지 인터페이스(1434)에 전달하도록 구성될 수 있으며, 이 메시지 인터페이스는 그러한 정보를 생성하여 이벤트 보고들(1440)을 통해 헤드 유닛(1406)에 전달할 수 있다. 몇몇 실시예들에서, 위젯 처리 모듈(1428)은, 예를 들어 위젯 메시지들(1430)/위젯 관련 이벤트 보고들(1440)의 생성 및 위젯 처리 모듈(1428)로부터 헤드 유닛(1406)으로의 전달 중에, 가상 위젯 터치가 GUI 요소 검색 엔진(1424)에 의해 식별될 때 이러한 터치 정보(1432)의 전달을 디스에이블 또는 유보하도록 인에이블/디스에이블 스위치/로직(1442)을 제어할 수 있다.
가상 위젯들을 이용하는 것은 헤드 유닛(1406)의 요구되는 처리를 단순화할 수 있다. 예를 들어, 가상 위젯들의 사용은 단일 스크린 설계가 다수의 응용을 가질 수 있게 할 수 있다. 예를 들어, 하나의 인터페이스는 적합한 구성을 통해 모든 제품 변형을 처리할 수 있다.
도 15는 하나의 예시적인 실시예에 따른, 터치스크린 GUI(1500) 상에 디스플레이된 예시적인 라디오 스크린(또는 페이지)(1502)을 예시하며, 여기서 라디오 스크린/페이지(1502)는 다양한 UI 요소 그룹들을 포함하는 가상 위젯들(1504)의 배열을 포함한다. 터치스크린 GUI(1500)는 라디오 및/또는 하나 이상의 다른 시스템 또는 디바이스(예를 들어, 인포테인먼트 시스템, 지도/안내 시스템, 라이트, 팬, 모터, 엔진 등)를 제어하기 위해 임의의 수 및 타입의 상이한 스크린들/페이지들을 선택적으로 디스플레이하도록 구성될 수 있다.
이 예에서, 라디오 스크린/페이지(1502)는 라디오 위젯(1504A), 한 쌍의 라디오 모드 위젯(1504B 및 1504C), 채널 프리셋 위젯(1504D), 상태 위젯(1504E), 볼륨 제어 활성화 위젯(1504F) 및 볼륨 조정 위젯(1504G), 튜너 제어 활성화 위젯(1504H) 및 튜너 조정 위젯(1504I), 저음 제어 위젯(1504J), 및 고음 제어 위젯(1504K)을 포함하는 다양한 예시적인 가상 위젯들(1504)을 포함한다.
위에서 논의된 접촉 감지 GUI들(예를 들어, 터치스크린들)은 임의의 적합한 제품들 또는 시스템들, 예를 들어 가전 제품들에서 또는 예를 들어 자동차 제어들을 위해 사용될 수 있다. 몇몇 실시예들에서, 터치스크린 제어는 별개의 마이크로프로세서/칩을 요구함이 없이, 예를 들어 마이크로컨트롤러에서 구현되는, 펌웨어에 의해 제공될 수 있다.
GUI(예를 들어, 터치스크린)는 구성을 통해 정의되고 변경될 수 있기 때문에, 동일한 GUI 하드웨어가 다수의 상이한 목적을 위해 그리고/또는 다수의 상이한 사용자 또는 고객에 의해 사용되고 선택적으로 구성될 수 있다. 또한, 동일한 GUI 하드웨어는 제품 범위에 걸쳐 다수의 상이한 인터페이스 옵션을 제공할 수 있다. 종래의 접근법들은 전형적으로 별개의 제어들을 제공하고/하거나, 헤드 유닛을 이용하여 터치스크린 상의 버튼 누름들 또는 다른 접촉들을 결정하는데, 이는 개시된 시스템의 유연성을 제공하지 못하며, 추가적인 처리 자원들 또는 시간을 요구할 수 있다.
터치스크린의 상이한 부분들에 대한 상이한 특성들 및 응답들을 정의하는 능력은 센서 영역들의 유연한 정의를 가능하게 하는, 위에서 개시된 UI 요소/형상 검색 알고리즘에 의해 주로 제공된다. 이것은 종래의 터치스크린 설계의 전형적인 태양이 아니다. 또한, UI 요소들/위젯들에 대한 별도의 메시징 스트림들의 추가는 로터 및 슬라이더와 같은 기능들이 임의의 물리적 디바이스에 대한 필요 없이 가상적으로 생성될 수 있게 한다. 동일한 기능은 임의의 형상이 그 자신의 ID로 가상 위젯으로서 보고하여, 종래의 터치스크린 처리를 바이패스할 수 있게 한다.
본 명세서에 설명된 기능 유닛들 중 많은 것이 그들의 구현 독립성을 보다 특별히 강조하기 위해 모듈, 스레드, 또는 프로그래밍 코드의 다른 분리로서 예시되거나, 설명되거나, 라벨링될 수 있다. 모듈들은 하드웨어로, 하나의 형태로 또는 다른 형태로 적어도 부분적으로 구현될 수 있다. 예를 들어, 모듈은 맞춤형 VLSI 회로 또는 게이트 어레이, 기성(off-the-shelf) 반도체, 예컨대 논리 칩, 트랜지스터, 또는 다른 별개의 컴포넌트를 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 프로그래밍 가능 하드웨어 디바이스, 예컨대 필드 프로그래밍 가능 게이트 어레이, 프로그래밍 가능 어레이 논리, 프로그래밍 가능 논리 디바이스 등으로 구현될 수 있다. 모듈들은 또한 소프트웨어 또는 펌웨어를 사용하여 구현되고, 다양한 타입의 프로세서에 의한 실행을 위해 물리적 저장 디바이스(예를 들어, 컴퓨터 판독 가능 저장 매체)에, 메모리에, 또는 이들의 조합에 저장될 수 있다.
실행 가능 코드의 식별된 모듈은, 예를 들어, 컴퓨터 명령어의 하나 이상의 물리적 또는 논리 블록을 포함할 수 있는데, 이들은 예를 들어 스레드, 객체, 절차, 또는 기능으로서 편성될 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행 가능 코드는 물리적으로 함께 위치될 필요가 없지만, 함께 논리적으로 연결될 때, 모듈을 포함하고 모듈에 대한 진술된 목적을 달성하는, 상이한 위치들에 저장된 이질적 명령어들을 포함할 수 있다.
실제로, 실행 가능 코드의 모듈은 단일 명령어 또는 많은 명령어들일 수 있으며, 심지어 여러 상이한 코드 세그먼트들에 걸쳐, 상이한 프로그램들 사이에, 그리고 여러 저장 또는 메모리 디바이스들에 걸쳐 분산될 수 있다. 유사하게, 연산 데이터는 본 명세서에서 모듈들 내에서 식별되고 예시될 수 있으며, 임의의 적합한 형태로 구현되고 임의의 적합한 타입의 데이터 구조 내에 조직화될 수 있다. 연산 데이터는 단일 데이터 세트로서 수집될 수 있거나, 상이한 저장 디바이스들에 걸쳐를 비롯해 상이한 위치들에 걸쳐 분산될 수 있으며, 적어도 부분적으로, 단지 시스템 또는 네트워크 상의 전자 신호들로서 존재할 수 있다.
모듈 또는 모듈의 부분들이 소프트웨어로 구현되는 경우, 소프트웨어 부분들은 본 명세서에서 컴퓨터 판독 가능 매체로 지칭되는 하나 이상의 물리적 디바이스에 저장된다.
몇몇 실시예들에서, 소프트웨어 부분들은 비일시적 상태로 저장되며, 따라서 소프트웨어 부분들 또는 그들의 표현들이 소정 기간 동안 동일한 물리적 위치에 존속한다. 또한, 몇몇 실시예들에서, 소프트웨어 부분들은 소프트웨어 부분들을 나타내는 비일시적 상태들 및/또는 신호들을 저장할 수 있는 하드웨어 요소들을 포함하는 하나 이상의 비일시적 저장 디바이스들에 저장된다 - 비일시적 저장 디바이스들의 다른 부분들이 신호들을 변경하고/하거나 송신하는 것이 가능할 수 있을지라도 -. 비일시적 저장 디바이스들의 예들은 플래시 메모리 및 랜덤 액세스 메모리(RAM)이다. 비일시적 저장 디바이스의 다른 예는 소정 기간 동안 소프트웨어 부분들을 나타내는 신호들 및/또는 상태들을 저장할 수 있는 판독 전용 메모리(ROM)를 포함한다. 그러나, 신호들 및/또는 상태들을 저장하는 능력은 저장된 신호들 및/또는 상태들과 동일하거나 그들을 나타내는 신호들을 송신하는 추가 기능에 의해 감소되지 않는다. 예를 들어, 프로세서는 대응하는 소프트웨어 명령어들을 실행하기 위해 저장된 신호들 및/또는 상태들을 나타내는 신호들을 획득하기 위해 ROM에 액세스할 수 있다.
실제적인 관점에서, 컴퓨터 시스템이 본 명세서에 설명된 동작들을 수행할 수 있게 하는 소프트웨어는 다양한 매체들 중 임의의 하나를 통해 공급될 수 있다. 또한, 본 발명의 접근법 및 동작들의 실제 구현예는 실제로는 컴퓨터 언어로 작성된 명령문들이다. 그러한 컴퓨터 언어 명령문들은, 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 명령문들의 특정 콘텐츠에 따라 동작하게 한다. 또한, 컴퓨터 시스템이 본 발명에 따라 동작할 수 있게 하는 소프트웨어는 오리지널 소스 코드, 어셈블리 코드, 객체 코드, 기계 언어, 전술한 것의 압축 또는 암호화된 버전들, 및 임의의 그리고 모든 등가물들을 포함하지만 이로 제한되지 않는 임의의 수의 형태들로 제공될 수 있다.
이 분야의 통상의 기술자는 본 명세서에서 사용되는 바와 같은 "매체" 또는 "컴퓨터 판독 가능 매체"가 디스켓, 테이프, 컴팩트 디스크, 집적 회로, ROM, CD, DVD, 블루레이(BLUE-RAY), 카트리지, 플래시 메모리, 메모리 스틱 또는 카드, 또는 현재 알려져 있거나 이후에 개발될 것들을 포함한, 컴퓨터들에 의해 사용 가능한 임의의 다른 비파괴적 저장 매체를 포함할 수 있다는 것을 인식할 것이다.
인에이블링 소프트웨어는 디스크 "상에 기입"되거나, 집적 회로 "내에 구현"되거나, 통신 회로를 "통해 운반"되거나, 메모리 칩 "내에 저장"되거나, 캐시 메모리 "내에 로딩"될 수 있지만, 본 출원의 목적을 위해, 소프트웨어는 단순히 컴퓨터 판독 가능 매체 "내에" 또는 "상에" 있는 것으로 지칭될 것임이 인식될 것이다. 따라서, 용어 "내에" 또는 "상에"는 소프트웨어가 컴퓨터 판독 가능 매체와 연관될 수 있는 전술한 그리고 모든 등가의 그리고 가능한 방식들을 포함하도록 의도된다.
따라서, 간략함을 위해, 용어 "컴퓨터 프로그램 제품"은 이에 따라 컴퓨터 시스템이 본 발명의 임의의 실시예에 따라 동작할 수 있게 하는 임의의 형태의 소프트웨어를 그 상에 갖는, 위에서 정의된 바와 같은, 컴퓨터 판독 가능 매체를 지칭하는 데 사용된다.
본 개시가 소정의 예시된 실시예들과 관련하여 본 명세서에서 설명되었지만, 이 분야의 통상의 기술자는 본 발명이 그런 식으로 제한되지 않는다는 것을 인지 및 인식할 것이다. 오히려, 예시되고 설명된 실시예들에 대한 많은 추가, 삭제 및 수정이 그의 법적 등가물과 함께 이하에서 청구되는 바와 같은 본 발명의 범위로부터 벗어남이 없이 이루어질 수 있다. 또한, 하나의 실시예로부터의 특징들은 본 발명자들에 의해 고려되는 바와 같은 본 발명의 범위 내에 여전히 포함되면서 다른 실시예의 특징들과 조합될 수 있다.

Claims (21)

  1. 사용자 인터페이스 시스템으로서,
    하나 이상의 가상 위젯들의 배열을 포함하는 그래픽 사용자 인터페이스(GUI)를 디스플레이하도록 구성된 터치 스크린 - 각각의 가상 위젯은 형상을 갖고, 상기 GUI를 통해 디스플레이되는 하나 이상의 사용자 인터페이스 요소들을 포함하며,
    상기 하나 이상의 가상 위젯들의 상기 배열은 구성 가능함 -; 및
    상기 터치 스크린에서의 터치를 감지하고, 상기 터치와 대응하는 가상 위젯을 식별하고, (a) 상기 식별된 가상 위젯이 디스플레이되는 상기 터치 스크린의 영역에서 햅틱 피드백을 제공하도록 액추에이터를 제어하는 것 또는 (b) 상기 사용자 인터페이스 시스템과 연관된 전자 디바이스를 제어하는 것 중 적어도 하나를 포함하는 액션을 개시하도록 구성된 프로세서를 포함하는, 사용자 인터페이스 시스템.
  2. 제1항에 있어서, 상기 프로세서는 마이크로컨트롤러 내에 구현되는, 사용자 인터페이스 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 GUI 내의 복수의 GUI 요소들을 식별하기 위해 GUI 정의를 파싱(parsing)하는 것,
    식별된 GUI 요소들의 엔트리들을 포함하는 레코드를 생성하는 것,
    상기 식별된 GUI 요소들의 상대적 위치에 기초하여 상기 식별된 요소들을 가상 위젯들로 그룹화하는 것, 및
    식별된 GUI 요소들의 상기 레코드를 요소 라이브러리로 배열하는 것
    에 의해 상기 GUI에 포함된 GUI 요소들의 라이브러리를 생성하도록 구성된 애플리케이션 툴을 추가로 포함하는, 사용자 인터페이스 시스템.
  4. 제3항에 있어서, 상기 애플리케이션 툴은,
    식별된 GUI 요소들의 상기 레코드를 GUI 요소들의 트리형 구조(tree-like structure)로 배열하는 것,
    가상 위젯들로 함께 그룹화된 식별된 GUI 요소들을 GUI 요소들의 상기 트리형 구조 내의 단일 리프(leaf)로 콜랩싱(collapsing)하는 것, 및
    GUI 요소들의 요소들의 상기 트리형 구조에 응답하여 검색 명령어들을 생성하는 것
    을 포함하는 프로세스에 의해 식별된 GUI 요소들의 상기 레코드를 GUI 요소 라이브러리로 배열하도록 구성되고,
    상기 프로세서는 상기 검색 명령어들을 사용하여 상기 터치 스크린에서의 상기 터치와 대응하는 상기 가상 위젯을 식별하도록 구성되는, 사용자 인터페이스 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 GUI의 적어도 하나의 가상 위젯은 적어도 하나의 가상 버튼, 가상 슬라이더, 가상 노브, 가상 다이얼, 또는 다른 가상 사용자 인터페이스를 포함하는 다수의 활성 GUI 요소들의 집합을 포함하는, 사용자 인터페이스 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 GUI의 적어도 하나의 가상 위젯은 가상 버튼, 가상 슬라이더, 가상 노브, 가상 다이얼, 또는 다른 가상 사용자 인터페이스를 집합적으로 정의하는 다수의 별개의 활성 GUI 요소들의 집합을 포함하는, 사용자 인터페이스 시스템.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 사용자 인터페이스 시스템은 헤드 유닛을 추가로 포함하고,
    상기 프로세서는 상기 헤드 유닛으로부터 분리된 터치 컨트롤러 프로세서 내에 구현되고,
    상기 터치 컨트롤러 프로세서는 상기 터치 스크린에서의 상기 터치와 대응하는 상기 식별된 가상 위젯의 위치 또는 상태를 나타내는 위젯 메시지를 생성하여 상기 헤드 유닛에 전송하도록 구성되는, 사용자 인터페이스 시스템.
  8. 제7항에 있어서, 상기 터치 컨트롤러 프로세서에 의해 상기 헤드 유닛으로 전송되는 상기 위젯 메시지는 터치 관련 위치, 회전, 터치된/터치되지 않은 상태, 또는 상기 가상 위젯 상의 검출된 터치들의 수 중 적어도 하나를 나타내는, 사용자 인터페이스 시스템.
  9. 제7항 또는 제8항에 있어서, 상기 터치 컨트롤러 프로세서는 검출된 터치 위치, 터치 힘, 또는 상기 터치스크린 상의 상기 검출된 터치의 다른 측정 가능한 태양의 함수로서 상기 가상 위젯의 터치 관련 상태를 식별하도록 구성되고, 상기 터치 컨트롤러 프로세서에 의해 생성되는 상기 위젯 메시지는 상기 가상 위젯의 상기 식별된 터치 관련 상태를 나타내는, 사용자 인터페이스 시스템.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 터치 스크린은 복수의 상이한 GUI 페이지들을 선택적으로 디스플레이하도록 구성되며, 각각의 GUI 페이지는 가상 위젯들의 상이한 세트를 포함하는, 사용자 인터페이스 시스템.
  11. 방법으로서,
    터치 스크린에서, 하나 이상의 가상 위젯들의 배열을 포함하는 그래픽 사용자 인터페이스(GUI)를 디스플레이하는 단계 - 각각의 가상 위젯은 형상을 갖고, 상기 GUI를 통해 디스플레이되는 하나 이상의 사용자 인터페이스 요소들을 포함하며,
    상기 하나 이상의 가상 위젯들의 상기 배열은 구성 가능함 -;
    프로세서에 의해, 상기 터치 스크린에서의 터치를 감지하는 단계;
    상기 프로세서에 의해, 상기 터치와 대응하는 가상 위젯을 식별하는 단계; 및
    상기 프로세서에 의해, (a) 상기 식별된 가상 위젯이 디스플레이되는 상기 터치 스크린의 영역에서 햅틱 피드백을 제공하도록 액추에이터를 제어하는 것 또는 (b) 사용자 인터페이스 시스템과 연관된 전자 디바이스를 제어하는 것 중 적어도 하나를 포함하는 액션을 개시하는 단계를 포함하는, 방법.
  12. 제11항에 있어서, 상기 프로세서는 마이크로컨트롤러 내에 구현되는, 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 GUI 내의 복수의 GUI 요소들을 식별하기 위해 GUI 정의를 파싱하는 것,
    식별된 GUI 요소들의 엔트리들을 포함하는 레코드를 생성하는 것,
    상기 식별된 GUI 요소들의 상대적 위치에 기초하여 상기 식별된 요소들을 가상 위젯들로 그룹화하는 것, 및
    식별된 GUI 요소들의 상기 레코드를 요소 라이브러리로 배열하는 것
    에 의해 상기 GUI에 포함된 GUI 요소들의 라이브러리를 생성하는 단계를 추가로 포함하는, 방법.
  14. 제13항에 있어서, 식별된 GUI 요소들의 상기 레코드를 GUI 요소 라이브러리로 배열하는 것은,
    식별된 GUI 요소들의 상기 레코드를 GUI 요소들의 트리형 구조로 배열하는 것,
    가상 위젯들로 함께 그룹화된 식별된 GUI 요소들을 GUI 요소들의 상기 트리형 구조 내의 단일 리프로 콜랩싱하는 것, 및
    GUI 요소들의 요소들의 상기 트리형 구조에 응답하여 검색 명령어들을 생성하는 것을 포함하며,
    상기 프로세서는 상기 검색 명령어들을 사용하여 상기 터치 스크린에서의 상기 터치와 대응하는 상기 가상 위젯을 식별하도록 구성되는, 방법.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서, 상기 GUI의 적어도 하나의 가상 위젯은 적어도 하나의 가상 버튼, 가상 슬라이더, 가상 노브, 가상 다이얼, 또는 다른 가상 사용자 인터페이스를 포함하는 다수의 활성 GUI 요소들의 집합을 포함하는, 방법.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 GUI의 적어도 하나의 가상 위젯은 가상 버튼, 가상 슬라이더, 가상 노브, 가상 다이얼, 또는 다른 가상 사용자 인터페이스를 집합적으로 정의하는 다수의 별개의 활성 GUI 요소들의 집합을 포함하는, 방법.
  17. 제11항 내지 제16항 중 어느 한 항에 있어서,
    상기 프로세서는 헤드 유닛으로부터 분리된 터치 컨트롤러 프로세서 내에 구현되고,
    상기 방법은,
    상기 터치 컨트롤러 프로세서에 의해, 상기 터치 스크린에서의 상기 터치와 대응하는 상기 식별된 가상 위젯의 위치 또는 상태를 나타내는 위젯 메시지를 생성하는 단계; 및
    상기 위젯 메시지를 상기 터치 컨트롤러 프로세서로부터 상기 히트 유닛으로 전송하는 단계를 포함하는, 방법.
  18. 제17항에 있어서, 상기 터치 컨트롤러 프로세서에 의해 상기 헤드 유닛으로 전송되는 상기 위젯 메시지는 터치 관련 위치, 회전, 터치된/터치되지 않은 상태, 또는 상기 가상 위젯 상의 검출된 터치들의 수 중 적어도 하나를 나타내는, 방법.
  19. 제17항 또는 제18항에 있어서,
    상기 방법은, 상기 터치 컨트롤러 프로세서에 의해, 검출된 터치 위치, 터치 힘, 또는 상기 터치스크린 상의 상기 검출된 터치의 다른 측정 가능한 태양의 함수로서 상기 가상 위젯의 터치 관련 상태를 식별하는 단계를 포함하고,
    상기 터치 컨트롤러 프로세서에 의해 생성되는 상기 위젯 메시지는 상기 가상 위젯의 상기 식별된 터치 관련 상태를 나타내는, 방법.
  20. 제11항 내지 제19항 중 어느 한 항에 있어서, 상기 방법은, 상기 터치 스크린에서, 복수의 상이한 GUI 페이지들을 선택적으로 디스플레이하는 단계를 포함하며, 각각의 GUI 페이지는 가상 위젯들의 상이한 세트를 포함하는, 방법.
  21. 비일시적 머신 판독 가능 매체를 포함하는 제조 물품으로서, 상기 매체는 명령어들을 포함하며, 상기 명령어들은 실행될 때 제11항 내지 제20항의 방법들 중 어느 한 방법을 수행하도록 구성되는, 제조 물품.
KR1020207005377A 2017-10-24 2018-10-23 구성 가능한 가상 위젯들을 포함하는 터치 감지 사용자 인터페이스 KR102556638B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762576563P 2017-10-24 2017-10-24
US201762576383P 2017-10-24 2017-10-24
US62/576,383 2017-10-24
US62/576,563 2017-10-24
US16/165,136 2018-10-19
US16/165,136 US10866697B2 (en) 2017-10-24 2018-10-19 Touch-sensitive user-interface including configurable virtual widgets
PCT/US2018/057103 WO2019084002A1 (en) 2017-10-24 2018-10-23 TACTILE USER INTERFACE COMPRISING CONFIGURABLE VIRTUAL SOFTWARE GADGETS

Publications (2)

Publication Number Publication Date
KR20200071721A true KR20200071721A (ko) 2020-06-19
KR102556638B1 KR102556638B1 (ko) 2023-07-17

Family

ID=66169316

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207005377A KR102556638B1 (ko) 2017-10-24 2018-10-23 구성 가능한 가상 위젯들을 포함하는 터치 감지 사용자 인터페이스
KR1020207005378A KR102627023B1 (ko) 2017-10-24 2018-10-24 촉각 피드백 구조들 및 대응하는 가상 사용자 인터페이스 요소들을 포함하는 터치스크린

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207005378A KR102627023B1 (ko) 2017-10-24 2018-10-24 촉각 피드백 구조들 및 대응하는 가상 사용자 인터페이스 요소들을 포함하는 터치스크린

Country Status (7)

Country Link
US (2) US10866697B2 (ko)
JP (2) JP7181929B2 (ko)
KR (2) KR102556638B1 (ko)
CN (2) CN111052060B (ko)
DE (2) DE112018005206T5 (ko)
TW (2) TWI787372B (ko)
WO (2) WO2019084002A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330544B2 (en) * 2012-11-20 2016-05-03 Immersion Corporation System and method for simulated physical interactions with haptic effects
DE102017214941A1 (de) 2017-08-25 2019-02-28 Dometic Sweden Ab Freizeitfahrzeug, Kühlvorrichtung, Steuerungssystem und Verfahren zur Steuerung der Kühlvorrichtung
USD936665S1 (en) * 2018-11-21 2021-11-23 Biosense Webster (Israel) Ltd. Portion of a computer screen with a graphical user interface
US11126341B2 (en) * 2019-02-21 2021-09-21 Htc Corporation Object manipulating method, host device and computer readable storage medium
USD919633S1 (en) * 2019-05-14 2021-05-18 Rasimo Systems LLC Display screen with graphics
TWI807372B (zh) * 2020-07-21 2023-07-01 美商酷比公司 虛擬化用戶介面設備
JP7432746B2 (ja) 2020-09-08 2024-02-16 アルプスアルパイン株式会社 入力装置
US11385777B2 (en) 2020-09-14 2022-07-12 UiPath, Inc. User interface (UI) mapper for robotic process automation
EP3971691A1 (en) * 2020-09-18 2022-03-23 Dometic Sweden AB A recreational vehicle user interface
CN112596612A (zh) * 2020-12-28 2021-04-02 北京小米移动软件有限公司 触感反馈生成方法、触感反馈生成装置及存储介质
US11662822B1 (en) * 2021-12-20 2023-05-30 Huawei Technologies Co., Ltd. Systems and methods for generating pseudo haptic feedback
CN114911383A (zh) * 2022-06-02 2022-08-16 亿咖通(湖北)技术有限公司 窗口显示方法和车载终端
CN117608424B (zh) * 2024-01-24 2024-04-12 江苏锦花电子股份有限公司 一种基于物联网的触摸式旋钮屏管控系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110099498A1 (en) * 2009-10-26 2011-04-28 Barkol Omer Graphical user interface hierarchy generation
KR20130103664A (ko) * 2010-04-23 2013-09-24 임머숀 코퍼레이션 햅틱 효과를 제공하는 시스템 및 방법
KR20140064647A (ko) * 2012-11-20 2014-05-28 임머숀 코퍼레이션 햅틱 효과를 동반한 시뮬레이트된 물리적 상호작용을 위한 시스템 및 방법
JP2017058887A (ja) * 2015-09-15 2017-03-23 株式会社リコー 表示入力装置、画像形成装置及び電子機器と表示制御方法並びにプログラム

Family Cites Families (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004221757A (ja) * 2003-01-10 2004-08-05 Renesas Technology Corp 動き検出装置及び探索領域形状可変動き検出器
GB0313808D0 (en) * 2003-06-14 2003-07-23 Binstead Ronald P Improvements in touch technology
KR100958490B1 (ko) * 2004-07-30 2010-05-17 애플 인크. 사용자 인터페이스 방법, 미디어 항목들을 통해 스크롤하는방법, 디스플레이 및 터치 스크린을 갖는 사용자-조작되는전자 장치 상에서 수행되는 방법, 디스플레이 및 터치감지 입력 장치를 갖는 컴퓨팅 장치 상에서 수행되는 방법,컴퓨팅 시스템, 컴퓨팅 장치, 터치 감지 장치를 통해플로팅 컨트롤을 기동시키는 컴퓨터 구현 방법 및 컴퓨터구현 방법
US7657100B2 (en) * 2005-05-09 2010-02-02 Like.Com System and method for enabling image recognition and searching of images
US8578282B2 (en) * 2006-03-15 2013-11-05 Navisense Visual toolkit for a virtual user interface
CN104965621B (zh) * 2006-06-09 2018-06-12 苹果公司 触摸屏液晶显示器及其操作方法
US7791594B2 (en) * 2006-08-30 2010-09-07 Sony Ericsson Mobile Communications Ab Orientation based multiple mode mechanically vibrated touch screen display
US20090115734A1 (en) * 2007-11-02 2009-05-07 Sony Ericsson Mobile Communications Ab Perceivable feedback
AR064377A1 (es) * 2007-12-17 2009-04-01 Rovere Victor Manuel Suarez Dispositivo para sensar multiples areas de contacto contra objetos en forma simultanea
US8456438B2 (en) * 2008-01-04 2013-06-04 Tactus Technology, Inc. User interface system
US8928621B2 (en) * 2008-01-04 2015-01-06 Tactus Technology, Inc. User interface system and method
US8243038B2 (en) * 2009-07-03 2012-08-14 Tactus Technologies Method for adjusting the user interface of a device
US8547339B2 (en) * 2008-01-04 2013-10-01 Tactus Technology, Inc. System and methods for raised touch screens
US8922502B2 (en) * 2008-01-04 2014-12-30 Tactus Technology, Inc. User interface system
US8922503B2 (en) * 2008-01-04 2014-12-30 Tactus Technology, Inc. User interface system
US8970403B2 (en) * 2008-01-04 2015-03-03 Tactus Technology, Inc. Method for actuating a tactile interface layer
US8553005B2 (en) * 2008-01-04 2013-10-08 Tactus Technology, Inc. User interface system
US9557915B2 (en) * 2008-01-04 2017-01-31 Tactus Technology, Inc. Dynamic tactile interface
US8004501B2 (en) * 2008-01-21 2011-08-23 Sony Computer Entertainment America Llc Hand-held device with touchscreen and digital tactile pixels
US9829977B2 (en) * 2008-04-02 2017-11-28 Immersion Corporation Method and apparatus for providing multi-point haptic feedback texture systems
US8115745B2 (en) * 2008-06-19 2012-02-14 Tactile Displays, Llc Apparatus and method for interactive display with tactile feedback
US8659555B2 (en) * 2008-06-24 2014-02-25 Nokia Corporation Method and apparatus for executing a feature using a tactile cue
TW201005262A (en) * 2008-07-29 2010-02-01 Mitac Int Corp Navigation system
US20100060568A1 (en) * 2008-09-05 2010-03-11 Apple Inc. Curved surface input device with normalized capacitive sensing
US10289199B2 (en) * 2008-09-29 2019-05-14 Apple Inc. Haptic feedback system
JP2010086236A (ja) 2008-09-30 2010-04-15 Casio Computer Co Ltd タッチパネル
CA2681856A1 (en) * 2008-10-07 2010-04-07 Research In Motion Limited A method and handheld electronic device having a graphic user interface with efficient orientation sensor use
US8245143B2 (en) * 2008-10-08 2012-08-14 Research In Motion Limited Method and handheld electronic device having a graphical user interface which arranges icons dynamically
US20100088632A1 (en) * 2008-10-08 2010-04-08 Research In Motion Limited Method and handheld electronic device having dual mode touchscreen-based navigation
US20100088654A1 (en) * 2008-10-08 2010-04-08 Research In Motion Limited Electronic device having a state aware touchscreen
US8760413B2 (en) * 2009-01-08 2014-06-24 Synaptics Incorporated Tactile surface
US8279184B2 (en) * 2009-01-27 2012-10-02 Research In Motion Limited Electronic device including a touchscreen and method
CN102349038B (zh) * 2009-03-12 2016-08-24 意美森公司 用于纹理引擎的系统和方法
KR101713358B1 (ko) * 2009-07-22 2017-03-07 임머숀 코퍼레이션 제어 제스처의 입력 동안에 가상 장비의 제어에 관한 복합 햅틱 자극을 제공하기 위한 시스템 및 방법
US8421761B2 (en) * 2009-08-26 2013-04-16 General Electric Company Imaging multi-modality touch pad interface systems, methods, articles of manufacture, and apparatus
US8730199B2 (en) * 2009-09-04 2014-05-20 Atmel Corporation Capacitive control panel
JP5704428B2 (ja) * 2009-11-18 2015-04-22 株式会社リコー タッチパネル装置及びタッチパネル装置の制御方法
US8619035B2 (en) * 2010-02-10 2013-12-31 Tactus Technology, Inc. Method for assisting user input to a device
EP2559164B1 (en) * 2010-04-14 2014-12-24 Frederick Johannes Bruwer Pressure dependent capacitive sensing circuit switch construction
GB201011146D0 (en) * 2010-07-02 2010-08-18 Vodafone Ip Licensing Ltd Mobile computing device
US8963874B2 (en) * 2010-07-31 2015-02-24 Symbol Technologies, Inc. Touch screen rendering system and method of operation thereof
US8576171B2 (en) * 2010-08-13 2013-11-05 Immersion Corporation Systems and methods for providing haptic feedback to touch-sensitive input devices
US8311514B2 (en) * 2010-09-16 2012-11-13 Microsoft Corporation Prevention of accidental device activation
US20120105354A1 (en) * 2010-10-31 2012-05-03 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Tactile Feedback Cover Lens for a Capacitive Touchscreen System
US20120256862A1 (en) * 2011-04-11 2012-10-11 Kurt Wagner Touchscreen guide
US20120268386A1 (en) * 2011-04-19 2012-10-25 Karamath James Robert Touch-screen device including tactile feedback actuator
US20120284631A1 (en) * 2011-05-02 2012-11-08 German Lancioni Methods to adapt user interfaces and input controls
US8717151B2 (en) * 2011-05-13 2014-05-06 Qualcomm Incorporated Devices and methods for presenting information to a user on a tactile output surface of a mobile device
US20120274596A1 (en) * 2011-07-11 2012-11-01 Ludwig Lester F Use of organic light emitting diode (oled) displays as a high-resolution optical tactile sensor for high dimensional touchpad (hdtp) user interfaces
US9671954B1 (en) * 2011-07-11 2017-06-06 The Boeing Company Tactile feedback devices for configurable touchscreen interfaces
CA2844615C (en) * 2011-08-09 2019-01-15 Blackberry Limited Manipulating screen layers in multi-layer applications
JP5948074B2 (ja) * 2012-02-13 2016-07-06 株式会社日立ハイテクノロジーズ 画像形成装置及び寸法測定装置
US8493354B1 (en) * 2012-08-23 2013-07-23 Immersion Corporation Interactivity model for shared feedback on mobile devices
US9471185B2 (en) * 2012-02-21 2016-10-18 Atmel Corporation Flexible touch sensor input device
US9626446B2 (en) * 2012-03-07 2017-04-18 Snap Trends, Inc. Methods and systems of advertising based on aggregated information of social networks within geographical locations via a network
US9046972B2 (en) * 2012-03-23 2015-06-02 Nokia Technologies Oy Structure for a tactile display
EP2850509A4 (en) 2012-05-16 2016-01-06 Tactus Technology Inc USER INTERFACE AND METHOD
JP5799908B2 (ja) * 2012-07-13 2015-10-28 株式会社デンソー タッチ式スイッチ装置
KR101916416B1 (ko) * 2012-07-30 2018-11-08 삼성전자주식회사 플렉서블 디스플레이 장치 및 그 디스플레이 방법
KR101427917B1 (ko) * 2012-08-27 2014-08-08 현대자동차 주식회사 변형 가능한 터치 스크린
US20140155690A1 (en) * 2012-12-05 2014-06-05 Ralph Clinton Morton Touchscreen Cunnilingus Training Simulator
US9323327B2 (en) * 2012-12-22 2016-04-26 Intel Corporation System and method for providing tactile feedback
KR102052153B1 (ko) * 2013-02-15 2019-12-17 삼성전자주식회사 보청기를 제어하는 휴대 단말 및 방법
KR102090964B1 (ko) * 2013-02-22 2020-03-19 삼성전자주식회사 터치 스크린에 디스플레이되는 아이콘을 제어하는 휴대 단말 및 방법
US9367938B2 (en) * 2013-02-28 2016-06-14 Nokia Technologies Oy Method and apparatus for automated real-time detection of overlapping painted markup elements
KR102154792B1 (ko) * 2013-02-28 2020-09-10 삼성전자주식회사 보호 케이스를 감지하는 방법 및 그 전자 장치
US9298324B1 (en) * 2013-03-11 2016-03-29 Amazon Technologies, Inc. Capacitive touch with tactile feedback
US9361074B2 (en) * 2013-03-15 2016-06-07 Keysight Technologies, Inc. Method for creating a user interface
JP6276385B2 (ja) * 2013-04-26 2018-02-07 イマージョン コーポレーションImmersion Corporation フレキシブルディスプレイのための、受動的剛性及び能動的変形の触覚出力装置
US9470919B2 (en) * 2013-05-14 2016-10-18 Microsoft Technology Licensing, Llc Methods for producing a glass-based non planar digital display
KR20140137616A (ko) * 2013-05-23 2014-12-03 삼성전자주식회사 다자간 대화를 제어하는 휴대 단말 및 방법
US9182864B2 (en) * 2013-06-03 2015-11-10 Rajkumari Mohindra Pressure sensitive projected capacitive touch sensing
US10120447B2 (en) * 2013-06-24 2018-11-06 Northwestern University Haptic display with simultaneous sensing and actuation
KR20150006235A (ko) * 2013-07-08 2015-01-16 삼성전자주식회사 결합된 ui 구성 요소를 제공하는 휴대 장치 및 그 제어 방법
US9092291B1 (en) * 2013-07-11 2015-07-28 Sprint Communications Company L.P. Dynamic updating and renaming virtual pre-installation stub applications
CN103455590B (zh) * 2013-08-29 2017-05-31 百度在线网络技术(北京)有限公司 在触屏设备中进行检索的方法和装置
US9176635B2 (en) * 2013-10-14 2015-11-03 Parade Technologies, Ltd. Virtual buttons for a touch interface
US20150109214A1 (en) * 2013-10-22 2015-04-23 Weidong Shi Methods and Apparatuses of touch-fingerprinting Display
US20150185946A1 (en) * 2013-12-30 2015-07-02 Google Inc. Touch surface having capacitive and resistive sensors
CN103793691A (zh) * 2014-01-28 2014-05-14 深圳市汇顶科技股份有限公司 指纹识别装置及具有其的移动终端
US10453371B2 (en) * 2014-02-07 2019-10-22 Samsung Electronics Co., Ltd. Multi-layer display with color and contrast enhancement
US10170030B2 (en) * 2014-02-07 2019-01-01 Samsung Electronics Company, Ltd. Dual-mode display
US10565925B2 (en) * 2014-02-07 2020-02-18 Samsung Electronics Co., Ltd. Full color display with intrinsic transparency
US10416801B2 (en) * 2014-04-08 2019-09-17 Atmel Corporation Apparatus, controller, and device for touch sensor hand-configuration analysis based at least on a distribution of capacitance values
US10031582B2 (en) * 2014-06-05 2018-07-24 Immersion Corporation Systems and methods for induced electrostatic haptic effects
WO2016002675A1 (ja) 2014-06-30 2016-01-07 日本電気株式会社 スイッチモジュール、電子機器、および、電子機器の製造方法
US9696806B2 (en) * 2014-07-02 2017-07-04 Immersion Corporation Systems and methods for multi-output electrostatic haptic effects
US9710063B2 (en) * 2014-07-21 2017-07-18 Immersion Corporation Systems and methods for determining haptic effects for multi-touch input
CN104156133B (zh) * 2014-09-01 2017-04-19 深圳市华星光电技术有限公司 一种单层互容式触摸面板及电容式触摸屏
US20160328065A1 (en) * 2015-01-12 2016-11-10 Rockwell Collins, Inc. Touchscreen with Dynamic Control of Activation Force
KR20160088764A (ko) * 2015-01-16 2016-07-26 삼성전자주식회사 플렉서블 디바이스 및 그 동작 방법
JP6251214B2 (ja) 2015-05-14 2017-12-20 株式会社東芝 電子機器、方法及びプログラム
US10416799B2 (en) * 2015-06-03 2019-09-17 Microsoft Technology Licensing, Llc Force sensing and inadvertent input control of an input device
CN105117245A (zh) 2015-08-04 2015-12-02 小米科技有限责任公司 卸载应用程序的方法和装置
US9798413B2 (en) * 2015-08-27 2017-10-24 Hand Held Products, Inc. Interactive display
US9874965B2 (en) * 2015-09-11 2018-01-23 Apple Inc. Transparent strain sensors in an electronic device
KR20170046912A (ko) * 2015-10-22 2017-05-04 삼성전자주식회사 정보 제공 방법 및 이를 지원하는 전자 장치
US10386940B2 (en) * 2015-10-30 2019-08-20 Microsoft Technology Licensing, Llc Touch sensing of user input device
US9875625B2 (en) * 2015-12-18 2018-01-23 Immersion Corporation Systems and methods for multifunction haptic output devices
US20170192457A1 (en) * 2015-12-31 2017-07-06 AAC Technologies Pte. Ltd. Touch panle, haptics touch display using same, and manufacturing method for making same
US9898903B2 (en) * 2016-03-07 2018-02-20 Immersion Corporation Systems and methods for haptic surface elements
WO2017172635A1 (en) * 2016-03-31 2017-10-05 Osisoft, Llc Event based data collection, integration, and presentation
CN109478113B9 (zh) * 2016-05-18 2022-03-25 森赛尔股份有限公司 用于检测和确认触摸输入的方法
US9916032B2 (en) * 2016-05-18 2018-03-13 Honeywell International Inc. System and method of knob operation for touchscreen devices
CN106200929B (zh) * 2016-06-30 2018-10-30 南京中电熊猫液晶显示科技有限公司 电容式触觉反馈显示装置、工作方法及其检测方法
CN109791961A (zh) * 2016-07-20 2019-05-21 Ib韩国有限公司 具有量子点的发光膜
KR102579132B1 (ko) * 2016-08-02 2023-09-18 삼성전자주식회사 디스플레이를 구비한 전자 장치
KR102535056B1 (ko) * 2016-08-03 2023-05-22 삼성전자 주식회사 전자 장치 및 터치 인식 방법
KR20180020374A (ko) * 2016-08-18 2018-02-28 한화테크윈 주식회사 이벤트 검색 시스템, 장치 및 방법
US10372214B1 (en) * 2016-09-07 2019-08-06 Apple Inc. Adaptable user-selectable input area in an electronic device
US10206044B2 (en) * 2016-09-08 2019-02-12 Microsoft Technology Licensing, Llc Display structure having a visual display and an audio output
KR102580327B1 (ko) * 2016-09-09 2023-09-19 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US10216335B1 (en) * 2016-10-18 2019-02-26 Google Llc Reducing false sensing of touchscreen inputs
US10209804B2 (en) * 2017-01-10 2019-02-19 Rockwell Collins, Inc. Emissive Display over resistive touch sensor with force sensing
US20180275757A1 (en) * 2017-03-23 2018-09-27 Immersion Corporation Systems and methods for in-cell haptics
EP3385831A1 (en) * 2017-04-04 2018-10-10 Lg Electronics Inc. Mobile terminal
US11334044B2 (en) * 2018-11-19 2022-05-17 Johnson Controls Tyco IP Holdings LLP Building system with semantic modeling based searching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110099498A1 (en) * 2009-10-26 2011-04-28 Barkol Omer Graphical user interface hierarchy generation
KR20130103664A (ko) * 2010-04-23 2013-09-24 임머숀 코퍼레이션 햅틱 효과를 제공하는 시스템 및 방법
KR20140064647A (ko) * 2012-11-20 2014-05-28 임머숀 코퍼레이션 햅틱 효과를 동반한 시뮬레이트된 물리적 상호작용을 위한 시스템 및 방법
JP2017058887A (ja) * 2015-09-15 2017-03-23 株式会社リコー 表示入力装置、画像形成装置及び電子機器と表示制御方法並びにプログラム

Also Published As

Publication number Publication date
TWI787372B (zh) 2022-12-21
DE112018005206T5 (de) 2020-06-18
TW201923544A (zh) 2019-06-16
CN111052060B (zh) 2023-11-24
CN111164549A (zh) 2020-05-15
CN111164549B (zh) 2023-11-03
DE112018004686T5 (de) 2020-06-04
WO2019084082A1 (en) 2019-05-02
US10747404B2 (en) 2020-08-18
JP7181929B2 (ja) 2022-12-01
US20190121435A1 (en) 2019-04-25
JP7269924B2 (ja) 2023-05-09
CN111052060A (zh) 2020-04-21
US20190121500A1 (en) 2019-04-25
TW201931076A (zh) 2019-08-01
KR102627023B1 (ko) 2024-01-18
KR20200071722A (ko) 2020-06-19
JP2021500677A (ja) 2021-01-07
US10866697B2 (en) 2020-12-15
TWI816706B (zh) 2023-10-01
KR102556638B1 (ko) 2023-07-17
WO2019084002A1 (en) 2019-05-02
JP2021500667A (ja) 2021-01-07

Similar Documents

Publication Publication Date Title
KR102556638B1 (ko) 구성 가능한 가상 위젯들을 포함하는 터치 감지 사용자 인터페이스
KR102316698B1 (ko) 사용자 인터페이스 요소들을 식별하기 위한 기술들 및 이를 사용하는 시스템들 및 디바이스들
US20120249475A1 (en) 3d user interface control
WO2014025910A1 (en) Sensor system and method for mapping and creating gestures
CN105556455B (zh) 用于触敏装置的动态上下文菜单
US9547381B2 (en) Electronic device and touch sensing method thereof
US10908775B2 (en) Method for quick navigation in a user interface, method for manufacturing a product from thermoplastic, plant control for quick navigation in a user interface and plant for manufacturing a product from thermoplastic
KR101777961B1 (ko) 멀티 터치 제스처를 인식하는 방법 및 시스템
KR102318556B1 (ko) 입력장치 및 그 제어방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant