1 #include "BuildingAutomationTypeIds.h" 50 IOManagerCallback* pCallback,
51 const ServiceContext& serviceContext,
52 OpcUa_UInt32 hTransaction,
53 OpcUa_UInt32 totalItemCountHint,
55 OpcUa_TimestampsToReturn timestampsToReturn,
56 TransactionType transactionType,
57 OpcUa_Handle& hIOManagerContext)
59 OpcUa_ReferenceParameter(maxAge);
60 TRACE0_INOUT(SERVER_CORE, UA_T
"--> IOManagerPDO::beginTransaction");
61 UaStatus ret = OpcUa_Good ;
65 if ( transactionType == IOManager::WRITE )
68 pTransaction->
setSession(serviceContext.pSession());
81 for (OpcUa_UInt32 i = 0; i < count; i++)
88 hIOManagerContext = (OpcUa_Handle)pTransaction;
90 TRACE0_INOUT(SERVER_CORE, UA_T
"--> IOManagerPDO::beginWriteTransaction");
94 hIOManagerContext = 0;
97 ret = OpcUa_BadInvalidArgument;
100 TRACE1_INOUT(SERVER_CORE, UA_T
"<-- IOManagerPDO::beginTransaction [ret=0x%lx]", ret.statusCode());
110 TRACE0_INOUT(SERVER_CORE, UA_T
"--> IOManagerPDO::finishTransaction");
111 UaStatus ret = OpcUa_Good;
112 UaObjectArray<UaStatus> retTrun;
118 OpcUa_UInt32 nRetTrun = 0;
119 for(OpcUa_UInt32 i = 0; i < pTransaction->
m_iPDONumber.size(); i++)
122 TRACE0_INOUT(SERVER_CORE, UA_T
"--> IOManagerPDO::Write");
126 retTrun[nRetTrun] = pTransaction->
m_arrCanPDOObject[i]->sendDeviceMessage(Ba_PDOType_OUT);
127 if (i < pTransaction->m_iPDONumber.size()-1)
129 for (OpcUa_UInt32 j = nRetTrun + 1; j < pTransaction->
m_iPDONumber[i + 1]; j++)
131 retTrun[j] = retTrun[nRetTrun];
137 for(OpcUa_UInt32 i = 0; i < pTransaction->
m_nAsyncCount; i++)
144 ret.setStatus(OpcUa_BadUnexpectedError,
"No Transaction");
145 TRACE1_INOUT(SERVER_CORE, UA_T
"<-- IOManagerPDO::badFinishTransaction [ret=0x%lx]", ret.statusCode());
149 TRACE1_INOUT(SERVER_CORE, UA_T
"<-- IOManagerPDO::finishTransaction [ret=0x%lx]", ret.statusCode());
163 OpcUa_Handle hIOManagerContext,
164 OpcUa_UInt32 callbackHandle,
165 VariableHandle* pVariableHandle,
168 OpcUa_ReferenceParameter(hIOManagerContext);
169 OpcUa_ReferenceParameter(callbackHandle);
170 OpcUa_ReferenceParameter( pVariableHandle);
184 OpcUa_Handle hIOManagerContext,
185 OpcUa_UInt32 callbackHandle,
186 VariableHandle* pVariableHandle,
187 OpcUa_WriteValue* pWriteValue)
189 UaStatus ret = OpcUa_Good;
197 VariableHandleUaNode* vhUaNode = (VariableHandleUaNode*)pVariableHandle;
216 t_pdoi->
pack((
const OpcUa_Variant *)&pWriteValue->Value.Value);
223 ret = OpcUa_BadNotWritable;
229 ret = OpcUa_BadInvalidArgument;
246 OpcUa_Handle hIOManagerContext,
247 OpcUa_UInt32 callbackHandle,
248 IOVariableCallback* pIOVariableCallback,
249 VariableHandle* pVariableHandle,
250 MonitoringContext& monitoringContext)
252 OpcUa_ReferenceParameter(hIOManagerContext);
253 OpcUa_ReferenceParameter(callbackHandle);
254 OpcUa_ReferenceParameter(pIOVariableCallback);
255 OpcUa_ReferenceParameter(pVariableHandle);
256 OpcUa_ReferenceParameter(monitoringContext);
257 return OpcUa_BadNotSupported;
270 OpcUa_Handle hIOManagerContext,
271 OpcUa_UInt32 callbackHandle,
272 OpcUa_UInt32 hIOVariable,
273 MonitoringContext& monitoringContext)
275 OpcUa_ReferenceParameter(hIOManagerContext);
276 OpcUa_ReferenceParameter(callbackHandle);
277 OpcUa_ReferenceParameter(hIOVariable);
278 OpcUa_ReferenceParameter(monitoringContext);
279 return OpcUa_BadNotSupported;
292 OpcUa_Handle hIOManagerContext,
293 OpcUa_UInt32 callbackHandle,
294 OpcUa_UInt32 hIOVariable)
296 OpcUa_ReferenceParameter(hIOManagerContext);
297 OpcUa_ReferenceParameter(callbackHandle);
298 OpcUa_ReferenceParameter(hIOVariable);
299 return OpcUa_BadNotSupported;