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