diff --git a/cmds/Android.bp b/cmds/Android.bp index 72adbf7..952cbfb 100644 --- a/cmds/Android.bp +++ b/cmds/Android.bp @@ -99,3 +99,15 @@ cc_binary { "libhidlbase", ], } + +cc_binary { + name: "xiaomi-motor", + srcs: [ + "xiaomi-motor.cpp", + ], + shared_libs: [ + "vendor.xiaomi.hardware.motor@1.0", + "libutils", + "libhidlbase", + ], +} diff --git a/cmds/xiaomi-motor.cpp b/cmds/xiaomi-motor.cpp new file mode 100644 index 0000000..f78dde3 --- /dev/null +++ b/cmds/xiaomi-motor.cpp @@ -0,0 +1,38 @@ +#include +#include +#include + +using ::vendor::xiaomi::hardware::motor::V1_0::IMotor; +using ::android::sp; + +int main(int argc, char **argv) { + auto svc = IMotor::getService(); + if(svc == nullptr) { + std::cerr << "Failed getting IMotor" << std::endl; + return -1; + } + if(argc<2) { + std::cerr << "Usage: " << argv[0] << " " << std::endl; + return -1; + } + std::string cmd(argv[1]); + if(cmd == "init") { + svc->init(); + } else if(cmd == "release") { + svc->release(); + } else if(cmd == "popup") { + if(argc!=3) { + std::cerr << "Usage: " << argv[0] << " " << argv[1] << " " << std::endl; + return -1; + } + svc->popupMotor(atoi(argv[2])); + } else if(cmd == "takeback") { + if(argc!=3) { + std::cerr << "Usage: " << argv[0] << " " << argv[1] << " " << std::endl; + return -1; + } + svc->takebackMotor(atoi(argv[2])); + } else if(cmd == "takebackShortly") { + svc->takebackMotorShortly(); + } +}