package svc import ( commonConfig "cicv-data-closedloop/aarch64/pjisuv/common/config" "cicv-data-closedloop/common/config/c_log" "cicv-data-closedloop/common/util" "os" "strings" "time" ) var ( dir = "/home/root/competition/" Log = c_log.GlobalLogger commandArgs = []string{"record", "--split", "--duration=5", "/pji_gps", "/data_read"} ) // ForCompetition todo 实车比赛临时使用 // history record命令无法录制() func ForCompetition() { Log.Info("开始采集实车算法比赛全量数据。") util.CreateDir(dir) // 1 打包 Log.Info("采集实车算法比赛全量数据的环境变量为:", commonConfig.RosbagEnvs) command, err := util.ExecuteWithEnvAndDirAsync(commonConfig.RosbagEnvs, dir, commonConfig.RosbagPath, commandArgs...) if err != nil { Log.Error("程序崩溃。执行record命令", command, "出错:", err) os.Exit(-1) } // 2 扫描目录文件 for { time.Sleep(time.Duration(2) * time.Second) files, _ := util.ListAbsolutePathAndSort(dir) if len(files) >= 2 { Log.Info("扫描试车比赛数据采集目录,", files) for i := range files { if i == len(files)-1 { // 最后一个包在录制中,不上传 break } Log.Info("上传实车算法比赛全量数据包", files[i]) bagSlice := strings.Split(files[0], "/") commonConfig.OssMutex.Lock() _ = commonConfig.OssBucket.PutObjectFromFile("competition/"+bagSlice[len(bagSlice)-1], files[0]) commonConfig.OssMutex.Unlock() } } } }