From e38654fe9eff4562da4f18f8f018aed7879d493c Mon Sep 17 00:00:00 2001
From: qixiaoning <jony.kee@outlook.com>
Date: 星期四, 21 八月 2025 15:02:17 +0800
Subject: [PATCH] 获取算力接口实现

---
 sysinfo-service/service/psutil.go     |   39 +++++++++++++++++++
 system-service/service/devInfoSync.go |   50 ++++++++++++------------
 2 files changed, 63 insertions(+), 26 deletions(-)

diff --git a/sysinfo-service/service/psutil.go b/sysinfo-service/service/psutil.go
index 0d6a332..cf9cc72 100644
--- a/sysinfo-service/service/psutil.go
+++ b/sysinfo-service/service/psutil.go
@@ -33,9 +33,35 @@
 		Stat.Mem = *meminfo
 	}
 
+
+	// Gpu
+	// agxGpuProcIface := "/sys/devices/gpu.0/load"
+
+	// if Exists(agxGpuProcIface) {
+	// 	fd, err1 := os.Open(agxGpuProcIface)
+	// 	if err1 == nil {
+	// 		var load int64
+	// 		fmt.Fscanf(fd, "%d", &load)
+	// 		// 妯℃嫙nvidia搴撶殑杈撳嚭
+	// 		Stat.Gpu = append(Stat.Gpu, gogpu.GpuUnitInfo{
+	// 			GpuMemoryTotal: 1000,
+	// 			GpuMemoryUsed:  load,
+	// 		})
+	// 		fd.Close()
+	// 	}
+	// } else {
+	// 	if gpuInfo, err := gogpu.Info(); err == nil {
+	// 		sort.Sort(gogpu.GPURank(gpuInfo.Info))
+	// 		Stat.Gpu = Stat.Gpu[0:0]
+	// 		for _, v := range gpuInfo.Info {
+	// 			Stat.Gpu = append(Stat.Gpu, v)
+	// 		}
+	// 	}
+	// }
+
 	// Gpu
 	agxGpuProcIface := "/sys/devices/gpu.0/load"
-	if _, err := os.Stat(agxGpuProcIface); !os.IsExist(err) {
+	if Exists(agxGpuProcIface){
 		fd, err1 := os.Open(agxGpuProcIface)
 		if err1 == nil {
 			var load int64
@@ -136,3 +162,14 @@
 
 	return Stat
 }
+
+func Exists(path string) bool {
+	_, err := os.Stat(path) //os.Stat鑾峰彇鏂囦欢淇℃伅
+	if err != nil {
+		if os.IsExist(err) {
+			return true
+		}
+		return false
+	}
+	return true
+}
diff --git a/system-service/service/devInfoSync.go b/system-service/service/devInfoSync.go
index 440e7a6..d813714 100644
--- a/system-service/service/devInfoSync.go
+++ b/system-service/service/devInfoSync.go
@@ -155,30 +155,30 @@
 
 	if diff {
 		// 鍚屾璁惧淇℃伅鍒板晢鍩�
-		if util.GetShopUrl() != "" {
-			body := util.Struct2Map(i)
-			url := "http://" + util.GetShopUrl() + "/data/api-d/device/syncDevToCloud"
-			header := map[string]string{
-				"Authorization": token,
-			}
-			data, err := util.DoPostRequest(url, util.CONTENT_TYPE_JSON, body, nil, header, 10*time.Second)
-			if err != nil {
-				logger.Error("send devInfo to cloud err:", err)
-				return
-			}
-			logger.Debug("syncDevToCloud result:", string(data))
-			var result bhomedbapi.Result
-			err = json.Unmarshal(data, &result)
-			if err != nil {
-				logger.Error("unmarshal err:", err)
-				return
-			}
-			if result.Success {
-				lstSync = &i
-			} else {
-				logger.Error("syncDevToCloud result:", result)
-			}
-		}
+		// if util.GetShopUrl() != "" {
+		// 	body := util.Struct2Map(i)
+		// 	url := "http://" + util.GetShopUrl() + "/data/api-d/device/syncDevToCloud"
+		// 	header := map[string]string{
+		// 		"Authorization": token,
+		// 	}
+		// 	data, err := util.DoPostRequest(url, util.CONTENT_TYPE_JSON, body, nil, header, 10*time.Second)
+		// 	if err != nil {
+		// 		logger.Error("send devInfo to cloud err:", err)
+		// 		return
+		// 	}
+		// 	logger.Debug("syncDevToCloud result:", string(data))
+		// 	var result bhomedbapi.Result
+		// 	err = json.Unmarshal(data, &result)
+		// 	if err != nil {
+		// 		logger.Error("unmarshal err:", err)
+		// 		return
+		// 	}
+		// 	if result.Success {
+		// 		lstSync = &i
+		// 	} else {
+		// 		logger.Error("syncDevToCloud result:", result)
+		// 	}
+		// }
 
 		//鏌ョ湅鏄惁鏈夌鐞嗚妭鐐圭鐞嗙潃姝ゅ彴璁惧
 		syncToDevManager(i)
@@ -289,7 +289,7 @@
 	return nil
 }
 
-//璁$畻鎸佺画鏃堕暱
+// 璁$畻鎸佺画鏃堕暱
 func timeSpan(startTime time.Time) string {
 	sp := time.Since(startTime)
 	day := strconv.Itoa(int(sp.Hours() / 24))      //澶╂暟

--
Gitblit v1.8.0