开发者中心

Java agent参考

概述

针对不同设备套件的驱动程序,Java agent提供了QuarkIoE设备管理功能的一系列参考实现。有多种方式来应用Agent:

  • 和管理你的支持JAVA的设备一样使用。
  • 给新增的硬件添加驱动程序,作为你自己的基础实现来使用。
  • 在不同的环境里,作为实现设备管理的一个参考来使用。

Java agent支持Windows和Unix系统,包含下列功能:

  • 发现和硬件识别: 自动注册一个设备、包含其支持的功能、连接的传感器和控制。
  • 可用性管理: 确定一个设备是否按照预期连接,如果没有连接成功,则通知用户。
  • 软件管理: 升级设备上的软件,并在设备上启动新的软件。
  • Modem支持: 提供基本的modem信息和信号的数据 (IMEI, ICCID, cell ID, 信号强度, 误码率; 根据modem类型)。
  • 按照驱动的概念,实现高可扩展性。
  • 现成的驱动: 树莓派, PiFace DigitalTinkerforge

前提

需要安装Java SE 7。 为了验证你系统上是否安装了合适的JAVA版本, 输入:


    $ java -version
      java version "1.7.0_45"
                      

安装Java, 请访问 http://java.com。

安装

二进制包已有版本:树莓派, the Kontron M2MSSDK, Mac OS X, Linux 和 Windows。

在一个新的文件夹下解压你的包,用脚本"c8y-agent"来启动agent。如果需要更多调试信息, 运行脚本"c8y-agent-debug"或者修改文件cfg/logback.xml来获取更详细的日志。

配置

所有的配置文件位于cfg/目录下。

  1. "cumulocity.porperties"文件有下面类似的结构:

     
             host=<host>
             bootstrap.tenant = <bootstrap tenant>
             bootstrap.user = <bootstrap  username>
             bootstrap.password = <bootstrap password>
                               
    • "host" 是你的QuarkIoE实例的http/https地址。 默认指向http://developer.quarkioe.com/ , 这是QuarkIoE的生产环境。
    • "bootstrap.* "的属性定义了你的实例的 bootstrap用户。 默认值是默认的QuarkIoE的bootstrap用户。

      如果你的租户<tenant>.quarkioe.com在这里你不需要做任何修改。

      在树莓派上,这个文件是个链接指向/etc/cumulocity-agent.properties.

  2. "device.properties"文件包含设备连接到租户的证书。在QuarkIoE上注册用户的时候,会自动填充。如果你想把设备迁移到另外的租户,你必须删除这个文件的内容。

  3. "cumulocity-config.properties"包含放置在QuarkIoE前端的设备的具体配置。 下面是一个thinkerforge温度传感器连接到它的设备的配置示例:

     
         #Tue Apr 28 16:03:53 UTC 2015
         c8y_temperature.interval=5000
         c8y.log.eventLevel=INFO
         c8y.log.alarmLevel=ERROR
                               
    • "c8y_temperature.interval"属性定义了TinkerForge温度传感器的上报频率, 以毫秒计。
    • "c8y.log."属性定义了设备上报的事件和告警日志条目的严重性,可能出现的值包括:TRACE, DEBUG,INFO,WARN and ERROR*。

      这个文件是有设备自动创建的。

  4. "logback.xml"和"logback-debug.xml" 分别定义正常运行agent和debug状态下的日志信息。

在树莓派上,agent实现为service。 配置文件位于 /usr/share/cumulocity-rpi-agent/cfg/.

运行

注册设备

agent成功启动后, 在Web浏览器上打开QuarkIoE, 进入"注册"页面.。输入运行agent的设备ID 设备ID取决于设备类型。

  • 在树莓派上, ID是树莓派的序列号 (参见 说明).
  • 在Mac上, ID是Mac的序列号. 在菜单上点击Apple标志, "关于这台MAc", "更多信息" 来显示序列号。
  • 在Windows上, ID是你的PC的序列号。 在命令行运行 "wmic csproduct get identifyingnumber" 可以找到它。
  • 在其他Linux设备上或者作为备选, 也可以用网络接口的MAC地址。 用"ifconfig" 来显示网络接口,找到"HWaddr"条目。只用其中的数字,忽略冒号! MAC地址也经常被印刷在设备面板上。
监控连接

默认情况下,agent总是在线的, 这就是说, 它保持一个到QuarkIoE的连接来获取实时的操作。 因此在用户界面上agent的状态显示为"已连接"。如果连接断开,agent状态显示为"离线" 并且发送一个告警信息。

可用性
重启

重启正在运行agent的设备, 转到"控制"标签并且点击"重启"。

重启和配置
追踪

agent会在QuarkIoE上记录日志。 低严重程度的日志等级作为事件发送给QuarkIoE,并且在设备的"事件"标签上可以看到。高严重程度的日志级别记录为告警,出现在设备的"告警"标签页。 如果需要配置日志的文字显示,进入"控制"标签页,编辑配置。

  • "c8y.log.eventLevel" 是作为事件发送的日志条目的最低等级,默认值是"INFO".
  • "c8y.log.alarmLevel" 是作为告警发送的日志条目的最低等级,默认值是"ERROR".

合法的等级包括: "TRACE", "DEBUG", "INFO", "WARN" 和 "ERROR". "DEBUG" 或者"TRACE" 只用作故障排除。

追踪.

编译

编译前请确定最低要求JDK 1.7Maven 3。你可以检查通过运行:


    mvn -version
    javac -version
                      

你的Maven"settings.xml" 文件需要指向QuarkIoE的代码仓库这里。源码放在ttps://bitbucket.org/m2m/cumulocity-examples在目录 java-agent下。 为了编译agent,只需要运行:


    mvn clean install
                      

扩展

在新硬件和新设备上使用驱动程序扩展agent 需要下列步骤:

  • 创建JAVA类来实现接口驱动程序。
  • 用类和一个文本文件"META-INF/services/c8y.lx.driver.Driver"来创建JAR包。 文本文件需要包含完全合法的Java类的类名。
  • 部署JAR可以通过把文件拷贝到agent的"lib"目录下或者通过跨克云的软件管理。

BitBucket repository包含很多驱动程序的示例。JAVA客户端库描述在开发JAVA客户端

服务器端agent

BitBucket repository在目录"tracker-agent"也包含了一系列相近设备的完整的服务器端agent的例子。 Telic和Queclink的追踪设备可以用于这个例子,参见 "设备"。这个例子展示了在为移动设备开发服务器端功能的时候不同的解决方法。