public void                                         onItemValueChange(int aItemHandle, object aItemValue)
        {
            if (aItemHandle == mValueItemHandle)
            {
                double lValue;
                try
                {
                    lValue = mValueScale.scale(Convert.ToDouble(aItemValue));
                }
                catch (Exception lExc)
                {
                    throw new ArgumentException("Input value conversion error. ", lExc);
                }

                if (mFault)
                {
                    if (ValuesCompare.NotEqualDelta1.compare(lValue, mFaultValue))
                    {
                        mValueChanged = true;
                    }
                }
                else
                {
                    mFilter.addInValue(lValue);
                    if (mFilter.Ignore == false)
                    {
                        if (ValuesCompare.NotEqualDelta1.compare(lValue, mValue))
                        {
                            if (lValue <= mValueScale.OutMax && lValue >= mValueScale.OutMin)
                            {
                                setValueOutside(lValue);
                            }
                        }
                    }
                }

                return;
            }
        }
        public void                                         onItemValueChange(int aItemHandle, object aItemValue)
        {
            if (aItemHandle == mValueItemHandle)
            {
                double lValue;
                try
                {
                    lValue = mValueScale.scale(Convert.ToDouble(aItemValue));
                }
                catch (Exception lExc)
                {
                    throw new ArgumentException("Input value conversion error. ", lExc);
                }

                if (mFault)
                {
                    if (ValuesCompare.NotEqualDelta1.compare(lValue, mFaultValue))
                    {
                        mValueChanged = true;
                    }
                }
                else
                {
                    mFilter.addInValue(lValue);
                    if (mFilter.Ignore == false)
                    {
                        if (ValuesCompare.NotEqualDelta1.compare(lValue, mValue))
                        {
                            if (lValue <= mValueScale.OutMax && lValue >= mValueScale.OutMin)
                            {
                                setValueOutside(lValue);
                            }
                        }
                    }
                }

                return;
            }

            for (int i = 0; i < mThdItemHandles.Length; i++)
            {
                if (aItemHandle == mThdItemHandles[i])
                {
                    bool lValue;
                    try
                    {
                        lValue = Convert.ToBoolean(aItemValue);
                    }
                    catch (Exception lExc)
                    {
                        Log.Error("Value conversion error for threshold. " + lExc.Message, lExc.ToString());
                        mValueChanged = true;
                        continue;
                    }

                    if (lValue != mThdItemValues[i])
                    {
                        mValueChanged = true;
                    }

                    return;
                }
            }
        }