Opc.Ua.Com.Server.ComDaGroup.GetItemDeadbands C# (CSharp) Method

GetItemDeadbands() public method

Gets the deadband for the items.
public GetItemDeadbands ( int serverHandles, float deadbands ) : int[]
serverHandles int The server handles.
deadbands float The deadbands.
return int[]
        public int[] GetItemDeadbands(int[] serverHandles, float[] deadbands)
        {
            TraceState("GetItemDeadbands", serverHandles.Length);
            ThrowIfDisposed();

            int[] errors = new int[serverHandles.Length];
            ComDaGroupItem[] items = new ComDaGroupItem[serverHandles.Length];
            int count = 0;

            lock (m_lock)
            {
                for (int ii = 0; ii < serverHandles.Length; ii++)
                {
                    ComDaGroupItem item = null;

                    if (!m_itemsByHandle.TryGetValue(serverHandles[ii], out item))
                    {
                        errors[ii] = ResultIds.E_INVALIDHANDLE;
                        continue;
                    }

                    if (item.EuType >= 0 && item.EuType != (int)OpcRcw.Da.OPCEUTYPE.OPC_ANALOG)
                    {
                        errors[ii] = ResultIds.E_DEADBANDNOTSUPPORTED;
                        continue;
                    }

                    if (item.Deadband == -1)
                    {
                        errors[ii] = ResultIds.E_DEADBANDNOTSET;
                        continue;
                    }
                    
                    deadbands[ii] = item.Deadband;

                    item.Deadband = deadbands[ii];
                    items[ii] = item;
                    count++;
                }
            }

            if (count == 0)
            {
                return errors;
            }

            // need the EU Info if the deadband is specified.
            m_manager.UpdateItemEuInfo(this, items);

            lock (m_lock)
            {
                for (int ii = 0; ii < serverHandles.Length; ii++)
                {
                    ComDaGroupItem item = items[ii];

                    if (item != null)
                    {
                        if (item.EuType != (int)OpcRcw.Da.OPCEUTYPE.OPC_ANALOG)
                        {
                            errors[ii] = ResultIds.E_DEADBANDNOTSUPPORTED;
                            continue;
                        }

                        deadbands[ii] = item.Deadband;
                    }
                }
            }

            return errors;
        }