14 :
CanObject(interf, ca, blink, code), m_state(0), m_iBootupCounter(0), m_EmergencyCounter(0)
44 UaStatus ret = OpcUa_Good;
51 nameMethod =
"NMT Start";
55 nameMethod =
"NMT Stop";
59 nameMethod =
"NMT PreOperation";
63 nameMethod =
"NMT Reset";
67 OpcUa_Byte command =
value->value()->Value.Byte;
69 nameMethod =
"NMT " + command;
85 UaDataValue dataValue;
90 udt = UaDateTime::fromTime_t(cms->
c_time.tv_sec);
91 udt.addMilliSecs(cms->
c_time.tv_usec/1000);
92 sdt = UaDateTime::now();
94 OpcUa_Byte st = cms->
c_data[0] & 0x7F;
101 val.setByte(cms->
c_data[0]);
102 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
103 Status =
m_state->setValue(NULL, dataValue, OpcUa_False);
111 val = *dataValue.value();
112 val.toUInt32(bcount);
114 val.setUInt32(bcount);
115 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
149 UaDataValue dataValue;
155 udt = UaDateTime::fromTime_t(cms->
c_time.tv_sec);
156 udt.addMilliSecs(cms->
c_time.tv_usec/1000);
157 sdt = UaDateTime::now();
159 OpcUa_UInt16 serr = cms->
c_data[1];
160 serr = (serr << 8) + cms->
c_data[0];
162 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
166 val = *dataValue.value();
170 dataValue.setDataValue(val, OpcUa_False, OpcUa_Good, udt, sdt);
173 val.setByte(cms->
c_data[2]);
174 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
175 Status =
m_Error->setValue(NULL, dataValue, OpcUa_False);
177 val.setByte(cms->
c_data[3]);
178 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
181 val.setByte(cms->
c_data[4]);
182 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
185 val.setByte(cms->
c_data[5]);
186 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
189 val.setByte(cms->
c_data[6]);
190 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
193 val.setByte(cms->
c_data[7]);
194 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
214 UaDateTime sdt = UaDateTime::now();
219 ((OpcUa::BaseDataVariableType *)blink)->setDataType(OpcUaType_UInt32);
221 udt.setDataValue(val, OpcUa_False, OpcUa_Good, sdt, sdt);
222 ((OpcUa::BaseDataVariableType *)blink)->setValue(0, udt, OpcUa_False);
223 ((OpcUa::BaseDataVariableType *)blink)->setValueHandling(UaVariable_Value_Cache);
226 m_state = (OpcUa::BaseVariableType *)blink;
230 udt.setDataValue(val,OpcUa_False,OpcUa_Good,sdt,sdt);
231 ((OpcUa::BaseDataVariableType *)blink)->setValue(0,udt,OpcUa_False);
239 udt.setDataValue(val, OpcUa_False, OpcUa_Good, sdt, sdt);
240 ((OpcUa::BaseDataVariableType *)blink)->setValue(0, udt, OpcUa_False);
244 m_Error = (OpcUa::BaseVariableType *)blink;
277 default:
return OpcUa_Bad;
291 if (nodeb->
type().present()) {
292 val.setString(UaString(nodeb->
type().get().c_str()));
297 OpcUa_UInt16 n = nodeb->
nodeid();
312 UaThread::usleep(100);
333 UaDataValue dataValue;
341 udt = UaDateTime::now();
342 sdt = UaDateTime::now();
345 dataValue.setDataValue(val,OpcUa_False,OpcUa_Good,udt,sdt);
346 Status =
m_state->setValue(NULL, dataValue, OpcUa_False);
357 UaReferenceLists *rl = p->getUaReferenceLists();
358 for (UaReference *ur = const_cast<UaReference *>(rl->pTargetNodes()); ur != NULL; ur = ur->pNextForwardReference())
360 OpcUa_UInt32 refType = ur->referenceTypeId().identifierNumeric();
361 if (refType == OpcUaId_HasComponent) {
362 UaNode *pNode = ur->pTargetNode();
363 int t = pNode->nodeClass();
364 if (
t == OpcUa_NodeClass_Object)
367 if (
t == OpcUa_NodeClass_Variable)
369 UaDataValue udv = (
static_cast<UaVariable *
>(pNode))->value(0);
373 udv.setStatusCode(OpcUa_Good);
377 udv.setStatusCode(OpcUa_BadNoCommunication);
379 udv.setServerTimestamp(UaDateTime::now());
380 udv.setSourceTimestamp(UaDateTime::now());
382 UaStatus us = (
static_cast<UaVariable *
>(pNode))->setValue(0,udv,OpcUa_False);