999
技術社區[雲棲]
【AllJoyn框架-01】連接PC與Arduino Due開發板
前言
從今天開始學習高通主打的物聯網框架AllJoyn,並定期記錄學習過程。由於目前網上教程很少,所以要認真閱讀官方文檔。下載回來的文檔比較多,根據名字也不好判別先看哪個,後看哪個,所以目前就靠感覺先看一部分文檔再說,若能看懂就照著做一遍,若看不懂就多看。大致原則就是先把部署過程熟悉,然後是基本概念,接著掌握SDK,最後才是源碼的學習。本著開源分享的精神,學習筆記記錄在此,以饗讀者。
1、AllJoyn介紹
AllJoyn是一個中性平台係統,旨在簡化鄰近異構分布式移動通信網絡係統。這裏的異構性不僅表示不同的設備,而且可以是具有不同操作係統和不同類型的設備(例如個人電腦、手機、平板電腦和消費性電子產品),並且使用不同的通信技術。
2、需提前準備的資料
文檔方麵,網上資料並不多,隻能求助於官方文檔了,其分成了好幾塊,並不是完整的PDF。另外,源碼是必須要有的,包括核心目錄alljoyn_core、瘦客戶端目錄ajtcl等,文檔中已給出了下載路徑。在今天這個實驗中,我重點看的文檔是以下兩個:
Configuring the Thin Client BuildEnvironment (Arduino + Ethernet Shield).pdf
configuring_the_build_envir_windows_xp_and_windows_7.pdf
硬件方麵,alljoyn支持的平台還是挺多的,在這裏我們就可看到它支持arduino。所以我選擇的硬件平台是Arduino Due + 以太網擴展板
工具軟件就采用arduino-1.5.6,其支持Due板
3、安裝AJTC庫到Arduino IDE
首先下載安裝scons,不過先要把python安裝好,它被安裝到了python的Scripts文件夾中。正如上麵第二個文檔所說,我們要添加scons命令到環境變量
然後下載uncrustify,並且添加環境變量
最後進入到瘦客戶端目錄ajtcl,執行:scons TARG=arduino
那麼就會在當前目錄的build目錄下生成arduino_due\libraries\AllJoyn,就可以在IDE中導入AllJoyn目錄了
4、在Due中運行alljoyn瘦客戶端實例AJ_LedService
選擇文件-例子-AllJoyn-AJ_LedService,連接好硬件,點上傳即可
5、在win7運行AllJoyn標準客戶端AJSC
進入alljoyn_core目錄,執行以下命令:scons OS=win7 CPU=x86 MSVC_VERSION=11.0 BINDINGS=cpp
一段時間過後,在build目錄下就會有文件生成了
文檔中說,若要將AJTC代碼連接到AJSC,需要設置ALLJOYN_DIR環境變量到alljoyn目錄,它是alljoyn_core的上一層目錄
6、進入alljoyn_core\build\win7\x86_64\debug\dist\cpp\bin,執行例子ledctrl.exe:
保證剛才上傳到Due板的AJ_LedService在運行,此時在上圖命令行中輸入on或off,就可使得板上led燈亮或滅。與此同時,在IDE的串口終端我們可以觀察到相關輸出:
在板上運行的其實是一個alljoyn bus object(服務),其向外公開了on和off方法。一旦有客戶端連接到服務並循環接收命令時,on和off方法就會被調用。甚至當我們輸入flash 100時,LED燈就會每100ms閃爍,這也就實現了運行在windows下alljoyn標準客戶端與運行在嵌入式設備的瘦客戶端間的通信。
最後更新:2017-04-03 07:57:12