34 BCAPService_Ptr service = boost::make_shared<bcap_service::BCAPService>();
35 service->parseParams();
39 service->put_Type(
"udp");
42 service->put_Type(
"tcp");
67 ret = xmlDoc.
LoadFile(filename.c_str());
106 DensoRobot_Vec::iterator itRob;
109 (*itRob)->StartService(node);
112 DensoTask_Vec::iterator itTsk;
115 (*itTsk)->StartService(node);
118 DensoVariable_Vec::iterator itVar;
121 (*itVar)->StartService(node);
135 DensoRobot_Vec::iterator itRob;
138 (*itRob)->StopService();
141 DensoTask_Vec::iterator itTsk;
144 (*itTsk)->StopService();
147 DensoVariable_Vec::iterator itVar;
150 (*itVar)->StopService();
158 boost::mutex::scoped_lock lockSrv(
m_mtxSrv);
162 DensoRobot_Vec::iterator itRob;
168 DensoTask_Vec::iterator itTsk;
174 DensoVariable_Vec::iterator itVar;
197 *robot = boost::dynamic_pointer_cast<
DensoRobot>(pBase);
217 *task = boost::dynamic_pointer_cast<
DensoTask>(pBase);
252 for (objs = 0; objs < vecName.size(); objs++)
261 hr = tsk->InitializeBCAP(xmlElem);
322 vntArgs.push_back(*vntTmp.get());
360 vntArgs.push_back(*vntTmp.get());
369 count = vntRet->lVal;
410 vntTmp->lVal = error_index;
414 vntArgs.push_back(*vntTmp.get());
425 if (elements[0].vt ==
VT_I4)
427 error_code = elements[0].lVal;
473 vntTmp->lVal = error_code;
477 vntArgs.push_back(*vntTmp.get());
509 hr = pVar->ExecGetValue(vntVal);
517 std::istringstream ss(version_number);
HRESULT SafeArrayUnaccessData(SAFEARRAY *psa)
virtual HRESULT AddRobot(XMLElement *xmlElem)=0
virtual HRESULT InitializeBCAP()
#define ID_CONTROLLER_EXECUTE
XMLError LoadFile(const char *filename)
HRESULT AddVariable(int32_t get_id, const std::string &name, std::vector< boost::shared_ptr< class DensoVariable > > &vecVar, int16_t vt=VT_EMPTY, bool bRead=false, bool bWrite=false, bool bID=false, int iDuration=BCAP_VAR_DEFAULT_DURATION)
virtual HRESULT StartService(ros::NodeHandle &node)
DensoRobot_Vec m_vecRobot
std::vector< VARIANT, VariantAllocator< VARIANT > > VARIANT_Vec
std::vector< uint32_t > Handle_Vec
HRESULT GetObjectNames(int32_t func_id, Name_Vec &vecName)
virtual HRESULT ExecClearError()
std::tuple< int, int, int > m_software_version
DensoVariable_Vec m_vecVar
DensoController(const std::string &name, const int *mode, const ros::Duration dt)
void VariantInit(VARIANT *pvarg)
HRESULT get_Robot(int index, DensoRobot_Ptr *robot)
virtual HRESULT StopService()
const XMLElement * NextSiblingElement(const char *value=0) const
Get the next (right) sibling element of this node, with an optionally supplied name.
BSTR SysAllocString(const wchar_t *sz)
HRESULT GetVariableVersion()
static std::string ConvertBSTRToString(const BSTR bstr)
boost::interprocess::unique_ptr< VARIANT, variant_deleter > VARIANT_Ptr
HRESULT SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
virtual HRESULT AddTask(XMLElement *xmlElem)
virtual HRESULT ExecGetCurErrorCount(int &count)
HRESULT get_Object(const std::vector< boost::shared_ptr< DensoBase > > &vecBase, int index, boost::shared_ptr< DensoBase > *obj)
#define ID_CONTROLLER_GETTASKNAMES
HRESULT get_Task(const std::string &name, DensoTask_Ptr *task)
const XMLElement * FirstChildElement(const char *value=0) const
std::vector< std::string > Name_Vec
virtual HRESULT AddController()=0
static constexpr const char * XML_VARIABLE_NAME
static constexpr const char * XML_ROBOT_NAME
#define ID_CONTROLLER_GETTASK
virtual ~DensoController()
std::vector< DensoBase_Ptr > DensoBase_Vec
virtual HRESULT ExecGetErrorDescription(HRESULT error_code, std::string &error_description)
HRESULT get_Variable(const std::string &name, DensoVariable_Ptr *var)
virtual HRESULT ExecGetCurErrorInfo(int error_index, HRESULT &error_code, std::string &error_message)
HRESULT AddObject(int32_t get_id, const std::string &name, Handle_Vec &vecHandle)
static constexpr int BCAP_CONTROLLER_EXECUTE_ARGS
HRESULT AddVariable(const std::string &name)
#define ID_CONTROLLER_GETVARIABLE
static constexpr const char * XML_TASK_NAME
static constexpr const char * XML_CTRL_NAME