bean-sdk-android, 威盛官方蓝光 SDK,通过冲压实现

分享于 

7分钟阅读

GitHub

  繁體 雙語
Punch Through Design's SDK for speeding up development with the LightBlue Bean development platform
  • 源代码名称:bean-sdk-android
  • 源代码网址:http://www.github.com/PunchThrough/bean-sdk-android
  • bean-sdk-android源代码文档
  • bean-sdk-android源代码下载
  • Git URL:
    git://www.github.com/PunchThrough/bean-sdk-android.git
    Git Clone代码到本地:
    git clone http://www.github.com/PunchThrough/bean-sdk-android
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/PunchThrough/bean-sdk-android
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    面向Android的 LightBlue SDK

    Circle CI

    通过 LightBlue Bean开发平台加速开发的冲床 SDK。 构建与你的bean交谈的Android应用程序。

    安装

    如果你使用的是 Android Studio,你可以通过在Gradle构建文件中添加一个依赖项来向项目添加。

    你的项目生成文件的Gradle位于 /path/to/YOUR_PROJECT_HERE/app/build.gradle 请注意,这里文件是 app 文件夹的inside。

    在Gradle构建文件中,将 Bean SDK添加到 dependencies 块中:

    dependencies {
     ...
     compile 'com.punchthrough.bean.sdk:sdk:v.v.v'...
    }

    注意:请确保你用有效的版本号替换了 v.v.v 上面 !

    此外,Bean对 18的API要求最低。 请确保通过在Gradle构建 file: 中编辑以下内容来正确配置这一

    android {
     ...
     defaultConfig {
     ...
     minSdkVersion 18 }
    }

    然后与Gradle和 Android Studio 同步,将从 Maven 中心安装 Bean SDK。

    的用法和示例

    查看我们的文档了解更多关于SDK方法的Bean可用性的信息。

    下拉列表附近的Bean

    这个Fragment使用 BeanManager 和监听器 Pattern 在发现bean和发现过程完成时提供回调。

    finalList<Bean> beans =newArrayList<>();BeanDiscoveryListener listener =newBeanDiscoveryListener() {
     @OverridepublicvoidonBeanDiscovered(Beanbean, intrssi) {
     beans.add(bean);
     }
     @OverridepublicvoidonDiscoveryComplete() {
     // This is called when the scan times out, defined by the. setScanTimeout(int seconds) methodfor (Bean bean : beans) {
     System.out.println(bean.getDevice().getName()); //"Bean" (example)System.out.println(bean.getDevice().mAddress); //"B4:99:4C:1E:BC:75" (example) }
     }
    };BeanManager.getInstance().setScanTimeout(15); // Timeout in seconds, optional, default is 30 secondsBeanManager.getInstance().startDiscovery(listener);

    读取设备信息

    以下代码段将连接到 Bean,并使用设备信息服务( DIS ) BLE配置文件读取它的设备信息。

    // Assume we have a reference to the 'beans' ArrayList from 上面.finalBean bean = beans[0];BeanListener beanListener =newBeanListener() {
     @OverridepublicvoidonConnected() {
     System.out.println("connected to Bean!");
     bean.readDeviceInfo(newCallback<DeviceInfo>() {
     @OverridepublicvoidonResult(DeviceInfodeviceInfo) {
     System.out.println(deviceInfo.hardwareVersion());
     System.out.println(deviceInfo.firmwareVersion());
     System.out.println(deviceInfo.softwareVersion());
     }
     });
     }
     // In practice you must implement the other Listener methods...};// Assuming you are in an Activity, use 'this' for the contextbean.connect(this, beanListener);

    blink LED显示屏

    这个Fragment假设你有一个连接 Bean 对象,比如从读取设备信息第二个。

    另外,你不应该 Thread.sleep(),这只是为了展示 LedColorBean API。

    
    LedColor blue = LedColor.create(0, 0, 255);
    
    
    LedColor off = LedColor.create(0, 0, 0);
    
    
    int sleep = 500;//Milliseconds
    
    
    
    try {
    
    
     bean.setLed(blue);
    
    
     Thread.sleep(sleep);
    
    
     bean.setLed(off);
    
    
     Thread.sleep(sleep);
    
    
    } catch (InterruptedException e) {
    
    
     e.printStackTrace()
    
    
    }
    
    
    
    

    上传草图

    这里示例不适用于新手用户。 our不处理从 .ino 文件编译到十六进制格式的草图。 为此,可以使用Arduino工具,如 platformio 或者构建工具。

    这个Fragment假设你有一个连接 Bean 对象,比如从读取设备信息第二个。

    首先,我们需要创建一个 SketchHex 对象。

    
    final String hexPath ="path/to/intel/hex/file"
    
    
    
    InputStream fileStream = getContext().getAssets().open(hexPath);
    
    
    StringWriter writer = new StringWriter();
    
    
    IOUtils.copy(fileStream, writer);
    
    
    
    //Finally, the SketchHex object
    
    
    SketchHex sketchHex = SketchHex.create(timestamp, writer.toString());
    
    
    
    

    接下来,定义 Callback<UploadProgress> 类型的回调,它将在绘制草图上载进度时返回回回。

    
    final CountDownLatch sketchLatch = new CountDownLatch(1);
    
    
    Callback<UploadProgress> onProgress = new Callback<UploadProgress>() {
    
    
     @Override
    
    
     public void onResult(UploadProgress result) {
    
    
     System.out.println("On Result:" + result);
    
    
     }
    
    
    };
    
    
    
    

    以及一个 Runnable 对象,当草图上传完成后将执行该对象。

    
    Runnable onComplete = new Runnable() {
    
    
     @Override
    
    
     public void run() {
    
    
     System.out.println("all done!");
    
    
     sketchLatch.countDown();
    
    
     }
    
    
    };
    
    
    
    

    最后,使用 Bean API上传草图 !

    
    bean.programWithSketch(sketchHex, onProgress, onComplete);
    
    
    
    
    开发和贡献

    查看的黑客文件读我们的开发者指南到 SDK。


    Light  SDK  bea  bean