1 #include <opcua_basedatavariabletype.h> 2 #include "uabasenodes.h" 8 #include <uadatetime.h> 9 #include "uasemaphore.h" 11 #include <boost/lexical_cast.hpp> 16 using boost::lexical_cast;
17 using boost::bad_lexical_cast;
27 const char *p =
conf->index().data();
29 m_ind = (OpcUa_UInt16)strtol(p,NULL,16);
84 for(
int i = 0; i < cms->
c_dlc; i++)
99 short index = cms->
c_data[2];
100 index = (index << 8) + cms->
c_data[1];
106 OpcUa_ReferenceParameter(code);
107 UaStatus ret = OpcUa_Good;
120 OpcUa_ReferenceParameter(code);
121 OpcUa_ReferenceParameter(
value);
122 UaStatus ret = OpcUa_Good;
134 OpcUa_ReferenceParameter(code);
135 OpcUa_ReferenceParameter(
conf);
136 OpcUa_ReferenceParameter(blink);
167 val.setString(UaString(sdob->
index().c_str()));
176 UaStatus ret = OpcUa_Good;
177 OpcUa_Boolean togleBit =
false;
212 for (OpcUa_Int32 i = 0; i < nn; i++) {
216 UaDateTime sdt = UaDateTime::now();
218 udv.setDataValue(val, OpcUa_False, OpcUa_Good,
m_udt, sdt);
220 " index = " << std::hex <<
getIndex() <<
" subindex = " << std::hex << (int)
getSubIndex() <<
" " 221 << std::hex << (int)
m_buffer.data()[4] <<
" " << std::hex << (int)
m_buffer.data()[5] <<
" " << std::hex << (int)
m_buffer.data()[6] <<
" " << std::hex << (int)
m_buffer.data()[7];
230 " index = " << std::hex <<
getIndex() <<
" subindex = " << std::hex << (int)
getSubIndex() <<
" len = " << std::hex << len;
232 OpcUa_UInt32 nByte = 0;
234 while (nByte < len) {
236 togleBit = !togleBit;
244 " " << ret.toString().toUtf8() <<
" CobId= " << std::hex <<
getCobId() <<
" index = " << std::hex <<
getIndex() <<
" subindex = " << std::hex <<
getSubIndex();
250 (int)
m_buffer.data()[0] <<
" " << std::hex << (int)
m_buffer.data()[1] <<
" " << std::hex << (int)
m_buffer.data()[2] <<
" " << std::hex << (int)
m_buffer.data()[3] <<
" " << std::hex <<
251 (int)
m_buffer.data()[4] <<
" " << std::hex << (int)
m_buffer.data()[5] <<
" " << std::hex << (int)
m_buffer.data()[6] <<
" " << std::hex << (int)
m_buffer.data()[7];
253 OpcUa_UInt32 header =
m_buffer[0] & 0xE0;
255 OpcUa_Int32 lll = len - nByte;
258 for (OpcUa_Int32 i = 1; i <= lll; i++)
260 UaDateTime sdt = UaDateTime::now();
266 udv.setDataValue(val, OpcUa_False, OpcUa_Good,
m_udt, sdt);
273 ret.setStatus(OpcUa_UncertainNoCommunicationLastUsableValue,
"Segmented SDO transfer was incorrect");
278 for (OpcUa_Int32 i = 1; i < 8; i++)
286 ret.setStatus(OpcUa_UncertainNoCommunicationLastUsableValue,
"SDO transfer was aborted");
291 ret.setStatus(OpcUa_UncertainNoCommunicationLastUsableValue,
"Segmented SDO transfer was incorrect");
302 ret.setStatus(OpcUa_UncertainNoCommunicationLastUsableValue,
"SDO transfer was aborted");
315 UaStatus ret = OpcUa_Good;
319 " index=" << hex <<
getIndex() <<
" subindex=" << hex << std::hex << (int)
getSubIndex() <<
" fun=" << hex << setw(2) << (int)
m_buffer[0];
324 OpcUa_Int32 index = 0;
337 OpcUa_UInt32 header =
m_buffer[0] & 0xF0;
341 " " << std::hex << setw(2) <<
m_buffer.data()[0] <<
" index = " << std::hex <<
getIndex() <<
" subindex = " << std::hex << setw(2) << (int)
getSubIndex() <<
" len = " << len;
346 nn = 7 - (OpcUa_Byte)len;
348 for (OpcUa_Int32 i = 1; i <= len; i++)
361 for (OpcUa_Int32 i = 1; i < 8; i++)
373 " index = " << std::hex <<
getIndex() <<
" subindex = " << std::hex << (int)
getSubIndex() <<
" len = " << len;
376 nn = 7 - (OpcUa_Byte)len;
383 for (OpcUa_Int32 i = 1; i <= len; i++)
409 ret.setStatus(OpcUa_UncertainNoCommunicationLastUsableValue,
"SDO transfer was aborted");
415 ret.setStatus(OpcUa_UncertainNoCommunicationLastUsableValue,
"Segmented SDO transfer was incorrect");
429 ret.setStatus(OpcUa_UncertainNoCommunicationLastUsableValue,
"SDO transfer was aborted");