13 UaDateTime sdt = UaDateTime::now();
21 switch (getItemType()) {
22 case OpcUaType_Boolean:
31 case OpcUaType_UInt16:
37 case OpcUaType_UInt32:
43 case OpcUaType_UInt64:
49 case OpcUaType_Double:
58 udt.setDataValue(val, OpcUa_False, OpcUa_Good, sdt, sdt);
59 ((OpcUa::BaseDataVariableType *)pAS)->setValue(0, udt, OpcUa_False);
63 val.setStatusCode(OpcUa_BadWaitingForInitialData);
64 udt.setDataValue(val, OpcUa_False, OpcUa_Good, sdt, sdt);
65 ((OpcUa::BaseDataVariableType *)pAS)->setValue(0, udt, OpcUa_False);
90 OpcUa_Variant convData;
92 if (compatible.isBad())
95 UaString sDiag =
"Not compatible Data Types";
96 ret.setStatus(OpcUa_BadDataEncodingUnsupported, sDiag);
101 switch (getItemType()) {
102 case OpcUaType_Boolean:
106 if (convData.Value.Boolean)
119 case OpcUaType_Int16:
120 case OpcUaType_UInt16:
123 unsigned char temp[2];
124 unsigned short dtemp;
127 dt.dtemp = convData.Value.UInt16;
132 case OpcUaType_Int32:
135 unsigned char temp[4];
138 dt.dtemp = convData.Value.Int32;
146 case OpcUaType_UInt32:
149 unsigned char temp[4];
152 dt.dtemp = convData.Value.UInt32;
160 case OpcUaType_Float:
163 unsigned char temp[4];
166 dt.dtemp = convData.Value.Float;
174 case OpcUaType_Double:
177 unsigned char temp[8];
181 dt.dtemp = convData.Value.Double;
182 m_buffer[7] = dt.temp[7];
183 m_buffer[6] = dt.temp[6];
184 m_buffer[5] = dt.temp[5];
185 m_buffer[4] = dt.temp[4];
186 m_buffer[3] = dt.temp[3];
187 m_buffer[2] = dt.temp[2];
188 m_buffer[1] = dt.temp[1];
189 m_buffer[0] = dt.temp[0];
193 case OpcUaType_ByteString:
196 m_buffer[7] = sData->Value.ByteString.Data[7];
197 m_buffer[6] = sData->Value.ByteString.Data[6];
198 m_buffer[5] = sData->Value.ByteString.Data[5];
199 m_buffer[4] = sData->Value.ByteString.Data[4];
200 m_buffer[3] = sData->Value.ByteString.Data[3];
201 m_buffer[2] = sData->Value.ByteString.Data[2];
202 m_buffer[1] = sData->Value.ByteString.Data[1];
203 m_buffer[0] = sData->Value.ByteString.Data[0];
225 switch (getItemType()) {
226 case OpcUaType_Boolean:
229 newValue.setBool((m_buffer[sByte] &
t) != 0 );
234 newValue.setByte(m_buffer[sByte]);
237 case OpcUaType_UInt16:
239 unsigned short ushortTemp = (
unsigned char)m_buffer[sByte+1];
240 ushortTemp = ( ushortTemp << 8 ) + (
unsigned char)m_buffer[sByte];
241 newValue.setUInt16(ushortTemp);
244 case OpcUaType_UInt32:
246 unsigned int uintTemp = (
unsigned char)m_buffer[sByte+3];
247 uintTemp = ((((( uintTemp << 8 ) + (
unsigned char)m_buffer[sByte+2]) << 8) + (
unsigned char)m_buffer[sByte+1]) << 8) + (
unsigned char)m_buffer[sByte];
248 newValue.setUInt32(uintTemp);
251 case OpcUaType_Float:
257 dt.temp = (
unsigned char)m_buffer[sByte+3];
258 dt.temp = ((((( dt.temp << 8 ) + (
unsigned char)m_buffer[sByte+2]) << 8) + (
unsigned char)m_buffer[sByte+1]) << 8) + (
unsigned char)m_buffer[sByte];
259 newValue.setFloat(dt.dtemp);
263 case OpcUaType_Double:
269 dt.dtemp = (
unsigned char)m_buffer[7];
270 dt.temp = ((((( dt.temp << 8 ) + (
unsigned char)m_buffer[6]) << 8) + (
unsigned char)m_buffer[5]) << 8) + (
unsigned char)m_buffer[4]+
271 (
unsigned char)m_buffer[3]+(
unsigned char)m_buffer[2]+(
unsigned char)m_buffer[1]+(
unsigned char)m_buffer[0];
272 newValue.setDouble(dt.dtemp);
275 case OpcUaType_Int16:
277 unsigned short shortTemp = (
unsigned char)m_buffer[sByte+1];
278 shortTemp = ( shortTemp << 8 ) + (
unsigned char)m_buffer[sByte];
279 newValue.setInt16((OpcUa_Int16)shortTemp);
282 case OpcUaType_Int32:
284 unsigned int intTemp = (
unsigned char)m_buffer[sByte+3];
285 intTemp = ((((( intTemp << 8 ) + (
unsigned char)m_buffer[sByte+2]) << 8) + (
unsigned char)m_buffer[sByte+1]) << 8) + (
unsigned char)m_buffer[sByte];
286 newValue.setInt32((OpcUa_Int32)intTemp);
307 UaDataValue dataValue;
309 UaStatus Status = OpcUa_Bad;
311 sdt = UaDateTime::now();
315 dataValue.setDataValue(val, OpcUa_True, OpcUa_Good,
getCanPDOObject()->m_udt,sdt);
316 OpcUa::BaseDataVariableType *uaentry = getUaEntry();
318 Status = uaentry->setValue(NULL, dataValue, OpcUa_False);
323 OpcUa_ReferenceParameter(
conf);
324 OpcUa_ReferenceParameter(code);
325 OpcUa_ReferenceParameter(blink);
347 std::cout <<
"Empty list of children\n" << endl;
358 val.setByte(pdoi->
bit());