Example #1
0
        private Thread mUpdateThread; //Thread used to poll the CB280 inputs

        #endregion Fields

        #region Constructors

        ///////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Initializes flags and creates I/O tag arrays
        /// </summary>
        ///////////////////////////////////////////////////////////////////////////////////////////
        public CB280()
        {
            mInitialized = false;

            mInputBuffer = new byte[2];  //Only buffer digital inputs. Analog are read on demand.
            mOutputBuffer = new byte[2];	//Only buffer digital outputs. PWM are not implemented.

            mTags = new UDT(mID);

            mInputTags = new UDT("I");
            mOutputTags = new UDT("O");

            mTags.Add(mInputTags);
            mTags.Add(mOutputTags);

            for (int i = 0; i < 11; i++) {
                mInputTags.Add(new Tag("D" + i.ToString("00"), DataType.Bool, TagDirection.Input));
            }
            for (int i = 11; i < 19; i++) {
                mInputTags.Add(new Tag("A" + (i - 11).ToString("00"), DataType.Int16, TagDirection.Input));
                mInputTags[i].TagRead += new TagEventHandler(OnInputTagRead);
            }
            for (int i = 0; i < 8; i++) {
                mOutputTags.Add(new Tag("D" + i.ToString("00"), DataType.Bool, TagDirection.Output));
                mOutputTags[i].TagChanged += new TagEventHandler(OnOutputTagChanged);
            }
        }