30 const int* mode,
int16_t vt,
bool Read,
bool Write,
bool ID,
int Duration)
31 :
DensoBase(parent, service, handle, name, mode), m_vt(vt), m_bRead(Read), m_bWrite(Write), m_bID(ID)
140 boost::mutex::scoped_lock lockSrv(
m_mtxSrv);
153 Float32MultiArray varFArray;
154 Float64MultiArray varDArray;
170 if (vntRet->vt ==
m_vt)
175 varI.data = vntRet->lVal;
179 varF.data = vntRet->fltVal;
183 varD.data = vntRet->dblVal;
191 varIO.data = (vntRet->boolVal !=
VARIANT_FALSE) ?
true :
false;
195 num = vntRet->parray->rgsabound->cElements;
197 varFArray.data.resize(num);
198 std::copy(pfltval, &pfltval[num], varFArray.data.begin());
203 num = vntRet->parray->rgsabound->cElements;
205 varDArray.data.resize(num);
206 std::copy(pdblval, &pdblval[num], varDArray.data.begin());
207 SafeArrayUnaccessData(vntRet->parray);
231 vntArgs.push_back(*vntHandle.get());
249 vntArgs.push_back(*vntHandle.get());
251 vntArgs.push_back(*value.get());
276 vntArgs.push_back(*vntHandle.get());
278 vntValue->vt =
VT_I4;
280 vntArgs.push_back(*vntValue.get());
295 vntVal->lVal = msg->data;
304 vntVal->fltVal = msg->data;
313 vntVal->dblVal = msg->data;
345 std::copy(msg->data.begin(), msg->data.end(), pval);
360 std::copy(msg->data.begin(), msg->data.end(), pval);
HRESULT SafeArrayUnaccessData(SAFEARRAY *psa)
#define ID_VARIABLE_GETVALUE
SAFEARRAY * SafeArrayCreateVector(uint16_t vt, int32_t lLbound, uint32_t cElements)
Subscriber subscribe(const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints())
ros::Publisher m_pubValue
HRESULT ExecPutValue(const VARIANT_Ptr &value)
void Callback_F32Array(const Float32MultiArray::ConstPtr &msg)
void Callback_ID(const Int32::ConstPtr &msg)
std::vector< VARIANT, VariantAllocator< VARIANT > > VARIANT_Vec
std::vector< uint32_t > Handle_Vec
HRESULT ExecPutID(const int id)
HRESULT StartService(ros::NodeHandle &node)
std::vector< BCAPService_Ptr > Service_Vec
void Callback_I32(const Int32::ConstPtr &msg)
void VariantInit(VARIANT *pvarg)
void publish(const boost::shared_ptr< M > &message) const
std::string RosName() const
static constexpr const char * NAME_ID
void Callback_String(const String::ConstPtr &msg)
static std::string ConvertBSTRToString(const BSTR bstr)
boost::interprocess::unique_ptr< VARIANT, variant_deleter > VARIANT_Ptr
HRESULT ExecGetValue(VARIANT_Ptr &value)
HRESULT SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
static BSTR ConvertStringToBSTR(const std::string &str)
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
void Callback_F32(const Float32::ConstPtr &msg)
ros::Subscriber m_subValue
#define ID_VARIABLE_PUTVALUE
DensoVariable(DensoBase *parent, Service_Vec &service, Handle_Vec &handle, const std::string &name, const int *mode, int16_t vt, bool Read, bool Write, bool ID, int Duration)
static constexpr const char * NAME_READ
static constexpr const char * NAME_WRITE
void Callback_F64Array(const Float64MultiArray::ConstPtr &msg)
void Callback_Bool(const Bool::ConstPtr &msg)
void Callback_F64(const Float64::ConstPtr &msg)
#define ID_VARIABLE_PUTID