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 std::string sceneuri =
"mujin:/densowave_wincaps_data/vs060a3_test0/test0.WPJ";
37 std::string scenepk = controller->GetScenePrimaryKeyFromURI_UTF8(sceneuri);
39 controller->SyncUpload_UTF8(
"../share/mujincontrollerclient/densowave_wincaps_data/vs060a3_test0/test0.WPJ",
"mujin:/densowave_wincaps_data/vs060a3_test0/",
"wincaps");
40 SceneResourcePtr scene = controller->RegisterScene_UTF8(sceneuri,
"wincaps");
42 TaskResourcePtr task = scene->GetOrCreateTaskFromName_UTF8(
"task0",
"itlplanning");
47 move(translation(0,0,20)*p[Work0/2])\n\
49 movel(translation(0,0,20)*p[Work0/2])\n\
50 move(translation(0,0,20)*p[Work0/3])\n\
52 movel(translation(0,0,20)*p[Work0/3])\n\
54 task->SetTaskParameters(info);
57 controller->CancelAllJobs();
61 std::cout <<
"waiting for task result" << std::endl;
66 int iterations = 0, maxiterations = 4000;
68 result = task->GetResult();
72 task->GetRunTimeStatus(status);
73 std::cout <<
"current job status=" << status.
code <<
": " << status.
message << std::endl;
79 if( iterations > 3 ) {
80 std::cout <<
"task won't start for some reason" << std::endl;
85 std::cout <<
"task failed execution " << std::endl;
89 std::cout <<
"unexpected job status so quitting " << std::endl;
93 boost::this_thread::sleep(boost::posix_time::milliseconds(5000));
95 if( iterations > maxiterations ) {
96 controller->CancelAllJobs();
102 result->GetPrograms(programs);
103 std::cout <<
"found " << programs.
programs.size() <<
" programs" << std::endl;
104 for(std::map<std::string, RobotProgramData>::iterator it = programs.
programs.begin(); it != programs.
programs.end(); ++it ) {
105 std::cout <<
"[" << it->first <<
"]" << std::endl << it->second.programdata << std::endl << std::endl;
107 std::cout <<
"final task_time is " << result->Get(
"task_time") << std::endl;
110 std::cout <<
"exception thrown: " << ex.
message() << std::endl;