diff --git a/CMakeLists.txt b/CMakeLists.txt index 55e730f..14bc069 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,9 @@ target_link_libraries(example_b1_motor ${EXTRA_LIBS}) add_executable(example_goM8010_6_motor example/example_goM8010_6_motor.cpp) target_link_libraries(example_goM8010_6_motor ${EXTRA_LIBS}) +add_executable(changeID example/changeID.cpp) +target_link_libraries(changeID ${EXTRA_LIBS}) + set(LIBRARY_OUTPUT_PATH "../lib") add_subdirectory(thirdparty/pybind11) pybind11_add_module(unitree_actuator_sdk thirdparty/python_wrapper/wrapper.cpp) diff --git a/example/changeID.cpp b/example/changeID.cpp new file mode 100755 index 0000000..6292444 --- /dev/null +++ b/example/changeID.cpp @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include "serialPort/SerialPort.h" +#include "unitreeMotor/unitreeMotor.h" + +#define BroadAllMotorID 0xBB +#define MotorPulsator 11 + +int main(){ + char serial_name[100]; + + MotorCmd motor_s; + MotorData motor_r; + + motor_s.motorType = MotorType::B1; // set the motor type, A1 or B1 + motor_r.motorType = motor_s.motorType; + + printf("Please input the name of serial port.(e.g. Linux:/dev/ttyUSB0, Windows:\\\\.\\COM3)\n"); + scanf("%s",serial_name); + printf("The serial port is %s\n", serial_name); + + SerialPort serial(serial_name); // set the serial port name + + motor_s.id = BroadAllMotorID; + motor_s.mode = 10; + serial.sendRecv(&motor_s, &motor_r); + + usleep(100000); //sleep 0.1s + + //进入拨轮模式(修改ID) + motor_s.mode = MotorPulsator; + motor_s.modify_data(&motor_s); + serial.send(motor_s.get_motor_send_data(), motor_s.hex_len); + + printf("Please turn the motor.\n"); + printf("One time: id=0; Two times: id=1, Three times: id=2\n"); + printf("ID can only be 0, 1, 2\n"); + printf("Once finished, press 'a'\n"); + + // int c; + while(getchar() != (int)'a'); + printf("Turn finished\n"); + + //保存ID + motor_s.mode = 0; + motor_s.modify_data(&motor_s); + serial.send(motor_s.get_motor_send_data(), motor_s.hex_len); + + return 0; +}