孟令鑫 1 ano atrás
pai
commit
40d76d5fb2

+ 12 - 0
common/util/u_io.go

@@ -1,10 +1,22 @@
 package util
 
 import (
+	"cicv-data-closedloop/kinglong/common/log"
 	"os"
 	"path/filepath"
 )
 
+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)
+		}
+	}
+}
+
 // CreateParentDir 存在不创建,不存在则创建父目录
 func CreateParentDir(filePath string) error {
 	if err := os.MkdirAll(filepath.Dir(filePath), os.ModePerm); err != nil {

+ 16 - 0
common/util/u_json.go

@@ -0,0 +1,16 @@
+package util
+
+import "encoding/json"
+
+// MapToJsonString 将map转为JSON字符串的函数
+func MapToJsonString(inputMap map[string]interface{}) (string, error) {
+	// 使用json.Marshal将map转为JSON格式的字节切片
+	jsonBytes, err := json.Marshal(inputMap)
+	if err != nil {
+		return "", err
+	}
+
+	// 将字节切片转为字符串
+	jsonString := string(jsonBytes)
+	return jsonString, nil
+}

+ 1 - 0
kinglong/common/cfg/cloud-config.yaml

@@ -9,6 +9,7 @@ config-refresh-interval: 60
 disk-usage: 90
 bag-data-dir: /mnt/media/sda1/rosbag-handle/data/
 bag-copy-dir: /mnt/media/sda1/rosbag-handle/copy/
+time-to-label-json-path: /mnt/media/sda1/rosbag-handle/timeToLabel.json
 triggers-dir: /mnt/media/sda1/rosbag-handle/triggers/
 time-window-send-gap: 6
 tcp-port: 12340

+ 9 - 7
kinglong/common/cfg/cloud_cfg.go

@@ -1,7 +1,7 @@
 package cfg
 
 import (
-	"cicv-data-closedloop/kinglong/common/cutil"
+	"cicv-data-closedloop/common/util"
 	"cicv-data-closedloop/kinglong/common/log"
 	"gopkg.in/yaml.v3"
 	"os"
@@ -31,6 +31,7 @@ type cloudConfig struct {
 	BagNumber             int       `yaml:"bag-number"`
 	TimeWindowSendGap     int       `yaml:"time-window-send-gap"` // 主节点向从节点发送窗口的最小时间间隔
 	DiskUsage             float64   `yaml:"disk-usage"`
+	TimeToLabelJsonPath   string    `yaml:"time-to-label-json-path"`
 	BagDataDir            string    `yaml:"bag-data-dir"`
 	BagCopyDir            string    `yaml:"bag-copy-dir"`
 	TriggersDir           string    `yaml:"triggers-dir"`
@@ -56,7 +57,7 @@ var (
 func InitCloudConfig() {
 	log.GlobalLogger.Info("初始化OSS配置文件 - 开始。")
 	// 获取文件的目录
-	cutil.CreateParentDir(LocalConfig.CloudConfigLocalPath)
+	util.CreateParentDir(LocalConfig.CloudConfigLocalPath)
 	// 3 ------- 获取 yaml 字符串 -------
 	var content []byte
 	cloudConfigObjectKey := LocalConfig.OssBasePrefix + LocalConfig.EquipmentNo + "/" + LocalConfig.CloudConfigFilename
@@ -90,14 +91,15 @@ func InitCloudConfig() {
 		os.Exit(-1)
 	}
 	log.GlobalLogger.Info("初始化OSS配置文件 - 成功。")
-	cutil.CreateDir(CloudConfig.BagDataDir)
-	cutil.CreateDir(CloudConfig.BagCopyDir)
+	util.CreateDir(CloudConfig.BagDataDir)
+	util.CreateDir(CloudConfig.BagCopyDir)
+
 }
 
 // RefreshCloudConfig 初始化业务配置
 func refreshCloudConfig() {
 	// 获取文件的目录
-	cutil.CreateParentDir(LocalConfig.CloudConfigLocalPath)
+	util.CreateParentDir(LocalConfig.CloudConfigLocalPath)
 	// 3 ------- 获取 yaml 字符串 -------
 	var content []byte
 	cloudConfigObjectKey := LocalConfig.OssBasePrefix + LocalConfig.EquipmentNo + "/" + LocalConfig.CloudConfigFilename
@@ -130,8 +132,8 @@ func refreshCloudConfig() {
 		log.GlobalLogger.Error("配置文件格式错误:", newCloudConfig)
 		return
 	}
-	cutil.CreateDir(CloudConfig.BagDataDir)
-	cutil.CreateDir(CloudConfig.BagCopyDir)
+	util.CreateDir(CloudConfig.BagDataDir)
+	util.CreateDir(CloudConfig.BagCopyDir)
 }
 
 // RefreshCloudConfig 轮询oss上的配置文件更新到本地

+ 2 - 0
kinglong/master/pkg/svc/move_bag_and_send_window.go

@@ -68,6 +68,8 @@ func RunTimeWindowProducerQueue() {
 				util.RemoveHeadOfdTimeWindowProducerQueue()
 				// 将时间窗口加入运行队列
 				util.AddTimeWindowToTimeWindowConsumerQueue(currentTimeWindow)
+				// 获取copy目录下的字典json,key为触发时间,value为label
+
 				continue
 			} else { // 保证当前窗口只发送一次,每间隔5秒发一次
 				if int(time.Since(global.TcpSendTime).Seconds()) > commonConfig.CloudConfig.TimeWindowSendGap {