1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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[0])
- commonConfig.OssMutex.Unlock()
- }
- }
- }
- }
|