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!");//输出提示信息

    }

  • 相关阅读:
    模拟器 | 如何安装ENSP,附上最详细的步骤,含安装软件!
    《平凡的世界》孙少平给妹妹孙兰香的信
    Date类添加一个新的方法,用prototype
    jquery动画相关函数
    斐波那契数列 递归调用
    怎样才能升天?
    jquery tabs切换插件
    vmware桥接共享的问题
    C#,mysql 添加数据的问题
    一根神奇的网线
  • 原文地址:https://www.cnblogs.com/421a/p/5838558.html
Copyright © 2011-2022 走看看