From 9f9e16bc9b4caecf741339a0699d784558fbc738 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 21 十一月 2023 19:15:31 +0800
Subject: [PATCH] 2023年11月21日19:15:18

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java |  135 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 107 insertions(+), 28 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java
index d858f8c..96a2d53 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java
@@ -1,5 +1,10 @@
 package com.hdl.photovoltaic.other;
 
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.IBinder;
 import android.text.TextUtils;
 
 
@@ -13,10 +18,19 @@
 import com.hdl.linkpm.sdk.ota.bean.DeviceFirmwareBean;
 import com.hdl.linkpm.sdk.ota.bean.DownloadUrlBean;
 import com.hdl.linkpm.sdk.ota.bean.GatewayDriverBean;
+import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.internet.HttpClient;
+import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer;
+import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpService;
+import com.hdl.photovoltaic.internet.TcpClient;
 import com.hdl.photovoltaic.internet.api.HttpApi;
+import com.hdl.photovoltaic.internet.api.TopicApi;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.listener.LinkCallBack;
+import com.hdl.photovoltaic.utils.AppManagerUtils;
+import com.hdl.sdk.link.common.exception.HDLLinkException;
+import com.hdl.sdk.link.core.callback.HDLLinkCallBack;
 
 import java.lang.reflect.Type;
 import java.util.ArrayList;
@@ -45,6 +59,23 @@
         }
         return sHdlOtaLogic;
     }
+
+    /**
+     * Intent涓撻棬鍚姩鏈湴鏈嶅姟
+     *
+     * @return Intent
+     */
+    public Intent getIntent() {
+        return intentServer;
+    }
+
+    public void setIntent(Intent intent) {
+        this.intentServer = intent;
+    }
+
+    private Intent intentServer = null;
+
+    private ServiceConnection mServiceConnection = null;
 
     //region -----鍥轰欢鍗囩骇---------
 
@@ -381,47 +412,27 @@
      *
      * @param driverVersionId 椹卞姩鐗堟湰Id
      */
-    public void getDeviceDriverDownloadUrl(String driverVersionId, CloudCallBeak<String> callBack) {
-//        "driverCode":"029B9988",
-//                "driverName":"鏍稿績灞�",
-//                "imageId":"12345678",
-//                "version":"V01.02.20"
+    public void getDeviceDriverDownloadUrl(String driverVersionId, CloudCallBeak<DownloadUrlBean> callBack) {
+
         String requestUrl = HttpApi.POST_OTA_GET_LinkDeviceDriverDownloadUrl;
         JsonObject json = new JsonObject();
         json.addProperty("driverVersionId", driverVersionId);
         HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
             @Override
-            public void onSuccess(String json) {
-
-                if (TextUtils.isEmpty(json)) {
+            public void onSuccess(String s) {
+                if (TextUtils.isEmpty(s)) {
                     if (callBack != null) {
-                        callBack.onSuccess("-2");
+                        callBack.onSuccess(new DownloadUrlBean());
                     }
                     return;
                 }
                 Gson gson = new Gson();
                 Type typeOfT = new TypeToken<DownloadUrlBean>() {
                 }.getType();
-                DownloadUrlBean downloadUrlBean = gson.fromJson(json, typeOfT);
-                if (downloadUrlBean == null) {
-                    if (callBack != null) {
-                        callBack.onSuccess("-2");
-                    }
-                    return;
+                DownloadUrlBean downloadUrlBean = gson.fromJson(s, typeOfT);
+                if (callBack != null) {
+                    callBack.onSuccess(downloadUrlBean);
                 }
-                getDeviceDriverDownloadFile(downloadUrlBean.getDownloadUrl(), new CloudCallBeak<DownloadUrlBean>() {
-                    @Override
-                    public void onSuccess(DownloadUrlBean obj) {
-                        String full = HdlFileLogic.getInstance().getDriveRootPath() + "/" + driverVersionId;
-                        HdlFileLogic.getInstance().writeFile(full, obj.toString());
-                    }
-
-                    @Override
-                    public void onFailure(HDLException e) {
-
-                    }
-                });
-
             }
 
             @Override
@@ -446,4 +457,72 @@
 
 
     //endregion
+
+    /**
+     * 鏈湴鍗囩骇鍖呮帹閫�(鍛婅瘔缃戝叧涓嬭浇鍗囩骇鍖呭湴鍧�绛変俊鎭�)
+     *
+     * @param mac          鐗╃悊璁惧mac
+     * @param oid          鐗╃悊璁惧oid
+     * @param module       妯″潡淇℃伅
+     * @param version      鐗堟湰鍙�
+     * @param size         鍗囩骇鍖呭ぇ灏�
+     * @param url          鍗囩骇鍖呬笅杞藉湴鍧�(瀛樺偍鍦ㄦ湰鍦�)
+     * @param sign_method  md5鍔犲瘑瀛楃涓�
+     * @param linkCallBack -
+     */
+    public void pushUpgradePacketInfo(String mac, String oid, String module, String version, String size, String url, String sign_method, LinkCallBack<String> linkCallBack) {
+        String requestUrl = TopicApi.SET_GATEWAY_UPGRADE_INFO;
+        JsonObject json = new JsonObject();
+        json.addProperty("oid", oid);// 鐗╃悊璁惧oid
+        json.addProperty("module", module);//妯″潡淇℃伅
+        json.addProperty("version", version);//鐗堟湰鍙�
+//        json.addProperty("is_diff", is_diff);//true=澧為噺鍖咃紝false=鍏ㄩ噺鍖�
+        json.addProperty("size", size);//鍗囩骇鍖呭ぇ灏�
+        json.addProperty("url", url);//鍗囩骇鍖呬笅杞藉湴鍧�
+        json.addProperty("sign_method", sign_method);//鍗囩骇鍖呯鍚嶇被鍨�:md5
+        TcpClient.getInstance().sendDataToLinkGateway(mac, requestUrl, json, "", new HDLLinkCallBack() {
+            @Override
+            public void onSuccess(String msg) {
+                if (linkCallBack != null) {
+                    linkCallBack.onSuccess(msg);
+                }
+
+            }
+
+            @Override
+            public void onError(HDLLinkException e) {
+                if (linkCallBack != null) {
+                    linkCallBack.onError(e);
+                }
+            }
+        });
+    }
+
+
+    /**
+     * 鍚姩鏈湴鏈嶅姟
+     */
+    public void startLocalService(ServiceConnection serviceConnection) {
+        //鏈湴
+        //1,寤虹珛鏈湴鏈嶅姟锛�
+        //2锛屽憡璇夌綉鍏虫墜鏈篿p鍜岀鍙o紱
+        //瀹炰緥鍖� 鑾峰彇ip 鍦板潃
+        MyNanoHttpServer.getInstance(AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()));
+        //MyNanoHttpServer.getInstance("127.0.0.1");
+        intentServer = new Intent();
+        intentServer.setClass(HDLApp.getInstance(), MyNanoHttpService.class);
+        this.mServiceConnection = serviceConnection;
+        //鍚姩鏈嶅姟鐩戝惉
+        HDLApp.getInstance().bindService(intentServer, serviceConnection, Context.BIND_AUTO_CREATE);
+    }
+
+    /**
+     * 鍏抽棴鏈湴鏈嶅姟
+     */
+    public void unLocalService() {
+        if (intentServer != null && this.mServiceConnection != null) {
+            HDLApp.getInstance().unbindService(this.mServiceConnection);
+        }
+    }
+
 }

--
Gitblit v1.8.0