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();
 }