コード例 #1
0
        public DataItem                                 addItem(string aTagName)
        {
            if (String.IsNullOrWhiteSpace(aTagName))
            {
                throw new ArgumentException("Item TagName is empty. ");
            }

            DataItem lItem = new DataItem();

            lItem.mTagName    = aTagName;
            lItem.mConnection = this;

            if (Connected)
            {
                try
                {
                    lItem.setValue(mPLC.Read(aTagName));
                    lItem.mAccess = EAccess.READ_WRITE;
                }
                catch (SimulationRuntimeException lExc)
                {
                    throw new InvalidOperationException(ErrorCodeMessage(lExc.RuntimeErrorCode), lExc);
                }
            }

            mItemListLock.EnterWriteLock();
            //========================================
            try
            {
                mItemList.Add(lItem);
                mItemListChanged = true;
            }
            finally
            {
                //========================================
                mItemListLock.ExitWriteLock();
            }

            ConnectionState += new EventHandler(lItem.onConnectionStateChanged);

            lItem.raisePropertiesChanged();
            lItem.updateValue();

            return(lItem);
        }