8 #include <boost/thread/thread.hpp>
12 using namespace mujinclient;
14 int main(
int argc,
char ** argv)
17 std::cout <<
"need username:password. Example: mujinclienttest myuser:mypass [url]\n\nurl - [optional] For example https://controller.mujin.co.jp/" << std::endl;
28 else if( argc == 3 ) {
34 std::cout <<
"connected to controller v" << controller->GetVersion() << std::endl;
36 controller->SyncUpload_UTF8(
"../share/mujincontrollerclient/robodia_demo1/robodia_demo1.xml",
"mujin:/robodia_demo1/",
"cecrobodiaxml");
38 std::string sceneuri =
"mujin:/robodia_demo1/robodia_demo1.xml";
39 SceneResourcePtr scene = controller->RegisterScene_UTF8(sceneuri,
"cecrobodiaxml");
41 std::vector<SceneResource::InstObjectPtr> instobjects;
42 scene->GetInstObjects(instobjects);
43 std::cout <<
"scene instance objects: ";
44 for(
size_t i = 0; i < instobjects.size(); ++i) {
45 std::cout << instobjects[i]->name <<
", ";
47 std::cout << std::endl;
51 TaskResourcePtr task = scene->GetOrCreateTaskFromName_UTF8(
"task0",
"itlplanning");
55 info.
program =
"settool(Tcp_HAND2)\n\
69 task->SetTaskParameters(info);
72 controller->CancelAllJobs();
76 std::cout <<
"waiting for task result" << std::endl;
81 int iterations = 0, maxiterations = 4000;
83 result = task->GetResult();
87 task->GetRunTimeStatus(status);
88 std::cout <<
"current job status=" << status.
code <<
": " << status.
message << std::endl;
94 if( iterations > 3 ) {
95 std::cout <<
"task won't start for some reason" << std::endl;
100 std::cout <<
"task failed execution " << std::endl;
104 std::cout <<
"unexpected job status so quitting " << std::endl;
108 boost::this_thread::sleep(boost::posix_time::milliseconds(5000));
110 if( iterations > maxiterations ) {
111 controller->CancelAllJobs();
116 std::string cecrobodiazipdata;
117 result->GetAllRawProgramData(cecrobodiazipdata,
"cecrobodiasim");
118 std::cout <<
"got robodia simulation file, size=" << cecrobodiazipdata.size() <<
" bytes" << std::endl;
121 result->GetPrograms(programs);
122 std::cout <<
"found " << programs.
programs.size() <<
" programs" << std::endl;
123 for(std::map<std::string, RobotProgramData>::iterator it = programs.
programs.begin(); it != programs.
programs.end(); ++it ) {
124 std::cout <<
"[" << it->first <<
"]" << std::endl << it->second.programdata << std::endl << std::endl;
126 std::cout <<
"final task_time is " << result->Get(
"task_time") << std::endl;
129 std::cout <<
"exception thrown: " << ex.
message() << std::endl;