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

    }

  • 相关阅读:
    有点忙啊
    什么是协程
    HDU 1110 Equipment Box (判断一个大矩形里面能不能放小矩形)
    HDU 1155 Bungee Jumping(物理题,动能公式,弹性势能公式,重力势能公式)
    HDU 1210 Eddy's 洗牌问题(找规律,数学)
    HDU1214 圆桌会议(找规律,数学)
    HDU1215 七夕节(模拟 数学)
    HDU 1216 Assistance Required(暴力打表)
    HDU 1220 Cube(数学,找规律)
    HDU 1221 Rectangle and Circle(判断圆和矩形是不是相交)
  • 原文地址:https://www.cnblogs.com/421a/p/5838558.html
Copyright © 2011-2022 走看看