孟令鑫 1 年之前
父节点
当前提交
62f069f00c
共有 48 个文件被更改,包括 2 次插入637 次删除
  1. 0 0
      aarch64/kinglong/common/config/c_cloud.go
  2. 0 0
      aarch64/kinglong/common/config/c_killrpcserver.go
  3. 0 0
      aarch64/kinglong/common/config/c_local.go
  4. 0 0
      aarch64/kinglong/common/config/c_oss.go
  5. 0 0
      aarch64/kinglong/common/config/c_platform.go
  6. 0 0
      aarch64/kinglong/common/config/c_ros.go
  7. 0 0
      aarch64/kinglong/common/config/yaml/cloud-config-v2253.yaml
  8. 0 0
      aarch64/kinglong/common/config/yaml/cloud-config-v2304.yaml
  9. 0 0
      aarch64/kinglong/common/config/yaml/local-config-soc1.yaml
  10. 0 0
      aarch64/kinglong/common/config/yaml/local-config-soc2.yaml
  11. 0 0
      aarch64/kinglong/common/init/common_init.go
  12. 0 0
      aarch64/kinglong/common/service/disk_clean.go
  13. 0 0
      aarch64/kinglong/common/service/kill_self.go
  14. 0 0
      aarch64/kinglong/common/service/rosbag_clean.go
  15. 0 0
      aarch64/kinglong/common/service/rosbag_record.go
  16. 0 0
      aarch64/kinglong/common/service/rosbag_upload.go
  17. 0 0
      aarch64/kinglong/control/main/control.go
  18. 0 0
      aarch64/kinglong/master/main/master.go
  19. 0 0
      aarch64/kinglong/master/package/config/master_trigger_cfg.go
  20. 0 0
      aarch64/kinglong/master/package/service/move_bag_and_send_window.go
  21. 0 0
      aarch64/kinglong/master/package/service/produce_window.go
  22. 0 0
      aarch64/kinglong/slave/main/slave.go
  23. 0 0
      aarch64/kinglong/slave/package/config/slave_tcp_config.go
  24. 0 0
      aarch64/kinglong/slave/package/service/accept_window.go
  25. 0 0
      aarch64/kinglong/slave/package/service/move_bag.go
  26. 0 0
      aarch64/pji/common/config/c_cloud.go
  27. 0 0
      aarch64/pji/common/config/c_killrpcserver.go
  28. 0 0
      aarch64/pji/common/config/c_local.go
  29. 0 0
      aarch64/pji/common/config/c_oss.go
  30. 0 0
      aarch64/pji/common/config/c_platform.go
  31. 0 0
      aarch64/pji/common/config/c_ros.go
  32. 0 0
      aarch64/pjisuv/common/config/c_cloud.go
  33. 0 0
      aarch64/pjisuv/common/config/c_killrpcserver.go
  34. 0 0
      aarch64/pjisuv/common/config/c_local.go
  35. 0 0
      aarch64/pjisuv/common/config/c_oss.go
  36. 2 2
      aarch64/pjisuv/common/config/c_platform.go
  37. 0 0
      aarch64/pjisuv/common/config/c_ros.go
  38. 0 101
      kinglong/common/cutil/u_http.go
  39. 0 33
      kinglong/common/cutil/u_io.go
  40. 0 9
      kinglong/common/cutil/u_time.go
  41. 0 13
      kinglong/common/ent/time_window.go
  42. 0 32
      kinglong/common/global/global.go
  43. 0 64
      kinglong/common/log/log_cfg.go
  44. 0 17
      kinglong/common/util/move_bag.go
  45. 0 33
      kinglong/common/util/parse_json.go
  46. 0 34
      kinglong/common/util/util_exec.go
  47. 0 67
      kinglong/common/util/util_io.go
  48. 0 232
      kinglong/common/util/utils.go

+ 0 - 0
kinglong/common/cfg/cloud_cfg.go → aarch64/kinglong/common/config/c_cloud.go


+ 0 - 0
kinglong/common/cfg/kill_rpc_server_cfg.go → aarch64/kinglong/common/config/c_killrpcserver.go


+ 0 - 0
kinglong/common/cfg/local_cfg.go → aarch64/kinglong/common/config/c_local.go


+ 0 - 0
kinglong/common/cfg/oss_cfg.go → aarch64/kinglong/common/config/c_oss.go


+ 0 - 0
kinglong/common/cfg/platform_cfg.go → aarch64/kinglong/common/config/c_platform.go


+ 0 - 0
kinglong/common/cfg/ros_cfg.go → aarch64/kinglong/common/config/c_ros.go


+ 0 - 0
kinglong/common/cfg/cloud-config-v2253.yaml → aarch64/kinglong/common/config/yaml/cloud-config-v2253.yaml


+ 0 - 0
kinglong/common/cfg/cloud-config-v2304.yaml → aarch64/kinglong/common/config/yaml/cloud-config-v2304.yaml


+ 0 - 0
kinglong/common/cfg/local-config-soc1.yaml → aarch64/kinglong/common/config/yaml/local-config-soc1.yaml


+ 0 - 0
kinglong/common/cfg/local-config-soc2.yaml → aarch64/kinglong/common/config/yaml/local-config-soc2.yaml


+ 0 - 0
kinglong/common/init/common_init.go → aarch64/kinglong/common/init/common_init.go


+ 0 - 0
kinglong/common/svc/disk_clean.go → aarch64/kinglong/common/service/disk_clean.go


+ 0 - 0
kinglong/common/svc/kill_self.go → aarch64/kinglong/common/service/kill_self.go


+ 0 - 0
kinglong/common/svc/rosbag_clean.go → aarch64/kinglong/common/service/rosbag_clean.go


+ 0 - 0
kinglong/common/svc/rosbag_record.go → aarch64/kinglong/common/service/rosbag_record.go


+ 0 - 0
kinglong/common/svc/rosbag_upload.go → aarch64/kinglong/common/service/rosbag_upload.go


+ 0 - 0
kinglong/control/main/control.go → aarch64/kinglong/control/main/control.go


+ 0 - 0
kinglong/master/main/master.go → aarch64/kinglong/master/main/master.go


+ 0 - 0
kinglong/master/pkg/cfg/master_trigger_cfg.go → aarch64/kinglong/master/package/config/master_trigger_cfg.go


+ 0 - 0
kinglong/master/pkg/svc/move_bag_and_send_window.go → aarch64/kinglong/master/package/service/move_bag_and_send_window.go


+ 0 - 0
kinglong/master/pkg/svc/produce_window.go → aarch64/kinglong/master/package/service/produce_window.go


+ 0 - 0
kinglong/slave/main/slave.go → aarch64/kinglong/slave/main/slave.go


+ 0 - 0
kinglong/slave/pkg/cfg/slave_tcp_config.go → aarch64/kinglong/slave/package/config/slave_tcp_config.go


+ 0 - 0
kinglong/slave/pkg/svc/accept_window.go → aarch64/kinglong/slave/package/service/accept_window.go


+ 0 - 0
kinglong/slave/pkg/svc/move_bag.go → aarch64/kinglong/slave/package/service/move_bag.go


+ 0 - 0
aarch64/pji/common/config/cloud_config.go → aarch64/pji/common/config/c_cloud.go


+ 0 - 0
aarch64/pji/common/config/kill_rpc_server_config.go → aarch64/pji/common/config/c_killrpcserver.go


+ 0 - 0
aarch64/pji/common/config/local_config.go → aarch64/pji/common/config/c_local.go


+ 0 - 0
aarch64/pji/common/config/oss_config.go → aarch64/pji/common/config/c_oss.go


+ 0 - 0
aarch64/pji/common/config/platform_config.go → aarch64/pji/common/config/c_platform.go


+ 0 - 0
aarch64/pji/common/config/ros_config.go → aarch64/pji/common/config/c_ros.go


+ 0 - 0
aarch64/pjisuv/common/config/cloud_config.go → aarch64/pjisuv/common/config/c_cloud.go


+ 0 - 0
aarch64/pjisuv/common/config/kill_rpc_server_config.go → aarch64/pjisuv/common/config/c_killrpcserver.go


+ 0 - 0
aarch64/pjisuv/common/config/local_config.go → aarch64/pjisuv/common/config/c_local.go


+ 0 - 0
aarch64/pjisuv/common/config/oss_config.go → aarch64/pjisuv/common/config/c_oss.go


+ 2 - 2
aarch64/pjisuv/common/config/platform_config.go → aarch64/pjisuv/common/config/c_platform.go

@@ -85,8 +85,8 @@ func GetAccessToken() (string, error) {
 		return "", nil
 	}
 
-	dataMap := respMap["data"].(map[string]interface{})
-	if err != nil {
+	dataMap, ok := respMap["data"].(map[string]interface{})
+	if !ok {
 		c_log.GlobalLogger.Error("解析返回结果.data", dataMap, "失败:", err)
 		return "", nil
 	}

+ 0 - 0
aarch64/pjisuv/common/config/ros_config.go → aarch64/pjisuv/common/config/c_ros.go


+ 0 - 101
kinglong/common/cutil/u_http.go

@@ -1,101 +0,0 @@
-package cutil
-
-import (
-	"bytes"
-	"encoding/json"
-	"io"
-	"net/http"
-	"net/url"
-)
-
-func HttpGet(url string) (string, error) {
-	// 创建一个HTTP客户端
-	client := &http.Client{}
-
-	// 创建一个GET请求
-	req, err := http.NewRequest("GET", url, nil)
-	if err != nil {
-		return "", err
-	}
-
-	// 发送请求并获取响应
-	resp, err := client.Do(req)
-	if err != nil {
-		return "", err
-	}
-	defer func(Body io.ReadCloser) {
-		err := Body.Close()
-		if err != nil {
-
-		}
-	}(resp.Body)
-
-	// 读取响应的内容
-	body, err := io.ReadAll(resp.Body)
-	if err != nil {
-		return "", err
-	}
-	return string(body), nil
-}
-func HttpPostJsonResponseString(url string, params map[string]string) (string, error) {
-	jsonData, err := json.Marshal(params)
-	if err != nil {
-		return "", err
-	}
-	resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
-	if err != nil {
-		return "", err
-	}
-	defer func(Body io.ReadCloser) {
-		err := Body.Close()
-		if err != nil {
-		}
-	}(resp.Body)
-	body, err := io.ReadAll(resp.Body)
-	if err != nil {
-		return "", err
-	}
-	return string(body), nil
-}
-
-func HttpGetStringAddHeadersResponseString(baseUrl string, headers map[string]string, params map[string]string) (string, error) {
-
-	// 将参数编码到URL中
-	u, _ := url.Parse(baseUrl)
-	q := u.Query()
-	for key, value := range params {
-		q.Add(key, value)
-	}
-	u.RawQuery = q.Encode()
-
-	// 创建请求
-	req, err := http.NewRequest("GET", u.String(), nil)
-	if err != nil {
-		return "", err
-	}
-
-	// 设置请求头
-	for key, value := range headers {
-		req.Header.Set(key, value)
-	}
-
-	// 发送请求
-	client := &http.Client{}
-	resp, err := client.Do(req)
-	if err != nil {
-		return "", err
-	}
-
-	// 读取响应体
-	body, err := io.ReadAll(resp.Body)
-	if err != nil {
-		return "", err
-	}
-	err = resp.Body.Close()
-	if err != nil {
-		return "", err
-	}
-	result := string(body)
-	//log.GlobalLogger.Info("发送http请求,请求路径=", baseUrl, ",请求头=", headers, "请求参数=", params, "请求结果=", result)
-	return result, nil
-}

+ 0 - 33
kinglong/common/cutil/u_io.go

@@ -1,33 +0,0 @@
-package cutil
-
-import (
-	"cicv-data-closedloop/kinglong/common/log"
-	"os"
-	"path/filepath"
-)
-
-func CreateParentDir(filePath string) {
-
-	// 获取文件的父目录路径
-	directory := filepath.Dir(filePath)
-
-	// 检查目录是否存在
-	if _, err := os.Stat(directory); os.IsNotExist(err) {
-		// 如果目录不存在,创建父目录
-		err := os.MkdirAll(directory, os.ModePerm)
-		if err != nil {
-			log.GlobalLogger.Info("创建目录时发生错误", err)
-		}
-	}
-}
-
-func CreateDir(directory string) {
-	// 检查目录是否存在
-	if _, err := os.Stat(directory); os.IsNotExist(err) {
-		// 如果目录不存在,创建父目录
-		err := os.MkdirAll(directory, os.ModePerm)
-		if err != nil {
-			log.GlobalLogger.Info("创建目录时发生错误", err)
-		}
-	}
-}

+ 0 - 9
kinglong/common/cutil/u_time.go

@@ -1,9 +0,0 @@
-package cutil
-
-import "time"
-
-func GetNowTimeCustom() string {
-	currentTime := time.Now()
-	formattedTime := currentTime.Format("2006-01-02-15-04-05")
-	return formattedTime
-}

+ 0 - 13
kinglong/common/ent/time_window.go

@@ -1,13 +0,0 @@
-package ent
-
-type TimeWindow struct {
-	FaultTime       string   `json:"FaultTime"`
-	TimeWindowBegin string   `json:"TimeWindowBegin"`
-	TimeWindowEnd   string   `json:"TimeWindowEnd"`
-	Labels          []string `json:"Labels"`
-	TriggerIds      []string `json:"TriggerIds"`
-	Length          int      `json:"Length"`
-	CanUpload       string   `json:"CanUpload"`
-	MasterTopics    []string `json:"MasterTopics"`
-	SlaveTopics     []string `json:"SlaveTopics"`
-}

+ 0 - 32
kinglong/common/global/global.go

@@ -1,32 +0,0 @@
-package global
-
-import (
-	"cicv-data-closedloop/kinglong/common/ent"
-	"sync"
-	"time"
-)
-
-var (
-	TimeWindowProducerQueue      []ent.TimeWindow
-	TimeWindowProducerQueueMutex sync.RWMutex
-
-	TimeWindowConsumerQueue      []ent.TimeWindow
-	TimeWindowConsumerQueueMutex sync.RWMutex
-
-	Subscriber0Time      = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber0TimeMutex sync.Mutex
-
-	Subscriber1Time      = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber1TimeMutex sync.Mutex
-	Subscriber2Time      = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber2TimeMutex sync.Mutex
-	Subscriber3Time      = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber3TimeMutex sync.Mutex
-	Subscriber4Time      = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber4TimeMutex sync.Mutex
-	Subscriber5Time      = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber5TimeMutex sync.Mutex
-
-	TcpSendTime      = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	TcpSendTimeMutex sync.Mutex
-)

+ 0 - 64
kinglong/common/log/log_cfg.go

@@ -1,64 +0,0 @@
-package log
-
-import (
-	"cicv-data-closedloop/common/util"
-	"fmt"
-	"github.com/sirupsen/logrus"
-	"os"
-	"path/filepath"
-	"runtime"
-	"time"
-)
-
-var GlobalLogger *logrus.Logger
-
-//var MonitorLogger *logrus.Logger
-
-// InitLogConfig 初始化日志配置
-func InitLogConfig(prefix string) {
-	initGlobalLogger(prefix)
-	//initMonitorLogger()
-}
-
-// initGlobalLogger 初始化日志配置
-func initGlobalLogger(prefix string) {
-	time.Sleep(time.Duration(1) * time.Second)
-	logPath := "./log/" + prefix + "-" + time.Now().Format("2006-01-02-15-04-05") + ".log"
-	err := util.CreateParentDir(logPath)
-	// 创建、追加、读写,777,所有权限
-	f, err := os.OpenFile(logPath, os.O_CREATE|os.O_APPEND|os.O_RDWR, os.ModePerm)
-	if err != nil {
-		os.Exit(-1)
-	}
-	GlobalLogger = logrus.New()
-	GlobalLogger.SetOutput(f)
-	GlobalLogger.SetReportCaller(true) // 开启行号显示
-	GlobalLogger.SetFormatter(&logrus.JSONFormatter{
-		CallerPrettyfier: func(frame *runtime.Frame) (string, string) {
-			fileName := filepath.Base(frame.File)
-			return "", fmt.Sprintf("%s:%d", fileName, frame.Line)
-		},
-	})
-	GlobalLogger.Info("初始化GlobalLogger - 成功")
-
-}
-
-//// initMonitorLogger 初始化日志配置
-//func initMonitorLogger() {
-//	time.Sleep(time.Duration(1) * time.Second)
-//	// 创建、追加、读写,777,所有权限
-//	f, err := os.OpenFile("monitor-"+time.Now().Format("2006-01-02-15-04-05")+".log", os.O_CREATE|os.O_APPEND|os.O_RDWR, os.ModePerm)
-//	if err != nil {
-//		os.Exit(-1)
-//	}
-//	MonitorLogger = logrus.New()
-//	MonitorLogger.SetOutput(f)
-//	MonitorLogger.SetReportCaller(true) // 开启行号显示
-//	MonitorLogger.SetFormatter(&logrus.JSONFormatter{
-//		CallerPrettyfier: func(frame *runtime.Frame) (string, string) {
-//			fileName := filepath.Base(frame.File)
-//			return "", fmt.Sprintf("%s:%d", fileName, frame.Line)
-//		},
-//	})
-//	MonitorLogger.Info("初始化MonitorLogger - 成功")
-//}

+ 0 - 17
kinglong/common/util/move_bag.go

@@ -1,17 +0,0 @@
-package util
-
-import (
-	commonConfig "cicv-data-closedloop/kinglong/common/cfg"
-	"cicv-data-closedloop/kinglong/common/cutil"
-	"strings"
-)
-
-func MoveFromDataToCopy(faultTime string, sourceBag string) {
-	dir := GetCopyDir(faultTime)
-	cutil.CreateDir(dir)
-	targetBag := strings.Replace(sourceBag, commonConfig.CloudConfig.BagDataDir, dir, 1)
-	var copyCommand []string
-	copyCommand = append(copyCommand, sourceBag)
-	copyCommand = append(copyCommand, targetBag)
-	Execute("mv", copyCommand...)
-}

+ 0 - 33
kinglong/common/util/parse_json.go

@@ -1,33 +0,0 @@
-package util
-
-import (
-	"cicv-data-closedloop/kinglong/common/ent"
-	"cicv-data-closedloop/kinglong/common/log"
-	"encoding/json"
-)
-
-func JsonStringToMap(source string) (map[string]interface{}, error) {
-	var dataMap map[string]interface{}
-	err := json.Unmarshal([]byte(source), &dataMap)
-	if err != nil {
-		return nil, err
-	} else {
-		return dataMap, nil
-	}
-}
-
-func MapToJsonString(inputMap map[string]interface{}) (string, error) {
-	jsonBytes, err := json.Marshal(inputMap)
-	if err != nil {
-		return "", err
-	}
-	return string(jsonBytes), nil
-}
-
-func TimeWindowToJson(msg ent.TimeWindow) string {
-	jsonData, err := json.Marshal(msg)
-	if err != nil {
-		log.GlobalLogger.Error("timeWindow", msg, "转换为json时出错:", err)
-	}
-	return string(jsonData)
-}

+ 0 - 34
kinglong/common/util/util_exec.go

@@ -1,34 +0,0 @@
-package util
-
-import (
-	"os/exec"
-)
-
-func Execute(name string, arg ...string) (*exec.Cmd, string, error) {
-	cmd := exec.Command(name, arg...)
-	combinedOutput, err := cmd.CombinedOutput()
-	if err != nil {
-		return nil, "", err
-	}
-	return cmd, string(combinedOutput), nil
-}
-
-func ExecuteWithPath(path string, name string, arg ...string) (*exec.Cmd, error) {
-	cmd := exec.Command(name, arg...)
-	cmd.Dir = path
-	err := cmd.Start()
-	if err != nil {
-		return nil, err
-	} else {
-		return cmd, nil
-	}
-}
-
-func KillProcessByPID(pid string) error {
-	cmd := exec.Command("kill", "-9", pid)
-	err := cmd.Run()
-	if err != nil {
-		return err
-	}
-	return nil
-}

+ 0 - 67
kinglong/common/util/util_io.go

@@ -1,67 +0,0 @@
-package util
-
-import (
-	"cicv-data-closedloop/kinglong/common/log"
-	"os"
-	"path/filepath"
-	"sort"
-	"strings"
-)
-
-func ListAbsolutePathWithSuffixAndSort(dir string, suffix string) []string {
-	var result []string
-	if !strings.HasSuffix(dir, "/") {
-		dir = dir + "/"
-	}
-	files, err := os.ReadDir(dir)
-	if err != nil {
-		log.GlobalLogger.Error("读取目录", dir, "报错:", err)
-	}
-	for _, file := range files {
-		if strings.HasSuffix(file.Name(), suffix) {
-			result = append(result, dir+file.Name())
-		}
-	}
-	// 根据文件名进行升序排序
-	sort.Slice(result, func(i, j int) bool {
-		return filepath.Base(result[i]) < filepath.Base(result[j])
-	})
-	return result
-}
-
-// RemoveDir 递归删除目录及其下的所有文件和子目录
-func RemoveDir(dirPath string) error {
-	// 打开目录
-	dir, err := os.Open(dirPath)
-	if err != nil {
-		return err
-	}
-	defer dir.Close()
-	// 读取目录下的文件和子目录
-	fileInfos, err := dir.Readdir(-1)
-	if err != nil {
-		return err
-	}
-	// 遍历文件和子目录
-	for _, fileInfo := range fileInfos {
-		path := filepath.Join(dirPath, fileInfo.Name())
-
-		if fileInfo.IsDir() {
-			// 如果是子目录,递归调用removeDir删除子目录及其下的文件和子目录
-			RemoveDir(path)
-
-		} else {
-			// 如果是文件,直接删除文件
-			err = os.Remove(path)
-			if err != nil {
-				return err
-			}
-		}
-	}
-	// 删除目录本身
-	err = os.Remove(dirPath)
-	if err != nil {
-		return err
-	}
-	return nil
-}

+ 0 - 232
kinglong/common/util/utils.go

@@ -1,232 +0,0 @@
-package util
-
-import (
-	commonConfig "cicv-data-closedloop/kinglong/common/cfg"
-	"cicv-data-closedloop/kinglong/common/ent"
-	"cicv-data-closedloop/kinglong/common/global"
-	"cicv-data-closedloop/kinglong/common/log"
-	"fmt"
-	"os"
-	"os/exec"
-	"path/filepath"
-	"sort"
-	"strconv"
-	"strings"
-	"time"
-)
-
-// AppendIfNotExists 向切片中追加元素,如果元素已存在则不添加
-func AppendIfNotExists(slice []string, element string) []string {
-	for _, item := range slice {
-		if item == element {
-			return slice // 元素已存在,直接返回原切片
-		}
-	}
-	return append(slice, element) // 元素不存在,追加到切片末尾
-}
-
-func AddTimeWindowToTimeWindowProducerQueue(window ent.TimeWindow) {
-	global.TimeWindowProducerQueueMutex.RLock()
-	{
-		global.TimeWindowProducerQueue = append(global.TimeWindowProducerQueue, window)
-	}
-	global.TimeWindowProducerQueueMutex.RUnlock()
-}
-
-func AddTimeWindowToTimeWindowConsumerQueue(window ent.TimeWindow) {
-	global.TimeWindowConsumerQueueMutex.RLock()
-	{
-		global.TimeWindowConsumerQueue = append(global.TimeWindowConsumerQueue, window)
-	}
-	global.TimeWindowConsumerQueueMutex.RUnlock()
-}
-
-func RemoveHeadOfdTimeWindowProducerQueue() {
-	global.TimeWindowProducerQueueMutex.RLock()
-	{
-		global.TimeWindowProducerQueue = global.TimeWindowProducerQueue[1:]
-	}
-	global.TimeWindowProducerQueueMutex.RUnlock()
-}
-
-func RemoveHeaOfdTimeWindowConsumerQueue() {
-	global.TimeWindowConsumerQueueMutex.RLock()
-	{
-		global.TimeWindowConsumerQueue = global.TimeWindowConsumerQueue[1:]
-	}
-	global.TimeWindowConsumerQueueMutex.RUnlock()
-}
-
-func GetBagTime(bagName string) string {
-	s1 := strings.Split(bagName, "_")[0]
-	s1Split := strings.Split(s1, "/")
-	s2 := s1Split[len(s1Split)-1]
-	return s2
-}
-
-func GetNowTimeCustom() string {
-	currentTime := time.Now()
-	formattedTime := currentTime.Format("2006-01-02-15-04-05")
-	return formattedTime
-}
-
-func TimeCustomChange(originalTimeStr string, number int) string {
-	var newTimeStr string
-	// 解析时间字符串
-	layout := "2006-01-02-15-04-05"
-	originalTime, err := time.Parse(layout, originalTimeStr)
-	if err != nil {
-		log.GlobalLogger.Info("无法解析时间字符串:", err)
-		return newTimeStr
-	}
-
-	// 减少1秒
-	newTime := originalTime.Add(time.Duration(number) * time.Second)
-
-	// 格式化新的时间为指定字符串格式
-	return newTime.Format(layout)
-}
-
-func CalculateDifferenceOfTimeCustom(timeCustom1 string, timeCustom2 string) int {
-	timeInt1, _ := strconv.Atoi(strings.Replace(timeCustom1, "-", "", -1))
-	timeInt2, _ := strconv.Atoi(strings.Replace(timeCustom2, "-", "", -1))
-	return timeInt2 - timeInt1 + 1
-
-}
-func TimeCustom1GreaterTimeCustom2(timeCustom1 string, timeCustom2 string) bool {
-	timeInt1, _ := strconv.Atoi(strings.Replace(timeCustom1, "-", "", -1))
-	timeInt2, _ := strconv.Atoi(strings.Replace(timeCustom2, "-", "", -1))
-	return timeInt1 > timeInt2
-}
-
-func TimeCustom1GreaterEqualThanTimeCustom2(timeCustom1 string, timeCustom2 string) bool {
-	timeInt1, _ := strconv.Atoi(strings.Replace(timeCustom1, "-", "", -1))
-	timeInt2, _ := strconv.Atoi(strings.Replace(timeCustom2, "-", "", -1))
-	return timeInt1 >= timeInt2
-}
-
-func TimeCustom1LessEqualThanTimeCustom2(timeCustom1 string, timeCustom2 string) bool {
-	timeInt1, _ := strconv.Atoi(strings.Replace(timeCustom1, "-", "", -1))
-	timeInt2, _ := strconv.Atoi(strings.Replace(timeCustom2, "-", "", -1))
-	return timeInt1 <= timeInt2
-}
-
-// GetDiskUsagePercent 获取磁盘使用率
-func GetDiskUsagePercent() float64 {
-	// 执行 df 命令获取磁盘使用情况
-	cmd := exec.Command("df", "--total")
-	output, err := cmd.Output()
-	if err != nil {
-		log.GlobalLogger.Info("执行命令失败:", err)
-		return 0.0
-	}
-
-	// 解析 df 命令输出,计算磁盘占比
-	lines := strings.Split(string(output), "\n")
-	for _, line := range lines[1:] {
-		fields := strings.Fields(line)
-		if len(fields) >= 6 && fields[0] == "total" {
-			//filesystem := fields[0]
-			total, _ := strconv.ParseFloat(strings.TrimSuffix(fields[1], "G"), 64)
-			used, _ := strconv.ParseFloat(strings.TrimSuffix(fields[2], "G"), 64)
-			usedPercent := (used / total) * 100
-
-			//fmt.Printf("文件系统 %s 已使用 %.2f%%\n", filesystem, usedPercent)
-			return usedPercent
-		}
-	}
-	return 0.0
-}
-
-func ListAbsolutePathAndSort(dir string) []string {
-	var result []string
-	if !strings.HasSuffix(dir, "/") {
-		dir = dir + "/"
-	}
-	files, err := os.ReadDir(dir)
-	if err != nil {
-		log.GlobalLogger.Info("获取文件列表失败:", err)
-		return result
-	}
-	for _, file := range files {
-		result = append(result, dir+file.Name())
-	}
-
-	// 根据文件名进行升序排序
-	sort.Slice(result, func(i, j int) bool {
-		return filepath.Base(result[i]) < filepath.Base(result[j])
-	})
-	return result
-}
-
-func GetCopyDir(faultTime string) string {
-	return commonConfig.CloudConfig.BagCopyDir + faultTime + "/"
-}
-
-func MergeSlice(slice1 []string, slice2 []string) []string {
-
-	// 遍历第二个切片中的元素,并去重追加到结果切片1中
-	for _, element := range slice2 {
-		found := false
-		for _, item := range slice1 {
-			if element == item {
-				found = true
-				break
-			}
-		}
-		if !found {
-			slice1 = append(slice1, element)
-		}
-	}
-	return slice1
-}
-
-func DeleteFile(path string) {
-	// 检查文件是否存在
-	if _, err := os.Stat(path); err == nil {
-		// 文件存在,执行删除操作
-		err := os.Remove(path)
-		if err != nil {
-			fmt.Printf("删除文件时发生错误:%s\n", err)
-			return
-		}
-	}
-}
-
-// GetLastTimeWindow 获取最后一个时间窗口
-func GetLastTimeWindow() *ent.TimeWindow {
-	var lastTimeWindow *ent.TimeWindow // 获取最后一个时间窗口
-	if len(global.TimeWindowProducerQueue) > 0 {
-		lastTimeWindow = &global.TimeWindowProducerQueue[len(global.TimeWindowProducerQueue)-1]
-	}
-	return lastTimeWindow
-}
-
-func RefreshTcpSendTime() {
-	global.TcpSendTimeMutex.Lock()
-	global.TcpSendTime = time.Now()
-	global.TcpSendTimeMutex.Unlock()
-}
-
-// SupplyCopyBags 如果 Copy目录下的包不够,则补充一些
-func SupplyCopyBags(currentTimeWindow ent.TimeWindow) {
-	// 如果bag包没有达到length,补充几个
-	copyBags := ListAbsolutePathWithSuffixAndSort(GetCopyDir(currentTimeWindow.FaultTime), ".bag")
-	copyBagsLength := len(copyBags)
-	if copyBagsLength < currentTimeWindow.Length {
-		time.Sleep(time.Duration(copyBagsLength) * time.Second)
-		dataBags := ListAbsolutePathWithSuffixAndSort(commonConfig.CloudConfig.BagDataDir, ".bag")
-		gap := currentTimeWindow.Length - copyBagsLength
-		log.GlobalLogger.Info("故障 ", currentTimeWindow.FaultTime, "需要补充 ", gap, " 个 bag 包")
-		for _, bag := range dataBags {
-			bagTime := GetBagTime(bag)
-			if TimeCustom1GreaterEqualThanTimeCustom2(bagTime, currentTimeWindow.FaultTime) {
-				MoveFromDataToCopy(currentTimeWindow.FaultTime, bag)
-				gap = gap - 1
-				if gap == 0 {
-					break
-				}
-			}
-		}
-	}
-}