Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. 打开GetPowerStatus工程,右键get_power_status, 将此工程设置成StartUp project


  2. 右键get_power_status, 打开属性选项,将Slamware SDK 的include目录和lib目录添加到工程


    Slamware SDK的include和lib目录无需复制到参考例程目录,只需在Visual Studio里指定路径即可。




  3. 右键get_power_status, 在Debugging页面中command Arguments处输入 192.168.11.1 
    格式说明:get_power_status <IP address> 


  4. 点击F5运行
  5. Console输出为

...


代码描述

  • 获取电量/充电状态

    获取电量/充电状态


    1
    Code Block
    2
    language
    3
    java
    4
    theme
    5
    Midnight
    6
    linenumbers
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SlamwareCorePlatform sdp = SlamwareCorePlatform::connect(argv[1], 1445);
    std::cout <<"SDK Version: " << sdp.getSDKVersion() << std::endl;
    std::cout <<"SDP Version: " << sdp.getSDPVersion() << std::endl;
     
    PowerStatus status = sdp.getPowerStatus();
    std::cout << "Battery Percentage: " << status.batteryPercentage << std::endl;
    std::cout << "is Charging: " << status.isCharging << std::endl;
    std::cout << "is DC connected: " << status.isDCConnected << std::endl;
     
    if(status.dockingStatus == DockingStatusNotOnDock)
        std::cout << "Docking status: Not on dock" << std::endl;
    else if(status.dockingStatus == DockingStatusOnDock)
        std::cout << "Docking status: On dock" << std::endl;
    else
    true
    /* 与底盘连接 */
    AbstractSlamwarePlatform robotPlatform = DeviceManager.connect("10.0.130.71", 1445);
    
    /* 获取版本信息 */
    sdkVersion.setText(robotPlatform.getSDKVersion());
    
    try {
        /* 获取Slamware ID */
        deviceID.setText(robotPlatform.getDeviceId());
    
        /* 获取电源状态相关信息 */
        PowerStatus powerStatus = robotPlatform.getPowerStatus();
    
        /* 是否正在充电 */
        if(powerStatus.isCharging() == true) {
            chargingStatus.setText("正在充电");
        } else {
            chargingStatus.setText("未在充电");
        }
    
        /* 是否DC connected */
        if(powerStatus.isDCConnected() == true) {
            dcConnected.setText("已连接");
        } else {
            dcConnected.setText("未连接");
        }
    
        /* 剩余电池电量 */
        batteryPercentage.setText(powerStatus.getBatteryPercentage() + "%");
    
        /* 是否回到充电桩 */
        if(powerStatus.getDockingStatus() == DockingStatus.OnDock) {
            dockStatus.setText("已回桩");
        } else if (powerStatus.getDockingStatus() == DockingStatus.NotOnDock) {
            dockStatus.setText("未回桩");
        } else {
            dockStatus.setText("未知状态");
        }
    
        /* 睡眠状态 */
        switch (powerStatus.getSleepMode()) {
            case Awake:
                sleepMode.setText("Awake");
                break;
            case WakingUp:
                sleepMode.setText("WakingUp");
                break;
            case Asleep:
                sleepMode.setText("Asleep");
                break;
            case Unknown:
                sleepMode.setText("Unknown");
                break;
                default:
                    break;
        }
    
    
        std::cout << "Docking status: Unknown" << std::endl;