From e7b8a808c2274e9c4329092bb752c7ea5cb035fc Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 13 十二月 2021 14:20:20 +0800
Subject: [PATCH] 2021-12-13 1.优化发送,和认证失败错误码处理

---
 HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java |   90 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 79 insertions(+), 11 deletions(-)

diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
index ea90450..a175c06 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -9,6 +9,7 @@
 import androidx.recyclerview.widget.RecyclerView;
 
 import android.Manifest;
+import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.Log;
@@ -18,13 +19,17 @@
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
+import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
+import com.hdl.hdlsdk.device.DevicesListActivity;
+import com.hdl.sdk.common.config.TopicConstant;
 import com.hdl.sdk.common.event.EventListener;
 import com.hdl.sdk.common.exception.HDLLinkException;
 import com.hdl.sdk.common.utils.IdUtils;
 import com.hdl.sdk.common.utils.IpUtils;
 import com.hdl.sdk.common.utils.gson.GsonConvert;
 import com.hdl.sdk.connect.HDLLink;
+import com.hdl.sdk.connect.bean.LinkRequest;
 import com.hdl.sdk.connect.bean.LinkResponse;
 import com.hdl.sdk.connect.bean.request.AuthenticateRequest;
 import com.hdl.sdk.connect.bean.request.PropertyReadRequest;
@@ -32,6 +37,7 @@
 import com.hdl.sdk.connect.bean.response.GatewaySearchBean;
 import com.hdl.sdk.connect.callback.HDLLinkCallBack;
 import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
+import com.hdl.sdk.connect.config.HDLLinkConfig;
 import com.hdl.sdk.connect.socket.HDLAuthSocket;
 import com.hdl.sdk.connect.socket.HDLSocket;
 import com.hdl.sdk.connect.bean.request.DeviceControlRequest;
@@ -97,13 +103,16 @@
         beans.add(new DemoBean("璇诲彇鐘舵��"));
         beans.add(new DemoBean("鑾峰彇鍦烘櫙鍒楄〃"));
         beans.add(new DemoBean("鍦烘櫙鎺у埗"));
+        beans.add(new DemoBean("璁惧鍔熻兘鍒楄〃"));
+        beans.add(new DemoBean("UDP鍙戦��"));
+        beans.add(new DemoBean("TCP鍙戦��"));
         demoAdapter = new DemoAdapter(beans);
         rv.setAdapter(demoAdapter);
 
 
 //        final SocketOptions options = new SocketOptions();
 //
-        MessagePipeLine pipeLine = new MessagePipeLine();
+//        MessagePipeLine pipeLine = new MessagePipeLine();
 //        options.setHandleMessage(pipeLine);
 //        options.setEnabledHeartbeat(false);
 
@@ -143,10 +152,25 @@
                         //鑾峰彇鍦烘櫙鍒楄〃
                         controlScene();
                         break;
+                    case 8:
+                        //鍔熻兘鍒楄〃
+                        startDevicesListActivity();
+                        break;
+                    case 9:
+                        //UDP鍙戦��
+                        udpSend();
+                        break;
+                    case 10:
+                        //TCP鍙戦��
+                        tcpSend();
+                        break;
                 }
             }
         });
     }
+
+
+
     public void showToast(String text) {
         Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
     }
@@ -169,13 +193,6 @@
             @Override
             public void onMessage(Object msg) {
                 LinkResponse response = (LinkResponse)msg;
-                if(response != null){
-                    Log.i(TAG, "AllTopicsListener"
-                            + "\nTopic: " + response.getTopic()
-                            +"\n Data: " + response.getData());
-                    handleLinkResponse(response);
-                }
-
             }
         };
         HDLLink.getInstance().registerAllTopicsListener(allTopicsListener);
@@ -212,7 +229,6 @@
                 }.getType());
                 searchBean = response.getObjects();
             }
-
         }
         return searchBean;
     }
@@ -231,9 +247,16 @@
         tv.setText("寮�濮嬪叆缃戣璇�...");
         //璁よ瘉鎻愪氦鍙傛暟鍑嗗
 
+        //娴嬭瘯鏈嶅姟
         String spkStr = "ir.module";//浜у搧spk
         String macStr = "AA000000000000BB";//璁惧鍞竴MAC鍦板潃
         String secret = "87ae414b7a853f65";//閫氳繃spk鍜宮ac鎻愪氦浜戠璁よ瘉鍚庡垎閰嶇殑secret
+
+        //姝e紡鏈嶅姟鍣�
+//        String spkStr = "screen.mirror";//浜у搧spk
+//        String macStr = "AA000000000000AC";//璁惧鍞竴MAC鍦板潃
+//        String secret = "ee62124c151b737c";//閫氳繃spk鍜宮ac鎻愪氦浜戠璁よ瘉鍚庡垎閰嶇殑secret
+
         String mac_key = stringToMD5(stringToMD5(macStr + secret));
         String versionString = "HDL_V1.0.1";//
         String time = String.valueOf(System.currentTimeMillis());
@@ -241,7 +264,7 @@
         //1.璁剧疆璁よ瘉淇℃伅
         AuthenticateRequest.RequestBean requestBean = new AuthenticateRequest.RequestBean();
         requestBean.setMAC(macStr);
-        requestBean.setSupplier("HDL");
+        requestBean.setSupplier("raysgem");
         requestBean.setFirmwareVersion(versionString);
         requestBean.setHardwareModel("1956F");
         AuthenticateRequest.AuthBean authbean = new AuthenticateRequest.AuthBean();
@@ -256,7 +279,7 @@
         infoBean.setDeviceName("绾㈠瀹�");//璁惧鍚嶅瓧
         infoBean.setDeviceModel("HDL");//
         infoBean.setAccessMode("WIFI");
-        infoBean.setIPGateway("192.168.12.1");
+        infoBean.setIPGateway("192.168.88.1");
         infoBean.setIPAddress(IpUtils.getIP(this));
 
         infoBean.setOID("010105000000FE08");
@@ -313,6 +336,7 @@
             @Override
             public void onError(HDLLinkException e) {
                 tv.setText("缃戝叧涓嶅湪绾�");
+                responseTv.setText(e.getMsg());
             }
             @Override
             public void onSuccess(GatewaySearchBean gatewaySearchBean) {
@@ -464,4 +488,48 @@
     }
 
 
+    void startDevicesListActivity(){
+        Intent intent = new Intent(this, DevicesListActivity.class);
+        startActivity(intent);
+    }
+
+    /**
+     * TCP鍙戦�� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
+     */
+    private void tcpSend() {
+        String propertyDownTopic = String.format(TopicConstant.PROPERTY_DOWN, HDLLinkConfig.getInstance().getGatewayId());
+        String bodyStr = getPropertyDownBodyStr();
+        HDLLink.getInstance().tcpSendMsg(propertyDownTopic, bodyStr);
+    }
+
+    /**
+     * 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
+     */
+    private void udpSend() {
+        String propertyDownTopic = String.format(TopicConstant.PROPERTY_DOWN, HDLLinkConfig.getInstance().getGatewayId());
+        String bodyStr = getPropertyDownBodyStr();
+        HDLLink.getInstance().udpSendMsg(propertyDownTopic, bodyStr);
+    }
+
+    private String getPropertyDownBodyStr(){
+        isOn = !isOn;
+        List<DeviceControlRequest> requestList = new ArrayList<>();
+        DeviceControlRequest request = new DeviceControlRequest();
+        request.setSid(testLightSid);
+        List<DeviceControlRequest.StatusBean>  statusBeanList= new ArrayList<>();
+        DeviceControlRequest.StatusBean bean =  new DeviceControlRequest.StatusBean();
+        bean.setKey("on_off");
+        bean.setValue(isOn ? "on" : "off");
+        statusBeanList.add(bean);
+        request.setStatus(statusBeanList);
+        requestList.add(request);
+        String time = String.valueOf(System.currentTimeMillis());
+
+        final BaseLocalResponse<List<DeviceControlRequest>> data = new BaseLocalResponse<>();
+        data.setId(IdUtils.getUUId());
+        data.setTime_stamp(time);
+        data.setObjects(requestList);
+
+        return GsonConvert.getGson().toJson(data);
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0