Leap Motion架構

來源:互聯網
上載者:User

持續維護地址 http://52coding.com/leap-motion-architecture

翻譯網頁 https://developer.leapmotion.com/documentation/GetStarted/Leap_Architecture.html

Leap Motion架構

Leap Motion體感控制器支援最流行的案頭作業系統。Leap Motion程式作為一個服務(在Windows中)或一個守護進程(在Mac和Linux中)。這個程式通過USB匯流排和Leap Motion體感控制器相連。基於Leap的應用程式通過Leap Motion服務來擷取運動追蹤資料。Leap Motion的SDK提供兩類API來擷取Leap Motion的資料。這些API可以讓你在多個語言下開發基於Leap的應用程式,包括在瀏覽器中運行JavaScript語言。

 

注意:Leap Motion 服務/守護進程通過TCP連接埠:127.0.0.1:5905來與應用程式通訊。這個地址-連接埠必須不是被防火牆或其它程式屏蔽的。

程式編程介面

Leap Motion SDK提供兩類API來從Leap Motion服務中來擷取追蹤資料,一個是原生介面,一個是網頁通訊端WebSocket。原生介面是一個可以讓你建立新的Leap應用程式的動態庫。而網頁通訊端介面和JavaScript用戶端庫使你可以建立基於Leap的應用。

Leap Motion的應用介面

應用程式介面通過動態連結程式庫提供。這個庫串連到Leap Motion服務,並且為您的程式提供追蹤資料。你在C++和Objective-C開發的應用中可以直接連結到庫中,或者通過Java,C#和Python的語言綁定連結。

是:基於Leap的應用程式

1.Leap Motion的服務通過USB匯流排,從Leap Motion控制器接收資料。它[這個服務]處理這些資訊,然後發送到正在啟動並執行Leap應用。預設情況下,服務僅僅向前台應用程式發送追蹤資料。但是,應用程式可以通過詢問方式,使得他們從後台也可接收資料(詢問可以被使用者否定)。

2.Leap Motion的設定對話方塊是和服務獨立的,它允許電腦使用者配置Leap Motion的安裝。在Windows下,這個配置程式是個控制台小程式,而在Mac X作業系統下是個菜單條。

3.前台Leap Motion應用程式從服務接受運動追蹤資料。一個Leap應用程式可以通過原生Leap Motion庫連結到Leap Motion服務。你的應用程式既可以通過C++和Objective-C直接連到原生庫上,也可以通過語言套件裝庫(Java,C#和Python)連結。

4.當一個Leap應用程式失去了作業系統焦點,Leap Motion服務則停止向它發送資料。經過請求許可,應用程式可以在後台接收資料。當運行在後台時,由前景程式配置。

Leap Motion網頁通訊端介面

Leap Motion的服務以網頁通訊端(WebSocket)在本地區6437連接埠下運行。網頁通訊端介面通過JSON資訊提供追蹤資料。一個JavaScript本地庫可以接受JSON訊息,並且把追蹤資料作為普通的JavaScript對象。

:Leap網頁應用程式

1.Leap Motion服務提供網頁通訊端服務,監聽http://127.0.0.1:6437。

2.Leap Motion的設定對話方塊運行使用者啟動或禁止網頁通訊端服務。

3.服務端以JSON資訊形式發送追蹤資料。一個應用程式可以向伺服器返回配置資訊。

4.leap.js用戶端JavaScript庫應該在網頁應用中使用。這個庫建立與伺服器的連結,並且接受JSON資訊。有JavaScript庫提供的API與原生API的結構類似。

 

這個介面主要目的是用於網頁應用,但是任何可以建立網頁通訊端的應用程式都能使用它。這個服務符合RFC6455。

程式設計語言支援

Leap Motion庫是由C++編碼的。Leap Motion還是用了SWIG,一個開源工具,來產生C#,Java和Python的語言綁定。SWIG產生的綁定可以翻譯綁定語言對於C++ Leap Motion庫的調用。每個SWIG綁定都使用兩個附加的庫。對於JavaScript和網頁程式的開發,Leap Motion提供了一個網頁通訊端服務和一個用戶端JavaScript庫。

在開發Leap應用程式和外掛程式時,需要的所有的庫、代碼和標頭檔都包含在Leap Motion的SDK裡,除了leap.js的用戶端JavaScript庫。你尅通過Leap Motion開發門戶網站來下載Leap Motion SDK。對於任何支援的作業系統,SDK壓縮包都有提供。JavaScript客戶庫是獨立的,可以從LeapJS GitHub repository下載。

C++

用C++開發Leap Motion控制器應用,你需要在你的程式中,加入API標頭檔並且連結上Leap Motion庫,根據作業系統,可能是libLeap.dylib,Leap.dll或者是libLeap.so等。

Objective-C

Objective-C應用由手寫的封裝代碼提供。為了建立一個Objective-C的Leap應用程式,你需要在程式中包含C++標頭檔,然後是封裝標頭檔和Objective-C++代碼檔案。你可以使用在封裝中定義的純Objective-C類。將你的程式連結上libLeap.dylib並且匯入在你應用程式套件組合下的庫。

C#

C#類的定義由獨立的庫分別提供.NET 3.5和.NET 4.0環境。你的代碼既可以參考LeapCSharp.NET3.5.dll,也可以參考LeapCSharp.NET4.0.dll(在所有支援的作業系統下,都使用同樣名稱的庫)。這些庫載入libCSharp.dylib(Mac),LeapCSharp.dll(Windows)或者libLeapCSharp.so(Linux)。中間庫載入libLeap.dylib,Leap.dll或者libLeap.so(依賴於系統)。

使用.NET3.5庫來進行Unity 3D遊戲的程式開發。Leap Motion SDK提供了一個Unity開發環境的”Pro”版本的Unity外掛程式。查看知識庫的文章,確認各個版本的Unity editor是否支援關於開發Leap應用的外掛程式。

Java

Leap.jar包含Leap Motion的Java類。這個代碼載入libLeapJava.dylib(Mac),LeapJaval.dll(Windows)或者libLeapJava.so(Linxu)。這些包含原生代碼的庫可以將Java函數的翻譯成在libLeap.dylib,Leap.dll或者libLeap.so的基本Leap Motion API。基本Leap Motion動態庫可以通過中間庫載入。

Python

Leap.py包含Python模組,你可以在你的Python應用程式中使用。這個模組載入LeapPython.so(Mac和Linxu)或者LeapPython.dll(Windows)。這些庫載入libLeap.dylib,Leap.dll或者libLeap.so。

JavaScript

Leap Motion JavaScript有兩個重要組成部分。第一個部分是網頁通訊端伺服器,由Leap Motion服務提供。這個伺服器允許網頁應用(或者任何可以連結到網頁通訊端的程式)來擷取以JSON格式資訊的Leap Motion追蹤資訊。第二個部分是JavaScript用戶端庫,Leap.js。Leap.js是一個開源JavaScript API可以接受網頁通訊端JSON輸出,並且以物理上和結構上都與原生Leap MotionAPI類似的形式呈現。

其它程式設計語言

其它社會建立的語言綁定版本可以從連結看到。

作業系統的支援

Leap Motion程式目前支援OS X 10.6和Windows 7+。還有一些實驗中的alpha版本的Linux SDK提供給開發人員。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.