zoukankan      html  css  js  c++  java
  • 团队博客4

        基于Zigbee网络的获取数据需要建立传感器数据接收监听器的进程,时刻监听是否有新数据上传,核心代码如下:

    //传感器数据接收监听器

    String sdat = new String(dat); //要发送的数据

    String s = "[" + MAC + "]<<" + sdat;//封装数据

    mSensorData.onSensorData(MAC, sdat);//调用类的方法获取数据

    if (mCurrentActivity != null) {

       //建立线程锁

    synchronized (mCurrentActivity) {

          String[] sMAC = mCurrentActivity.getMACAddress();//获取MAC地址

          for (String x : sMAC) {//循环整个MAC地址

                 if (x.equalsIgnoreCase(MAC)) {//判断MAC地址是否符合

                        String sdata = MAC + "=" + new String(sdat);//封装数据格式

                        String MACs = mUserConfig.getString(SmartHomeApplication.KEY_Monitor); //获取MAC地址

                        String mMACs[] = new String[] { "" };//定义MAC集合数组

                        if (MACs.length() > 0) {//解析信息

                               String[] b = MACs.split("=");//以=为分割标志,分割字符串

                               mMACs[0] = b[1];//第一个为MAC地址

                        }

                        if (MAC.equalsIgnoreCase(mMACs[0])) {//判断MAC的地址是否符合

                               mCurrentActivity.postSensorData(dat);//发送获取数据指令

                        } else {

                               mCurrentActivity.postSensorData(sdata).getBytes());//获取数据

                        }

                 }

          }

    }

    }

    基于Zigbee网络的发送数据时,该系统需要MqttMessage类中的方法,需要使用MQTT协议与Zigbee网络中的传感器进行通信。具体代码如下:

    //Android程序通过wsn连接Zigbee网络

    String topic = "/com/zonesion/wsn/control/" + mApplicationID + "/"+ addr;

    //初始化MqttMessage

    MqttMessage msg = new MqttMessage(dat);

    //发送0指令

    msg.setQos(0);

    if (mLocal.isConnected()) {//判断本地是否是连接的

       //本地发布

          mLocal.publish(topic, msg);

    } else if (mGlobal.isConnected()) {//判断全局是否是连接的

       //全局发布

          mGlobal.publish(topic, msg);

    } else {

          Log.d(TAG, "No mqtt server connected!");//输出提示信息

    }

  • 相关阅读:
    BDOC ROUTER
    web dom api中的Selection和Range
    基于第三方vuejs库组件做适配性个性开发
    香草js侦测元素是否离开视窗viewport
    xampp windows10下xdebug调试环境安装及配置
    beyond compare全文件夹比较,仅显示变化的文件
    给定制的vuejs组件添加v-model双向绑定支持
    javascript工厂函数(factory function)vs构造函数(constructor function)
    edrawmax使用技巧备忘
    babel plugin和presets是什么,怎么用?
  • 原文地址:https://www.cnblogs.com/421a/p/5838558.html
Copyright © 2011-2022 走看看