【AllJoyn框架-01】连接PC与Arduino Due开发板

简介: 前言 从今天开始学习高通主打的物联网框架AllJoyn,并定期记录学习过程。由于目前网上教程很少,所以要认真阅读官方文档。下载回来的文档比较多,根据名字也不好判别先看哪个,后看哪个,所以目前就靠感觉先看一部分文档再说,若能看懂就照着做一遍,若看不懂就多看。大致原则就是先把部署过程熟悉,然后是基本概念,接着掌握SDK,最后才是源码的学习。本着开源分享的精神,学习笔记记录在此,以飨读者。

前言

从今天开始学习高通主打的物联网框架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标准客户端与运行在嵌入式设备的瘦客户端间的通信。


目录
相关文章
高通平台开发系列讲解(USB篇)USB端口的说明及切换方法
高通平台开发系列讲解(USB篇)USB端口的说明及切换方法
392 0
高通平台开发系列讲解(USB篇)USB端口的说明及切换方法
|
Ubuntu 网络协议 Linux
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
769 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
|
Ubuntu Linux 开发工具
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十一)第一次写驱动程序
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十一)第一次写驱动程序
234 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十一)第一次写驱动程序
|
网络协议 Unix Linux
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十六)网络通信
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十六)网络通信
184 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十六)网络通信
|
Linux C语言 芯片
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十二)LED硬件原理
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十二)LED硬件原理
130 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十二)LED硬件原理
|
Ubuntu Linux 编译器
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十七)具体单板的LED驱动程序
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十七)具体单板的LED驱动程序
166 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十七)具体单板的LED驱动程序
|
Ubuntu Linux API
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程
251 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(上)
|
Ubuntu Linux 测试技术
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程
324 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(下)
|
Linux 芯片
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(中)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程
194 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(中)
|
存储 Ubuntu 网络协议
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境
904 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境