From 3ffe2050827482ba83a1c15afbf346275be86187 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 20 十月 2022 18:03:40 +0800
Subject: [PATCH] 首页改造,完成cpu,内存,网络图

---
 src/main/java/com/genersoft/iot/vmp/utils/SystemInfoUtils.java |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/utils/SystemInfoUtils.java b/src/main/java/com/genersoft/iot/vmp/utils/SystemInfoUtils.java
index d107331..3af4853 100644
--- a/src/main/java/com/genersoft/iot/vmp/utils/SystemInfoUtils.java
+++ b/src/main/java/com/genersoft/iot/vmp/utils/SystemInfoUtils.java
@@ -8,6 +8,7 @@
 import oshi.software.os.OperatingSystem;
 import oshi.util.FormatUtil;
 
+import java.text.DecimalFormat;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -62,21 +63,32 @@
      * 鑾峰彇缃戠粶涓婁紶鍜屼笅杞�
      * @return
      */
-    public static Map<String,String> getNetworkInterfaces() {
+    public static Map<String,Double> getNetworkInterfaces() {
         SystemInfo si = new SystemInfo();
         HardwareAbstractionLayer hal = si.getHardware();
-        List<NetworkIF> networkIFs = hal.getNetworkIFs();
-        int i= networkIFs.size() -1;
-        NetworkIF net= networkIFs.get(i);
+        List<NetworkIF> beforeRecvNetworkIFs = hal.getNetworkIFs();
+        NetworkIF beforeBet= beforeRecvNetworkIFs.get(beforeRecvNetworkIFs.size() - 1);
+        long beforeRecv = beforeBet.getBytesRecv();
+        long beforeSend = beforeBet.getBytesSent();
+        try {
+            Thread.sleep(1000);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+        List<NetworkIF> afterNetworkIFs = hal.getNetworkIFs();
+        NetworkIF afterNet = afterNetworkIFs.get(afterNetworkIFs.size() - 1);
 
-        String in  = FormatUtil.formatBytes(net.getBytesRecv());
-        String out = FormatUtil.formatBytes(net.getBytesSent());
-        HashMap<String, String> map = new HashMap<>();
-        map.put("in",in);
-        map.put("out",out);
+        HashMap<String, Double> map = new HashMap<>();
+        // 閫熷害鍗曚綅: Mbps
+        map.put("in",formatUnits(afterNet.getBytesRecv()-beforeRecv, 1048576L));
+        map.put("out",formatUnits(afterNet.getBytesSent()-beforeSend, 1048576L));
         return map;
     }
 
+    public static double formatUnits(long value, long prefix) {
+        return (double)value / (double)prefix;
+    }
+
     /**
      * 鑾峰彇杩涚▼鏁�
      * @return

--
Gitblit v1.8.0