스마트 장치 연결 API를 사용하여 장치 제어

업데이트: 2007년 11월

Microsoft Visual Studio에는 개발자가 응용 프로그램에서 일부 Core Connectivity의 기능을 활용할 수 있도록 하는 스마트 장치 연결 API가 포함되어 있습니다. Core Connectivity는 Microsoft Visual Studio, Microsoft Visual Studio Remote Tools, Microsoft Platform Builder 등의 제품에서 파일을 배포하고, 프로세스 및 플래시 장치를 시작하고, 스마트 장치에서 응용 프로그램을 디버깅하는 데 사용하는 통신 프레임워크입니다.

일반적으로 스마트 장치 연결 API는 장치 프로젝트의 원격 도구 등의 응용 프로그램을 작성하는 데 사용됩니다. 장치 연결 API를 사용하는 경우 장치의 연결 및 관리가 간단해지므로 개발자가 프로그래밍 논리에 더욱 집중할 수 있다는 장점이 있습니다. 스마트 장치 연결 API를 사용하면 다음 작업을 수행할 수 있습니다.

  • 사용 가능한 플랫폼 및 장치 나열

  • 로컬 데스크톱 컴퓨터와 대상 장치 간에 연결 설정

  • 응용 프로그램, 패키지 및 파일을 대상 장치로 배포

  • 대상 장치에서 프로세스 시작, 중지 및 열거

  • 데스크톱과 대상 장치 간에 데이터 교환

스마트 장치 연결 API를 사용하면 원격 도구를 작성하고 장치 관리 작업을 자동화할 수 있습니다.

일반적인 스마트 장치 연결 응용 프로그램 아키텍처

스마트 장치 연결 API를 사용하는 일반적인 데스크톱 응용 프로그램을 살펴보면 스마트 장치 연결 API를 효율적으로 파악할 수 있습니다.

  1. Microsoft.SmartDevice.Connectivity 네임스페이스를 사용하기 위해 데스크톱 응용 프로그램에서는 drive:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Bin\Microsoft.Smartdevice.Connectivity.dll에 대한 참조를 추가합니다.

  2. 응용 프로그램은 DatastoreManager를 만들어 Platform 개체 컬렉션을 열거하는 데 사용합니다. 각 Platform은 데스크톱 컴퓨터의 데이터 저장소에 설치되어 있는 Windows Mobile 5.0 Pocket PC 등의 플랫폼을 나타냅니다.

  3. 응용 프로그램은 Platform을 사용하여 Device 개체 컬렉션을 열거합니다. 각 Device는 Windows Mobile 5.0 Pocket PC 에뮬레이터 등 플랫폼에 속하는 장치 또는 에뮬레이터 중 하나를 나타냅니다.

  4. 응용 프로그램은 Device를 사용하여 장치에 대한 설명에 액세스하고, 장치를 제공하고, 장치에 연결합니다.

  5. 장치에 연결하고 나면 응용 프로그램은 FileDeployer를 사용하여 파일을 장치에 배포하거나 RemoteProcess를 사용하여 장치에서 프로세스를 시작하거나 중지합니다.

  6. 응용 프로그램은 FileDeployer, RemoteProcess 또는 Device에서 사용할 수 없는 사용자 지정 작업을 수행해야 하는 경우 RemoteAgent를 만들어 장치로 장치 에이전트를 배포하여 데이터를 교환할 수 있습니다. 장치 에이전트는 사용자가 작성하며 Microsoft.SmartDevice.DeviceAgentTransport 네임스페이스(Visual C# 또는 Visual Basic 장치 에이전트의 경우) 또는 DeviceAgentTransport.dll 라이브러리(Visual C++ 장치 에이전트)를 사용하는 스마트 장치 응용 프로그램입니다. RemoteAgent를 사용하여 배포하려면 장치 에이전트를 데스크톱 컴퓨터의 데이터 저장소에 추가 기능 패키지로 등록해야 합니다. 자세한 내용은 추가 기능 패키지 개요를 참조하십시오. 응용 프로그램은 다음 단계를 수행하여 장치 에이전트를 배포하고 에이전트와 통신합니다.

    1. 데스크톱 응용 프로그램이 RemoteAgent.Start를 호출하여 장치 에이전트를 배포 및 시작합니다.

    2. 장치 에이전트가 장치에서 실행되고 나면 IDeviceAgentTransport.AcknowledgeLaunch를 호출하여 연결을 인식합니다.

    3. 장치 에이전트가 IDeviceAgentTransport.AcceptConnectionEx를 호출하여 데스크톱의 패킷 스트림 요청을 수락합니다.

    4. 데스크톱 응용 프로그램이 RemoteAgent.CreatePacketStream을 호출하여 데이터 전송에 사용할 DevicePacketStream을 가져옵니다.

    5. 여기서 원격 응용 프로그램과 장치 에이전트는 Packet 또는 IPacket 개체를 해당하는 장치 패킷 스트림에서 읽고 써서 데이터를 교환합니다.

    장치 에이전트는 장치에서 실행되므로 장치에서 정보를 수집하고 장치를 조작할 수 있는 전체 프로그래밍 방식 액세스 권한이 있습니다.

    참고:

    이 항목의 윗부분에서 설명한 장치 에이전트는 Microsoft.SmartDevice.DeviceAgentTransport 및 .NET Compact Framework를 사용합니다. 관리되지 않는 장치측 스마트 장치 연결 API를 사용하여 관리되지 않는 장치 에이전트를 만들 수도 있습니다.

이 종류의 응용 프로그램을 만드는 방법에 대한 단계별 지침은 연습: 데스크톱 및 장치 응용 프로그램 사이에서 데이터 교환을 참조하십시오.

스마트 장치 연결 API의 파일 및 네임스페이스

스마트 장치 연결 API는 다음 요소로 구성됩니다.

  • 데스크톱 응용 프로그램에서 사용할 수 있는 Microsoft.SmartDevice.Connectivity 네임스페이스. (해당 위치는 drive:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Bin\Microsoft.Smartdevice.Connectivity.dll입니다.

  • Visual C# 또는 Visual Basic 장치 에이전트 응용 프로그램을 만드는 데 사용할 수 있는 Microsoft.SmartDevice.DeviceAgentTransport 네임스페이스. (해당 위치는 drive:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\Microsoft.Smartdevice.DeviceAgentTransport.dll입니다.

  • Visual C++ 장치 에이전트 응용 프로그램을 만드는 데 사용할 수 있는 관리되지 않는 장치측 스마트 장치 연결 API. (해당 위치는 drive:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\cpu\DeviceAgentTransport.dll입니다.

데이터 저장소의 정의

데이터 저장소는 컴퓨터에 설치되어 있는 플랫폼, 장치, 에뮬레이터 및 패키지에 대한 정보가 포함된 데스크톱 컴퓨터의 XML 파일 집합으로, Core Connectivity의 일부이며 Microsoft Visual Studio 또는 Microsoft Platform Builder와 함께 설치됩니다. 데이터 저장소의 내용은 Windows Mobile 같은 Windows CE를 기반으로 하는 SDK를 설치할 때마다 수정됩니다.

데이터 저장소는 drive:\Users\All Users\Microsoft\corecon\1.0(Windows Vista) 또는 drive:\Documents and Settings\All Users\Application Data\Microsoft\corecon\1.0(Windows XP)에 있습니다.

참고:

데이터 저장소 폴더의 파일을 수정하기 전에 데이터 저장소를 백업하십시오. 파일의 형식이 잘못되면 데이터 저장소가 손상되며 Visual Studio가 작동하지 않게 됩니다.

데이터 저장소의 addons 폴더만 수정해야 합니다. 자세한 내용은 추가 기능 패키지 개요를 참조하십시오.

참고 항목

기타 리소스

스마트 장치 연결 API 샘플