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