持續維護地址 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提供給開發人員。