/wilddog-client-openwrt

野狗在openwrt操作系统下的sdk。

Primary LanguageCMIT LicenseMIT

####wilddog-client-openwrt说明:

wilddog-client-openwrt 提供了一整套访问和操作野狗云端数据的 API,用户只需要在 OpenWRT 上安装,即可在应用中调用野狗提供的 API 访问野狗云端的数据.

#####1. 下载

从git下载到文件夹

git clone https://github.com/WildDogTeam/wilddog-client-openwrt.git

#####2. 部署到 OpenWRT 项目中 将wilddog-client-openwrt/tools/libwilddog文件夹拷贝到 OpenWRT 项目中的package/libs/目录下.

cp -rf wilddog-client-openwrt/tools/libwilddog  <your openwrt path>/package/libs/

#####3. 在 OpenWRT 项目下制作 ipk 并安装

  1. 在 OpenWRT 项目的根目录下运行make menuconfig

  2. Libraries目录下,选中libwilddog,并设置为 module(如果设置为built-in,则可忽略3、4两步,但需要将整个openwrt固件刷到设备中);

     {M} libwilddog........................................ A Library for real-time commuication.
    
  3. 运行 make,编译OpenWRT;

  4. 编译成功后,在bin目录下能找到libwilddog_x.x.x-x_xxxx.ipk

  5. 将这个 ipk 上传到 OpenWRT 中,并使用 opkg 命令安装

     opkg install libwilddog_x.x.x-x_xxxx.ipk
    

#####4. 范例使用

  1. wilddog-client-openwrt/examples/demo文件夹(以及其中的Makefile文件)拷贝到 OpenWRT 项目中的package/utils/目录下.

     cp -rf wilddog-client-openwrt/examples/demo  <your OpenWRT project path>/package/utils/
    
  2. 配置,生成demo.ipk,执行make menuconfig,在Utilities选中demo,并设置为module模式;

     <M> demo............................ demo -- demo show how to use libwilddog 
    
  3. 编译,如果链接时有些API找不到,请在examples/demo目录下的Makefile中增加DEPEND libgcc_eh。:

     make V=s
    
  4. 将编译出来的bin目录下的demo_x_xxxx.ipk上传到 OpenWRT 中,并使用 opkg 命令安装;

     opkg install demo_x_xxxx.ipk
    
  5. 使用 demo 获取数据,demo默认配置为大端,使用小端的设备可以参考下面的高级配置将参数改为小端:

     demo getValue -l coap://<appId>.wilddogio.com/YourPath 
    

    <appId>为在野狗上申请的应用名称.

  6. 该 demo 展示了如何获取、更新、删除野狗云端数据,具体使用请阅读源码.

#####5. 高级配置

可以在wilddog-client-openwrt/tools/libwilddog目录下的 Makefile 中对 SDK 进行配置。

define Build/Configure
 $(call Build/Configure/Default,--with-endian=big)
endef

在这里,可以在$(call Build/Configure/Default,--with-endian=big)中增加配置项:

--with-endian=ARG       大小端, ARG可设为big|little,  默认little
--with-bits=ARG         机器位数, ARG可设为8|16|32|64, 默认32
--with-maxsize=ARG      应用层协议长度, ARG可设为0~1300, 默认1280
--with-queuenum=ARG     消息队列个数, 默认32
--with-retranstime=ARG  重传超时时间(ms), 默认10000ms
--with-recvtimeout=ARG  单次最大接收时间(ms), 默认100ms
--with-sectype=ARG      加密方式, ARG可设为nosec|mbedtls|tinydtls, 默认tinydtls

例如,将$(call Build/Configure/Default,--with-endian=big)改为$(call Build/Configure/Default,--with-sectype=nosec --with-endian=big)后,重新make V=s,生成的ipk中,加密方式为未加密。

注意,Arduino Yun(ar71xx系列)是大端模式,如果在 Arduino Yun 上安装 SDK,需要配置--with-endian=big