Windows Embedded 8.1 Industry 의디바이스연결 API 활용하기 토어앱을만든다는것은마이크로소프트가개발한모바일플랫폼을사용하여앱을만든다는것이다. Windows Embedded 플랫폼에서도윈도우스토어앱을제작하여배포할수있다. 최근윈도우의업데이트인 Windo

Similar documents
PowerPoint 프레젠테이션

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint - chap01-C언어개요.pptx


고객 카드

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

이제 IT 기술은새로운인터페이스를갖추고혁신적이면서도탁월한경험을우리에게선사한다. 음성인식, 모션인식과같은다양한휴먼인터페이스들이이미사용되고있으며다양한분야에응용되고있다. 이러한추세와함께인간과 IT 기술의새로운교감을가능케하는 Kinect for Windows 에대해서소개해볼까

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

오토 2, 3월호 내지최종

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Windows Live Hotmail Custom Domains Korea

H3250_Wi-Fi_E.book

OT S / SOFTWARE UEFI 와 GPT 기반의 Windows Embedded 8.1 Industry 이미지백업및배포 이수경대리 MDS 테크놀로지 / 새로운운영체제의등장과스토리지의빠른발전으로최근시스템은기존의 BIOS (Basic

게시판 스팸 실시간 차단 시스템

백서2011표지


52 l /08

[Brochure] KOR_TunA

Cisco FirePOWER 호환성 가이드

서현수

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev

SBR-100S User Manual

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

JAVA PROGRAMMING 실습 08.다형성

Microsoft Word - LKP-RTD 사용자 설명서

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - Windows CE Programming_2008 [호환 모드]

Microsoft Word - src.doc

PowerPoint Presentation

vRealize Automation용 VMware Remote Console - VMware

PowerPoint Presentation

Microsoft PowerPoint - chap06-1Array.ppt

JVM 메모리구조

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.


목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

사용하기 전에 2

Windows Server 2012

1

Microsoft PowerPoint - Chap14_WPAN과 WiBro기술 [호환 모드]

일반적인 네트워크의 구성은 다음과 같다

TTA Journal No.157_서체변경.indd

API 매뉴얼

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

GBF-1257B 카스블루투스체지방계앱사용매뉴얼

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

금오공대 컴퓨터공학전공 강의자료

Musique(002~095).indd

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

11장 포인터

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Windows Embedded POSReady 7 이렇듯이미리테일시장에서는오래전부터대형마트나쇼핑몰등에서윈도우운영체제가많이적용되어사용되고있고, Windows Embedded POSReady 7 이새롭게출시됨에따라새로운운영체제로업그레이드하는기업들도늘고있는추세다. 최근의리테

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

개요

PowerPoint 프레젠테이션

KNK_C_05_Pointers_Arrays_structures_summary_v02

Windows 8에서 BioStar 1 설치하기

Motor Control Solution

KDTÁ¾ÇÕ-2-07/03

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

오토10. 8/9월호 내지8/5

고객카드

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<4D F736F F F696E74202D20332DC1F6B9DDC1A4BAB8BDC3BDBAC5DB>

iOS5_1±³

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.


슬라이드 1

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 권장 사양

슬라이드 1

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

MVVM 패턴의 이해

실용신안등록청구의범위청구항 1 안드로이드기반스마트폰앱 (Application Program, 애플리케이션프로그램 ) 을통하여제어장치를제어하는실습장치에있어서, 통신이설정된컴퓨터 (400) 로부터전송되는안드로이드기반스마트폰앱을저장하는메모리 (130) 와, 상기스마트폰앱에의

슬라이드 1

Cloud Friendly System Architecture

untitled

놀이동산미아찾기시스템

Endpoint Protector - Active Directory Deployment Guide

PowerPoint Presentation

Microsoft PowerPoint - ch07 - 포인터 pm0415

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

설계란 무엇인가?

<C6F7C6AEB6F5B1B3C0E72E687770>

슬라이드 1

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - additional01.ppt [호환 모드]

Spring Boot

제11장 프로세스와 쓰레드

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

ConnectCore i.mx53 / Wi-i.MX53 Freescale i.mx53 Cortex A8 system-on-module 네트워크가가능한 i.mx53 ConnectCore는새로운프리스케일 i.mx53 Application 프로세서기반인고성능 32-bit S

주의사항 이 설명서는 해당 기기의 적절한 사용을 위한 중요한 안전 지침 및 정보가 포함되어 있습니다. 제품을 사용하기 전에 사고 방지를 위해서 반드시 설명서를 주의 깊게 읽어주세요. 본 제품은 정전압식 스크린을 사용하므로, 사용자는 손가락 또는 정전압용 도구를 사용하세

Transcription:

O S / SOFTWARE 이미지출처 : hdwallpaperstop.com Windows Embedded 8.1 Industry 의디바이스연결 API 활용하기 유정현 chris@mdstec.com MDS 테크놀로지 / Microsoft Embedded MVP 모바일플랫폼은컴퓨터시장에서나아갈방향을넘어대세가되었다. 모바일플랫폼지원을위해많은칩제조사들은저전력플랫폼위에서 CPU 성능을최대한활용하는방안을제시하고있다. 또한터치인터페이스및 NUI(Natural User Interface) 등의모바일환경에맞는인터 페이스들역시모바일플랫폼에적용되고있다. 기존컴퓨터시대의절대강자인마이크로소프트도대세에따라모바일플랫폼을위한 Windows 8을 2012년 10월에출시하였고, 그로부터 1년이지난 2013년 10월대규모업데이트인 Windows 8.1 업데이트를진행하였다. 마이크로소프트는 Windows 8부터모바일플랫폼을위한새로운 API 셋인 WinRT를소개하였고, 이런 API들로만들어진앱들은 윈도우스토어앱 이라고불린다. 어플리케이션개발자가 WinRT API를이용하여어플리케이션을만든다는것, 즉윈도우스 46 Embedded World

Windows Embedded 8.1 Industry 의디바이스연결 API 활용하기 토어앱을만든다는것은마이크로소프트가개발한모바일플랫폼을사용하여앱을만든다는것이다. Windows Embedded 플랫폼에서도윈도우스토어앱을제작하여배포할수있다. 최근윈도우의업데이트인 Windows 8.1의업데이트가적용된 Windows Embedded 8.1 Industry를이용하여 Windows 8.1에서추가된기능들을사용할수있다. 임베디드시장에서디바이스들간통신은중요한이슈이다. 개인용 PC나태블릿과다르게임베디드디바이스들은여러가지주변장치들과연결되어동작되고데이터를교환하기때문이다. 주변장치를개발하는제조사들은그들이원하는기능에맞는디바이스들을제작하고디바이스들과통신하기위해드라이버를개발한다. 마이크로소프트가 in-box로제공하지않고디바이스제조사가개발하여배포하는디바이스를 커스텀 디바이스라고부른다. 커스텀디바이스들은주로 USB, 시리얼, 네트워크그리고블루투스등의인터페이스를이용하여 PC 들과통신한다. 이런커스텀디바이스들을윈도우스토어앱에서접근하고제어할수있을까? Windows 8.1뿐만아니라 Windows Embedded 8.1 Industry에서는커스텀디바이스들과통신하기위해다양한네임스페이스들이추가되었다. 새롭게추가된네임스페이스를통하여윈도우스토어앱에서커스텀디바이스들을어떻게접근하고제어하는지를 HID, 블루투스 RFCOMM 인터페이스를통해알아보고자한다. USB 디바이스지원 USB 통신을지원하는디바이스들은헤아릴수없을정도로많다. USB 스토리지, 휴대폰, 블랙박스, 내비게이션등다양한기능의디바이스들로존재한다. 또한이런디바이스들은 USB 인터페이스를통하여 PC와통신하고있다. 마이크로소프트는여러가지다양한 USB 디바이스들과통신을할수있도록 in-box 드라이버를윈도우에포함시켜지원하였으며 in-box 드라이버에포함되지않은 커스텀 USB 장치는각각의하드웨어제조사가커스텀드라이버나 Winusb.sys 파일을제공하여지원하였다. 윈도우의강점은 in-box 드라이버를비롯하여커스텀디바이스드라이버를제공하는 USB 인터페이스를지원하는기기들과자유롭게통신할수있는데에있다. 그리고기존데스크탑앱에서는 WinUSB 함수들을통해자유롭게접근하여단순데이터통신을비롯한펌웨어업데이트까지다양한행위들이수행될수있다. 그동안데스크탑앱에서이런커스텀 USB 장치에대한접근이자유로웠는데윈도우스토어앱에서는어떻게접근이가능할까? Windows Embedded 8.1 Industry에서는이런커스텀디바이스드라이버접근을위해 Windows.Device.Usb라는네임스페이스가추가되었다. 윈도우스토어앱에서는이네임스페이스를통하여윈도우가지원하는 in-box 디바이스접근및커스텀디바이스접근을할수있게되었다. HID 지원 HID(Human Interface Device) 는키보드, 마우스, 조이스틱등컴퓨터와사용자의직접적인상호작용을위한인터페이스를개발하기위해사용되었다. 그리고기본적인 HID 통신은주로 USB를통하여이루어졌다. 이런 USB를통한 HID 통신은현재기본적인기능을하는디바이스들외에많은종류의장치들을지원하는프로토콜로발전되었다. 예를들면, 산업용컨트롤러, 의료용측정기, 디스플레이컨트롤러등이있다. Windows Embedded 8.1 Industry에서는 Windows.Devices.HumanInterfaceDevice네임스페이스를제공한다. 윈도우스토어앱에서이네임스페이스를이용하여 HID 프로토콜을지원하는장치를검색하여제어할수있다. 하드웨어제조사들은이미 HID 프로토콜에대해잘알고있지만통신을하는방법을알기위해윈도우스토어앱의네임스페이스사용방법을알아야하며, 앱개발자는 HID를이용한통신을하기위한프로토콜, 디바이스의데이터시트이해가필요하다. 다음은 Windows.Devices.HumanInterfaceDevice의네임스페이스를통하여 USB 통신을지원하는 HID 디바이스를제어하는모습이다. 코드의예는 XAML과 C# 으로구성된윈도우스토어앱이다. 그리고 HID 프로토콜을지원하는디바이스는 USB 장난감액세서리인 USB 미사일런처 로준비하였다. www.embeddedworld.co.kr 47

O S / SOFTWARE 그림 1. USB HID 미사일런처의모습 HClient를통해얻은미사일런처의 Function Type 및 VID, PID를클래스로정의할수있다. 미사일런처의 VID와 PID는각각 0x2123, 0x1010으로확인되어아래와같이선언하였다. 윈도우스토어앱의매니페스트에서앱이 HID 디바이스를접근할수있게선언하고 VID, PID 를사용하여미사일런처클래스를만들었다면 HID 디바이스를검색하고, 초기화할수있는코 그림 3. 미사일런처클래스정의 윈도우스토어앱에는매니페스트파일이존재 한다. 이매니페스트파일안에로고의모양, 앱의이름등을정의할수있고특정장치디바이스접근을위한권한을지정할수도있다. 이번앱에서는 HID 리소스를접근할것을선언하고미사일런처의정보를정의하여접근할수있다. USB HID 미사일런처를 PC에연결하여미사일런처디바이스의 Function Type과 Device ID(VID, PID) 를 WDK 안에툴인 HClient를통해알아낼수있다. 그림 2. 윈도우스토어앱의매니페스트에디바이스접근권한및 Function Type 선언모습 그림 4. HID 디바이스초기화코드의예드를사용할수있다. HidDevice.GetDeviceSelector를사용하여미사일런처클래스의정보를가지고있는 selector 를생성하고, 현재 PC 에연결되어있는장비들과비교하여 selector와정보가맞는 HID 디바이스를생성한다. 그리고 FromIdAsync 함수를통하여연결된디바이스를열수있다. 윈도우스토어앱에는기존의.NET 개발자에게익숙하지않은몇몇의함수가존재하는데그중에서눈여겨봐야할부분이비동기함수이다. 48 Embedded World

Windows Embedded 8.1 Industry 의디바이스연결 API 활용하기 FindAllAsync, FromIdAsync 등함수의이름에 Async가들어간함수들은비동기함수이다. 비동기함수는주변장치들과통신할때쓰레드의낭비를줄이고, CPU를이용한연산에있어서는태스크를효율적으로다룰수있는기존의동기방식과비교했을때좀더유연한프로그래밍방법이고저전력플랫폼에적합한모델이다. Windows 8 이후로많은함수들이이런비동기함수로대체되었으므로개발자들은이부분을유의해서살펴보아야한다. 다음으로 HID 디바이스의초기화가끝났다면직접 HID 디바이스의버퍼에접근하여데이터를전달하여미사일런처를조정할수있다. HID 디바이스로의데이터전송은 Windows. Storage.Streams.DataWriter 클래스를통해전송할수있고데이터타입은 byte 타입의 9개의배열이전달되어야한다.( 각각 HID 디바이스의데이터배열의크기나키조합은다르므로디바이스들의데이터시트를참고하도록하자.) 데이터시트에따르면데이터의 2번째배열은항상 2로설정되어야하며, 디바이스를조정하는값은데이터의 3번째배열에설정되어야한다. 이 sendcommand 함수를이용하여미사일런처에미사일발사명령을내리려면 sendco mmand(0x10); 로변수를설정하여호출하면된다. 매개변수인 0x10의값은 buffer의세번째배열에입력되어 HID 디바이스에전송되면미사일런처에서미사일이발사된다. Bluetooth 디바이스지원 Windows 8.1의윈도우스토어앱은블루투스의 in-box 드라이버들 ( 오디오, 헤드셋, 핸즈프리등 ) 외에커스텀블루투스디바이스들과통신을위한 RFCOMM 통신방식을지원한다. 그림 6. HID 미사일런처데모앱실행모습 그림 5. HID 장비에데이터를보내는소스 블루투스의 RFCOMM 통신은 RS-232 통신을시뮬레이션하거나윈도우소켓통신을사용할수있는안정적인데이터통신방법이다. RS-232 통신방법이나소켓통신방법은블루투스를통하여통신할수있는가장간단한방법이기때문에커스텀블루투스디바이스통신에서많이쓰이는방법이다. 다음예제에서 Windows Embedded 8.1 Industry에서지원되는 Windows.Devices.Bluetooth.Rfcomm 네임스페이스를이용하여윈도우스토어앱이 RF- COMM 통신을이용하여블루투스디바이스를 www.embeddedworld.co.kr 49

O S / SOFTWARE 검색, 연결하고제어하는방법을살펴보도록한다. 블루투스 RFCOMM 통신을위하여스페로 (Sphero) 라는디바이스를사용하도록한다. 그림 7. 스페로의모습 페어링후 HID 디바이스앱과마찬가지로윈도우스토어앱에서매니페스트에블루투스RF- COMM 디바이스접근을위한권한을선언해야한다. 로 FindAllAsync, FromIdAsync 등의비동기API 가사용되었다. 그리고블루투스장치연결후데이터통신은소켓통신을이용하도록한다. 그림 10. 블루투스 RFCOMM 디바이스연결의모습 윈도우스토어앱이블루투스디바이스에접근 하려면최초에 Windows 8.1 PC 설정의 UI 에서 현재연결대기중인스페로와페어링작업이 이루어져야한다. 매니페스트수정후직접소스를통해현재 PC 에연결되어있는블루투스 RFCOMM 디바이그림 8. 스들을검색하고, 선택한블루투스 RFCOMM 장치를연결하는소스를아래에서확인할수있다. 사용되는 API는 HID 디바이스연결과마찬가지그림 9. 윈도우스토어앱의매니페스트에블루투스 RFCOMM 디바이스접근권한선언모습 블루투스 RFCOMM 디바이스의연결이성공했다면스페로는기본색상인파란색으로변하게된다. 여기에소켓통신을통해개발자는스페로를움직이거나색을바꾸는등여러가지동작을명령할수있다. 스페로에데이터를전송할때는스페로의데이터시트를참고하여명령할수있다. 다음은스페로에색을바꾸기위해명령하는예이다. 우선스페로의데이터시트를참고하여 Client Command Packets 의데이터구성을통해스페로에명령하는데이터구조를파악할수있다. 색을바꿀수있는명령데이터구조는 DID, CID, DLEN의데이터가각각 0x2, 0x20, 0x5 로설정이되어있어야하며색데이터 RGB 값을 <data> 에선언함으로써실제의색을바꿀수있다. 50 Embedded World

Windows Embedded 8.1 Industry 의디바이스연결 API 활용하기 그림 11. 스페로의색상을바꾸기위한데이터구조위에서확인한데이터구조에따라실제패킷을입력하는부분을 C# 코드로아래와같이사용할수있다. 그림 12. 블루투스디바이스에색을바꾸는소스 조가준비되어있다. 개발자가원하는스페로의 행위를명령하고자할때는스페로의데이터시 트를참고할수있다.. 신이윈도우스토어앱에서어떻게사용되는지살펴보았다. Windows Embedded 8.1 Industry 에서는위에서언급한통신외에도블루투스최신버전블루투스4.0을지원하는 GATT API를이용하여블루투스LE(low energy) 장비들과통신할수있다. 또한와이파이를이용한대용량파일전송기술인와이파이다이렉트, 3D 프린터지원등다양한인터페이스를통해다른디바이스들과의통신을지원한다. Windows Embedded 8.1 Industry에서제공하는 API를사용하면임베디드시장에서중요한이슈인디바이스들간통신을지원하는윈도우스토어앱을개발할수있을것이다. 이제 Windows Embedded에윈도우스토어앱을사용하여모바일환경에적합한앱을만들어보자. 설정된패킷을블루투스장비에보낼때역시 Windows.Storage.Streams.DataWriter 클래스를사용한다. 스페로의데이터시트를잘살펴보면색변경뿐만아니라스페로의회전, 움직임, 가속등여러가지명령을내릴수있는데이터구 마치며지금까지 Windows 8.1이적용된마이크로소프트임베디드OS인 Windows Embedded 8.1 Industry에서 USB, HID, 블루투스 RFCOMM 통 참고 MDS 테크놀로지홈페이지 : www.mdstec.com 윈도우임베디드솔루션 : www.embedsolution.com 윈도우임베디드개발자커뮤니티 : www.iwecom.co.kr www.embeddedworld.co.kr 51