HelloX成功与中国移动物联网平台对接

经过HelloX项目组同仁的努力,尤其是Tywin(@飓风)的努力下,HelloX最新版本V1.78已成功与中国移动OneNET(open.iot.10086.cn)物联网平台完成对接。这标志着HelloX操作系统又向物联网领域的应用迈出了一大步。

OneNET平台是中国移动物联网公司推出的专门针对物联网设备提供服务的云平台,只要遵循OneNET的接入协议,任何终端都可以与OneNET通过Internet进行对接。目前,OneNET平台支持RestFul和EDP等接入方式,HelloX采用EDP方式接入OneNET。

与传统嵌入式操作系统接入方式不同的是,接入代码是作为一个独立应用程序而存在的,不是与操作系统内核编译在一起。这与通用操作系统类似,接入代码被编译为一个独立的应用程序(EXE文件),存储在外部存储介质上。如果希望接入云平台,只需要运行这个平台特定的程序即可。运行完毕后,会动态卸载掉。这种方式可确保平台代码与操作系统内核的独立性,同时便于接入更多的云平台。据不完全统计,当前已经商用的物联网云平台,就已经达到了160多个。如何有效整合这些不同的云平台,解决“紧耦合”的问题,是物联网领域的一个难题。HelloX操作系统通过动态加载和卸载的方式,试图解决这个问题。

下面是接入过程的一些抓图。首先,在运行HelloX的终端上(这里是虚拟机),运行平台接入应用程序(./run.bat是运行云平台接入应用的批处理文件):

这时候,云平台的客户端代码就会与OneNET平台建立网络连接,然后采用JSON方式,向云平台传递数据。上图中,我们每隔两秒钟,把HelloX的本地网卡的报文收发统计信息,上传到云平台。

通过OneNET的手机客户端,就可以查看设备上传的数据了。下面的图示,展示了HelloX接收到的数据报文字节数(每隔两秒钟统计一次,OneNET的iPhone客户端还需要加把劲啊):

可以看出,大部分情况下,每2秒钟接收的字节数,在400字节左右。但是也会偶尔有突发的情况,比如有时候竟然达到了11万左右的字节。这时候网络应该是有突发的广播流量。

感兴趣的朋友,可以实际体验一下。大致步骤如下:

1.      到github上下载最新的代码(github.com/hellox-project/HelloX_OS)。代码中的/bin目录下,有创建好的虚拟硬盘文件(vdisk.rar),解压后可直接引导VirtualBox虚拟机;

2.      创建并配置VirtualBox虚拟机,并完成网络设置(参照下列文章完成网络设置:http://blog.csdn.net/hellochina15/article/details/48013881)。然后用vdisk来引导虚拟机;

3.      引导完成之后,在字符命令行下,运行命令“./run.bat”(注意反斜杠前面也有一个点),即可加载OneNET平台代码,并开始向OneNET发送数据(只传送网络统计数据,不涉及任何个人信息);

4.      这时候,到OneNET平台上去看一下对应的设备情况,应该能够看到最新更新的数据。链接如下:http://open.iot.10086.cn/device/detail?pid=20423&device_id=151403

如果您希望尝试修改OneNET的接入代码,可以用VisualStudio(2010以上版本)打开/iotcloud/cmcc/edp下的工程,进行代码修改即可。

后续HelloX会与更多的云平台进行对接,逐渐丰富云平台层面的生态链。为了方便开发者和终端用户,在HelloX的源代码中,专门创建了一个iotcloud的目录,用于存放成功对接的云平台客户端代码。所有最新的代码,已正式发布到github上,欢迎感兴趣的朋友下载试验。

最后,欢迎有志于物联网操作系统开发和推广应用的朋友加入我们,让我们一起构筑物联网时代的数字神经。

QQ群:38467832,为了给群成员提供更好的交流环境,拒绝垃圾广告,加入时请说明加入目的。

最新文章

  1. TypeScript Handbook 1——基本类型(翻译)
  2. java中异常注意的细节1
  3. BroadcastReceiver的最简单用法
  4. UVA 10523 Very Easy!!!(大数据加法、乘法)
  5. plsql 连接oralce数据库,报ora 12557 tns 协议适配器不可加载错误
  6. 使用面向 iOS 的本机插件扩展
  7. jQuery Custom Selector JQuery自定义选择器
  8. SpringFramework_module
  9. sqlite3API函数
  10. eval和列表解析的一处陷阱
  11. Java异常处理机制难点解惑-用代码说话
  12. 获得ztree的所有子节点id
  13. Laravel 5.3 单用户登录的简单实现
  14. PEM routines:PEM_read_bio:no start line
  15. Android View 绘制流程
  16. ubuntu无法关机,卡死
  17. java多线程 -- Condition 控制线程通信
  18. fiddler手机端抓包配置
  19. C编译相关
  20. 数组相关方法积累(vue\ag等特别常用)

热门文章

  1. VMware虚拟机中Hadoop服务的端口无法访问的问题
  2. MyEclipse 安装JRebel进行热部署
  3. JAVA 获取系统环境变量
  4. c++ 钻石继承
  5. JAVA WEB中如何让数据库连接对开发人员完全透明?
  6. hdu 1333 Smith Numbers
  7. 360 chrome 国际版能够隐藏用户保存的密码
  8. docker: "build" requires 1 argument. See 'docker build --help'.
  9. 【Linux高频命令专题(17)】head
  10. VIM树状文件列表NERDTree