17 #ifndef MUJIN_CONTROLLERCLIENT_H
18 #define MUJIN_CONTROLLERCLIENT_H
20 #ifndef MUJINCLIENT_DISABLE_ASSERT_HANDLER
21 #define BOOST_ENABLE_ASSERT_HANDLER
26 #pragma warning(disable:4251) // needs to have dll-interface to be used by clients of class
27 #pragma warning(disable:4190) // C-linkage specified, but returns UDT 'boost::shared_ptr<T>' which is incompatible with C
28 #pragma warning(disable:4819) //The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss using native typeof
30 #ifndef __PRETTY_FUNCTION__
31 #define __PRETTY_FUNCTION__ __FUNCDNAME__
38 #define MUJINCLIENT_DEPRECATED __attribute__((deprecated))
40 #define MUJINCLIENT_DEPRECATED
55 #include <boost/version.hpp>
56 #include <boost/shared_ptr.hpp>
57 #include <boost/weak_ptr.hpp>
58 #include <boost/format.hpp>
59 #include <boost/array.hpp>
60 #include <boost/property_tree/ptree.hpp>
62 namespace mujinclient {
64 #include <mujincontrollerclient/config.h>
125 char const*
what()
const throw() {
139 class ControllerClient;
140 class ObjectResource;
144 class BinPickingTaskResource;
145 class OptimizationResource;
146 class PlanningResultResource;
308 for(
size_t itarget = 0; itarget <
targetnames.size(); ++itarget) {
380 virtual void SetCharacterEncoding(
const std::string& newencoding) = 0;
385 virtual void SetLanguage(
const std::string& language) = 0;
388 virtual const std::string& GetUserName()
const = 0;
394 virtual void SetProxy(
const std::string& serverport,
const std::string& userpw) = 0;
400 virtual void RestartServer() = 0;
403 virtual void Upgrade(
const std::vector<unsigned char>& vdata) = 0;
406 virtual std::string GetVersion() = 0;
411 virtual void CancelAllJobs() = 0;
416 virtual void GetRunTimeStatuses(std::vector<JobStatus>& statuses,
int options=0) = 0;
419 virtual void GetScenePrimaryKeys(std::vector<std::string>& scenekeys) = 0;
433 virtual SceneResourcePtr RegisterScene_UTF8(
const std::string& uri,
const std::string& scenetype) = 0;
438 return RegisterScene_UTF8(uri,GetDefaultSceneType());
444 virtual SceneResourcePtr RegisterScene_UTF16(
const std::wstring& uri,
const std::string& scenetype) = 0;
449 return RegisterScene_UTF16(uri,GetDefaultSceneType());
466 virtual SceneResourcePtr ImportSceneToCOLLADA_UTF8(
const std::string& sourceuri,
const std::string& sourcescenetype,
const std::string& newuri,
bool overwrite=
false) = 0;
472 virtual SceneResourcePtr ImportSceneToCOLLADA_UTF16(
const std::wstring& sourceuri,
const std::string& sourcescenetype,
const std::wstring& newuri,
bool overwrite=
false) = 0;
482 virtual void SyncUpload_UTF8(
const std::string& sourcefilename,
const std::string& destinationdir,
const std::string& scenetype) = 0;
485 virtual void SyncUpload_UTF8(
const std::string& sourcefilename,
const std::string& destinationdir)
487 SyncUpload_UTF8(sourcefilename, destinationdir, GetDefaultSceneType());
495 virtual void SyncUpload_UTF16(
const std::wstring& sourcefilename,
const std::wstring& destinationdir,
const std::string& scenetype) = 0;
498 virtual void SyncUpload_UTF16(
const std::wstring& sourcefilename,
const std::wstring& destinationdir)
500 SyncUpload_UTF16(sourcefilename, destinationdir, GetDefaultSceneType());
508 virtual void UploadFileToController_UTF8(
const std::string& filename,
const std::string& desturi) = 0;
514 virtual void UploadFileToController_UTF16(
const std::wstring& filename,
const std::wstring& desturi) = 0;
521 virtual void UploadDataToController_UTF8(
const std::vector<unsigned char>& vdata,
const std::string& desturi) = 0;
530 virtual void UploadDirectoryToController_UTF8(
const std::string& copydir,
const std::string& desturi) = 0;
536 virtual void UploadDirectoryToController_UTF16(
const std::wstring& copydir,
const std::wstring& desturi) = 0;
539 virtual void DownloadFileFromController_UTF8(
const std::string& desturi, std::vector<unsigned char>& vdata) = 0;
541 virtual void DownloadFileFromController_UTF16(
const std::wstring& desturi, std::vector<unsigned char>& vdata) = 0;
546 virtual void DownloadFileFromControllerIfModifiedSince_UTF8(
const std::string& desturi,
long localtimeval,
long &remotetimeval, std::vector<unsigned char>& vdata) = 0;
551 virtual void DownloadFileFromControllerIfModifiedSince_UTF16(
const std::wstring& desturi,
long localtimeval,
long &remotetimeval, std::vector<unsigned char>& vdata) = 0;
556 virtual void DeleteFileOnController_UTF8(
const std::string& uri) = 0;
561 virtual void DeleteFileOnController_UTF16(
const std::wstring& uri) = 0;
566 virtual void DeleteDirectoryOnController_UTF8(
const std::string& uri) = 0;
571 virtual void DeleteDirectoryOnController_UTF16(
const std::wstring& uri) = 0;
573 virtual void SetDefaultSceneType(
const std::string& scenetype) = 0;
575 virtual const std::string& GetDefaultSceneType() = 0;
577 virtual void SetDefaultTaskType(
const std::string& tasktype) = 0;
579 virtual const std::string& GetDefaultTaskType() = 0;
594 virtual std::string GetScenePrimaryKeyFromURI_UTF8(
const std::string& uri) = 0;
603 virtual std::string GetScenePrimaryKeyFromURI_UTF16(
const std::wstring& uri) = 0;
608 virtual std::string GetPrimaryKeyFromName_UTF8(
const std::string& name) = 0;
613 virtual std::string GetPrimaryKeyFromName_UTF16(
const std::wstring& name) = 0;
618 virtual std::string GetNameFromPrimaryKey_UTF8(
const std::string& pk) = 0;
623 virtual std::wstring GetNameFromPrimaryKey_UTF16(
const std::string& pk) = 0;
637 return __resourcename;
644 virtual std::string Get(
const std::string& field);
647 virtual void Set(
const std::string& field,
const std::string& newvalue);
650 virtual void Delete();
653 virtual void Copy(
const std::string& newname,
int options);
657 std::string __resourcename, __pk;
680 virtual void GetLinks(std::vector<LinkResourcePtr>& links);
736 int image_dimensions[3];
750 virtual void GetTools(std::vector<ToolResourcePtr>& tools);
751 virtual void GetAttachedSensors(std::vector<AttachedSensorResourcePtr>& attachedsensors);
795 return boost::str(boost::format(
"{\"instobjectpk\": \"%s\", \"grabbed_linkpk\": \"%s\", \"grabbing_linkpk\": \"%s\"}")%instobjectpk%grabbed_linkpk%grabbing_linkpk);
817 virtual void GrabObject(
InstObjectPtr grabbedobject, std::string& grabbedobjectlinkpk, std::string& grabbinglinkpk);
818 virtual void ReleaseObject(
InstObjectPtr grabbedobject, std::string& grabbedobjectlinkpk, std::string& grabbinglinkpk);
838 virtual void SetInstObjectsState(
const std::vector<SceneResource::InstObjectPtr>& instobjects,
const std::vector<InstanceObjectState>& states);
848 virtual TaskResourcePtr GetOrCreateTaskFromName_UTF8(
const std::string& taskname,
const std::string& tasktype,
int options=0);
850 virtual TaskResourcePtr GetOrCreateTaskFromName_UTF8(
const std::string& taskname,
int options=0)
852 return GetOrCreateTaskFromName_UTF8(taskname, GetController()->GetDefaultTaskType(), options);
855 virtual TaskResourcePtr GetTaskFromName_UTF8(
const std::string& taskname,
int options=0);
864 virtual TaskResourcePtr GetOrCreateTaskFromName_UTF16(
const std::wstring& taskname,
const std::string& tasktype,
int options=0);
866 virtual TaskResourcePtr GetOrCreateTaskFromName_UTF16(
const std::wstring& taskname,
int options=0)
868 return GetOrCreateTaskFromName_UTF16(taskname, GetController()->GetDefaultTaskType(), options);
871 virtual TaskResourcePtr GetTaskFromName_UTF16(
const std::wstring& taskname,
int options=0);
874 virtual BinPickingTaskResourcePtr GetOrCreateBinPickingTaskFromName_UTF8(
const std::string& taskname,
const std::string& tasktype=
"binpicking",
int options=0);
875 virtual BinPickingTaskResourcePtr GetOrCreateBinPickingTaskFromName_UTF16(
const std::wstring& taskname,
const std::string& tasktype=
"binpicking",
int options=0);
879 virtual void GetTaskPrimaryKeys(std::vector<std::string>& taskkeys);
882 virtual void GetSensorMapping(std::map<std::string, std::string>& sensormapping);
883 virtual void GetInstObjects(std::vector<InstObjectPtr>& instobjects);
884 virtual bool FindInstObject(
const std::string& name, InstObjectPtr& instobject);
902 virtual bool Execute();
905 virtual void Cancel();
912 virtual void GetRunTimeStatus(
JobStatus& status,
int options = 1);
918 virtual OptimizationResourcePtr GetOrCreateOptimizationFromName_UTF8(
const std::string& optimizationname,
const std::string& optimizationtype=std::string(
"robotplacement"));
921 virtual OptimizationResourcePtr GetOrCreateOptimizationFromName_UTF16(
const std::wstring& optimizationname,
const std::string& optimizationtype=std::string(
"robotplacement"));
924 virtual void GetOptimizationPrimaryKeys(std::vector<std::string>& optimizationkeys);
949 virtual void Execute(
bool bClearOldResults=
true);
952 virtual void Cancel();
965 virtual void GetRunTimeStatus(
JobStatus& status,
int options = 1);
971 virtual void GetResults(std::vector<PlanningResultResourcePtr>& results,
int startoffset=0,
int num=0);
1001 virtual void GetAllRawProgramData(std::string& outputdata,
const std::string& programtype=
"auto");
1010 virtual void GetRobotRawProgramData(std::string& outputdata,
const std::string& robotpk,
const std::string& programtype=
"auto");
1038 MUJINCLIENT_API
ControllerClientPtr CreateControllerClient(
const std::string& usernamepassword,
const std::string& url=std::string(),
const std::string& proxyserverport=std::string(),
const std::string& proxyuserpw=std::string(),
int options=0);
1069 #if !defined(MUJINCLIENT_DISABLE_ASSERT_HANDLER) && defined(BOOST_ENABLE_ASSERT_HANDLER)
1073 inline void assertion_failed(
char const * expr,
char const *
function,
char const * file,
long line)
1078 #if BOOST_VERSION>104600
1079 inline void assertion_failed_msg(
char const * expr,
char const * msg,
char const *
function,
char const * file,
long line)