main.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package main
  2. import (
  3. "cicv-data-closedloop/common/util"
  4. "errors"
  5. "fmt"
  6. "strings"
  7. "time"
  8. )
  9. // var rosparamPath = "/opt/ros/melodic/bin/rosparam" // 室内引导服务机器人
  10. var rosparamPath = "/opt/ros/noetic/bin/rosparam" // 室内清洁服务机器人
  11. // 用于执行rosbag命令
  12. func main() {
  13. //// 定义一个字符串切片来存储转换后的结果
  14. //envVars := []string{
  15. // "C_INCLUDE_PATH=/usr/include/drm:",
  16. // "USER=root",
  17. // "ROS_PACKAGE_PATH=/opt/ros/melodic/share",
  18. // "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/opt/ros/melodic/lib/aarch64-linux-gnu",
  19. // "ROS_ETC_DIR=/opt/ros/melodic/etc/ros",
  20. // "SHLVL=1",
  21. // "HOME=/root",
  22. // "ROS_PYTHON_VERSION=2",
  23. // "PCMANFM_OUTLINE_MODE=on",
  24. // "CPLUS_INCLUDE_PATH=/usr/include/drm:",
  25. // "ROS_DISTRO=melodic",
  26. // "ROS_VERSION=1",
  27. // "PKG_CONFIG_PATH=/opt/ros/melodic/lib/pkgconfig",
  28. // "PATH=/opt/ros/melodic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/root/go/bin",
  29. // "ROS_ROOT=/opt/ros/melodic/share/ros",
  30. // "ROSLISP_PACKAGE_DIRECTORIES=",
  31. // "ROS_MASTER_URI=http://192.168.1.104:11311",
  32. // "PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages",
  33. // "ROS_HOSTNAME=192.168.1.104",
  34. // "CMAKE_PREFIX_PATH=/opt/ros/melodic",
  35. //}
  36. //// 1 启动父命令
  37. //c_log.GlobalLogger.Info("record 环境变量为:", config.RosbagEnvs)
  38. //
  39. //cmd, _ := util.ExecuteWithEnvAndDirAsync(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
  40. //recordProcessPid := cmd.Process.Pid
  41. //recordSubProcessPid, _ := util.GetSubProcessPid(recordProcessPid)
  42. //c_log.GlobalLogger.Info("获取进程 ", recordProcessPid, " 的子进程的pid:", recordSubProcessPid)
  43. for {
  44. time.Sleep(time.Duration(2) * time.Second)
  45. snCode, err := getSnCode()
  46. if err != nil {
  47. fmt.Println("获取sn码失败:", err.Error())
  48. continue
  49. }
  50. fmt.Println("SN码为:", snCode)
  51. break
  52. }
  53. }
  54. func getSnCode() (string, error) {
  55. var command []string
  56. command = append(command, "get")
  57. command = append(command, "sn")
  58. _, snOutput, err := util.ExecuteSync(rosparamPath, command...)
  59. if err != nil {
  60. return "", errors.New("执行获取sn码命令" + rosparamPath + util.ToString(command) + "出错:" + util.ToString(err))
  61. }
  62. fmt.Println("执行获取sn码命令", command, "成功,结果为:", snOutput)
  63. snCode := strings.Replace(strings.Replace(snOutput, " ", "", -1), "\n", "", -1)
  64. return snCode, nil
  65. }