private void GenAddressTypeList()
        {
            _addressList = new List <ModbusAddressType>();

            foreach (Tag tag in Tags.Values)
            {
                if (tag.AccessType == TagAccessType.Read || tag.AccessType == TagAccessType.ReadWrite)
                {
                    ModbusAddressType _address = ModbusTCPMasterDriver.GetAddressType(tag.Address);

                    //if (_address!=ModbusAddressType.WC&&_address!=ModbusAddressType.WR&&!_addressList.Contains(_address))
                    if (_address == ModbusAddressType.IC)
                    {
                        if (!_addressList.Contains(ModbusAddressType.IC))
                        {
                            _addressList.Add(_address);
                        }
                    }
                    else
                    {
                        LOG.Error(string.Format("ModbusTCPDataSource-GenAddressTypeList出错:不支持{0}类型", tag.Address));
                    }
                }
            }
        }
        //private void AddModbusItem(string Name, Int16 Address)
        //{
        //}

        //public void AsyncReadAllData()
        //{
        //    Thread checkThread = new Thread(SyncReadAllData);
        //    checkThread.Start();
        //}

        public void SyncReadAllData(ModbusAddressType address)
        {
            try
            {
                //LOG.Info("ModbusTCP_Driver");
                if (!_connected)
                {
                    return;
                }

                // Read from device to Buffer
                //_inputStatus = _master.ReadInputs(InputStatusStartAddress, InputStatusSize);

                //if (InputRegisterSize > 0)
                //{
                //    _inputRegister = _master.ReadInputRegisters(InputRegisterStartAddress, InputRegisterSize);
                //}
                if (address == ModbusAddressType.IC)
                {
                    if (InputStatusSize > 0)
                    {
                        _inputStatus = _master.ReadCoils(InputStatusStartAddress, InputStatusSize);
                    }
                }
                else
                {
                    LOG.Error(string.Format("读取ModbusTCPDriver数据出错:不支持{0}类型", address.ToString()));
                    return;
                }

                // Notification
                ModbusTCPDataUpdatedEventArgs Evargs = new ModbusTCPDataUpdatedEventArgs();
                DataArrivalEvent(this, Evargs);
            }
            catch (Exception ex)
            {
                _connected = false;
                LOG.Error(string.Format("读取ModbusTCPDriver数据出错:{0}", ex.Message));
            }
        }