protected override CommonDataContract.PollItemValue[] Poll() { if (_coreOpcServer.isConnectedDA) { OPCDA.NET.SyncIOGroup group = new OPCDA.NET.SyncIOGroup(_coreOpcServer); OPCDA.NET.OPCItemState opcItemState; List<CommonDataContract.PollItemValue> pollItemValues = new List<CommonDataContract.PollItemValue>(); OPCDataContract.OPCItemValue newOpctemValue; int iRes; foreach (var itemName in _opcItemNames) { try { iRes = group.Read(OPCDA.OPCDATASOURCE.OPC_DS_CACHE, itemName, out opcItemState); newOpctemValue = new OPCItemValue(); newOpctemValue.ItemID = itemName; newOpctemValue.Value = opcItemState.DataValue; newOpctemValue.Timestamp = DateTime.Now; newOpctemValue.ClientHandle = opcItemState.HandleClient; newOpctemValue.Error = opcItemState.Error; newOpctemValue.QualityCode = opcItemState.Quality; pollItemValues.Add(newOpctemValue); } catch (Exception ex) { TDInternalLogger.GetLogger().LogException(new Exception("TDOpcV2PollProcess.Poll()", ex)); } } return pollItemValues.ToArray(); } else { TDInternalLogger.GetLogger().Log("TDOpcV2PollProcess.Poll()", "DA Server not connected"); return new CommonDataContract.PollItemValue[0]; } }
protected CommonDataContract.PollItemValue[] ConvertToPollItemValues(OPCDA.NET.ItemValue[] values) { List<CommonDataContract.PollItemValue> result = new List<CommonDataContract.PollItemValue>(); OPCDataContract.OPCItemValue newItemValue; foreach (var currentOPCItemValue in values) { newItemValue = new OPCDataContract.OPCItemValue(currentOPCItemValue); result.Add(newItemValue); } return result.ToArray(); }