Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public StationCollection CreateRainStations(CommuniSoft soft)
        {
            string deviceType = "LXRainDevice";

            StationCollection stations = new StationCollection();
            DataTable         stTable  = LXDBDBI.LXDB.GetRainStationDataTable();

            foreach (DataRow row in stTable.Rows)
            {
                string    rainName    = row["Rain_Name"].ToString();
                int       rainAddress = Convert.ToInt32(row["Rain_addr"]);
                string    ipString    = row["Rain_IP"].ToString();
                IPAddress ip          = IPAddress.Parse(ipString);
                int       deviceid    = rainAddress;
                int       stationid   = rainAddress;

                SocketCommuniType ct = new SocketCommuniType(ip);
                Station           st = new Station(rainName, ct);
                st.ID = stationid;

                DeviceDefine dd = soft.DeviceDefineManager.
                                  DeviceDefineCollection.FindDeviceDefine(deviceType);
                LXRainDevice d = new LXRainDevice(dd, rainAddress);
                d.ID = deviceid;

                st.Devices.Add(d);

                stations.Add(st);
            }
            return(stations);
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public void Create(CommuniSoft soft)
        {
            if (soft == null)
            {
                throw new ArgumentNullException("soft");
            }

            foreach (Station st in soft.HardwareManager.Stations)
            {
                foreach (Device d in st.Devices)
                {
                    //if (d.DeviceType == _deviceType)
                    if (StringHelper.Equal(d.DeviceDefine.DeviceType, _deviceType))
                    {
                        //Opera o = soft.OperaFactory.Create(_deviceType, _operaname);
                        DeviceDefine dd = soft.DeviceDefineManager.DeviceDefineCollection.FindDeviceDefine(_deviceType);
                        if (dd == null)
                        {
                            throw new ConfigException(_deviceType);
                        }
                        Opera o = dd.CreateOpera(_operaname);
                        if (o == null)
                        {
                            string exmsg = string.Format("Create opera fail\r\n device: '{0}'\r\n opera: '{1}'",
                                                         _deviceType, _operaname);
                            throw new ConfigException(exmsg);
                        }
                        Strategy s = _strategyFactory.Create();
                        Task     t = new Task(d, o, s);
                        soft.TaskManager.Tasks.Add(t);
                    }
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dd"></param>
        /// <param name="name"></param>
        /// <param name="address"></param>
        /// <returns></returns>
        static public Device Create(DeviceDefine dd, string name, int address)
        {
            if (Xdgk.Common.StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD221Modbus))
            {
                return(XD221ModbusDeviceFactory.Create(dd, name, address));
            }

            if (StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD221))
            {
                return(XD221DeviceFactory.Create(dd, name, address));
            }

            if (StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD202))
            {
                return(XD202DeviceFactory.Create(dd, name, address));
            }

            if (StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD2300))
            {
                return(XD2300DeviceFactory.Create(dd, name, address));
            }

            if (StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD2402))
            {
                return(XD2402DeviceFactory.Create(dd, name, address));
            }

            throw new ArgumentException("not find deviceDefine: " + dd.DeviceType);
        }
Esempio n. 4
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="dd"></param>
        /// <param name="name"></param>
        /// <param name="address"></param>
        /// <returns></returns>
        public static Device Create(DeviceDefine dd, string name, int address)
        {
            if (Xdgk.Common.StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD221Modbus))
                return XD221ModbusDeviceFactory.Create(dd, name, address);

            if (StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD221))
                return XD221DeviceFactory.Create(dd, name, address);

            if (StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD202))
                return XD202DeviceFactory.Create(dd, name, address);

            if (StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD2300))
                return XD2300DeviceFactory.Create(dd, name, address);

            if (StringHelper.Equal(dd.DeviceType, DeviceDefineConst.DDT_XD2402))
                return XD2402DeviceFactory.Create(dd, name, address);

            throw new ArgumentException("not find deviceDefine: " + dd.DeviceType);
        }
Esempio n. 5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="node"></param>
        public XmlOperaFactory(CommuniSoft communiSoft, XmlNode deviceDefinesNode)
            : base(communiSoft)
        {
            if (deviceDefinesNode == null)
            {
                throw new ArgumentNullException("node");
            }
            this._deviceDefinesNode = deviceDefinesNode;

            foreach (XmlNode deviceDefineNode in deviceDefinesNode.ChildNodes)
            {
                if (deviceDefineNode.Name == DeviceDefineNodeNames.DeviceDefine)
                {
                    string deviceType = GetAttribute((XmlElement)deviceDefineNode,
                                                     DeviceDefineNodeNames.DeviceType);
                    string deviceText = GetAttribute((XmlElement)deviceDefineNode,
                                                     DeviceDefineNodeNames.DeviceText);

                    // TODO: remove xmlOperaFactory DeviceDefineCollection
                    //
                    // TODO: 2010-07-28 add device parameter define
                    //
                    DeviceDefine dd = new DeviceDefine(deviceType, deviceText);

                    XmlNode paramDefinesNode = deviceDefineNode.SelectSingleNode(ParameterNodeNames.ParameterDefineCollection);
                    if (paramDefinesNode != null)
                    {
                        ParameterDefineCollection paramDefines = XmlModbusParameterDefineBuilder.BuildParameterDefineCollection(paramDefinesNode);
                        dd.ParameterDefineCollection = paramDefines;
                    }

                    this.DeviceDefineCollection.Add(dd);

                    //this.CommuniSoft.DeviceDefineCollection.Add(dd);
                }
            }
        }
Esempio n. 6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void okButton_Click(object sender, EventArgs e)
 {
     if (VerifyAddress())
     {
         if (ADEState == ADEState.Edit)
         {
             EditDevice();
         }
         else
         {
             DeviceDefine dd = YeHeCommuniServerApp.Default.CommuniSoft.DeviceDefineManager.DeviceDefineCollection.FindDeviceDefine(this.DeviceType);
             //this.Device = new Device(dd, "", this.Address);
             this.Device        = DeviceFactory.Create(dd, "", this.Address);
             this.Device.Remark = this.txtRemark.Text;
             AddDevice();
         }
         this.DialogResult = DialogResult.OK;
         this.Close();
     }
     else
     {
         NUnit.UiKit.UserMessage.DisplayFailure("已经存在相同地址");
     }
 }
Esempio n. 7
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="dd"></param>
 /// <param name="name"></param>
 /// <param name="address"></param>
 /// <param name="remark"></param>
 /// <param name="id"></param>
 /// <param name="source"></param>
 /// <returns></returns>
 public virtual Device OnBuildDevice(DeviceDefine dd, string name, Int64 address, string remark, int id, object source)
 {
     Device d = new Device(dd, name, address);
     d.ID = id;
     d.Remark = remark;
     return d;
 }
Esempio n. 8
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="dd"></param>
 /// <param name="name"></param>
 /// <param name="address"></param>
 public XD202Device(DeviceDefine dd, string name, int address)
     : base(dd, name, address)
 {
 }
Esempio n. 9
0
        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        protected virtual IDeviceForm GetDeviceForm(DeviceDefine dd)
        {
            if (dd == null)
            {
                throw new ArgumentNullException("dd");
            }

            frmDeviceItem f = new frmDeviceItem();
            return f;
        }
Esempio n. 10
0
 public LXRainDevice(DeviceDefine dd, long address)
     : base(dd, "", address)
 {
 }
Esempio n. 11
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="dd"></param>
 /// <param name="name"></param>
 /// <param name="address"></param>
 /// <returns></returns>
 public static XD221Device Create(DeviceDefine dd, string name, int address)
 {
     XD221Device d = new XD221Device(dd, name, address);
     return d;
 }
Esempio n. 12
0
File: Device.cs Progetto: hkiaipc/yh
 /// <summary>
 /// 
 /// </summary>
 public Device(DeviceDefine deviceDefine, string name, int address)
 {
     this._deviceDefine = deviceDefine;
     this._name = name;
     this.m_address = address;
 }
Esempio n. 13
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="dd"></param>
 /// <param name="name"></param>
 /// <param name="address"></param>
 public XD202Device(DeviceDefine dd, string name, int address)
     : base(dd, name, address)
 {
 }
Esempio n. 14
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="node"></param>
        public XmlOperaFactory(CommuniSoft communiSoft, XmlNode deviceDefinesNode)
            : base(communiSoft)
        {
            if (deviceDefinesNode == null)
                throw new ArgumentNullException("node");
            this._deviceDefinesNode = deviceDefinesNode;

            foreach( XmlNode deviceDefineNode in deviceDefinesNode.ChildNodes )
            {
                if (deviceDefineNode.Name == DeviceDefineNodeNames.DeviceDefine)
                {
                    string deviceType = GetAttribute((XmlElement)deviceDefineNode,
                        DeviceDefineNodeNames.DeviceType);
                    string deviceText = GetAttribute((XmlElement)deviceDefineNode,
                        DeviceDefineNodeNames.DeviceText);

                    // TODO: remove xmlOperaFactory DeviceDefineCollection
                    //
                    // TODO: 2010-07-28 add device parameter define
                    //
                    DeviceDefine dd = new DeviceDefine(deviceType, deviceText);

                    XmlNode paramDefinesNode = deviceDefineNode.SelectSingleNode(ParameterNodeNames.ParameterDefineCollection);
                    if (paramDefinesNode != null)
                    {
                        ParameterDefineCollection paramDefines = XmlModbusParameterDefineBuilder.BuildParameterDefineCollection(paramDefinesNode);
                        dd.ParameterDefineCollection = paramDefines;
                    }

                    this.DeviceDefineCollection.Add(dd);

                    //this.CommuniSoft.DeviceDefineCollection.Add(dd);
                }
            }
        }
Esempio n. 15
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="dd"></param>
 /// <param name="name"></param>
 /// <param name="address"></param>
 public XD2402Device(DeviceDefine dd, string name, long address)
     : base(dd, name, address)
 {
 }
Esempio n. 16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dd"></param>
        /// <param name="name"></param>
        /// <param name="address"></param>
        /// <returns></returns>
        static public XD221Device Create(DeviceDefine dd, string name, int address)
        {
            XD221Device d = new XD221Device(dd, name, address);

            return(d);
        }
Esempio n. 17
0
 public DeviceTest(DeviceDefine dd , string name)
     : base(dd,name,1)
 {
 }
Esempio n. 18
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="soft"></param>
        public override void Build(CommuniSoft soft)
        {
            System.Collections.Hashtable idStationMap = new System.Collections.Hashtable();
            // build station
            //
            foreach (DataRow stationDR in _stationDataTable.Rows)
            {
                bool isStationDeleted = false;
                if (stationDR["Deleted"] != DBNull.Value)
                {
                    isStationDeleted = Convert.ToBoolean(stationDR["Deleted"]);
                }

                if (!isStationDeleted)
                {
                    string stationName    = stationDR["Name"].ToString();
                    bool   isExistStation = soft.HardwareManager.Stations.ExistName(stationName, null);
                    if (!isExistStation)
                    {
                        string xml = stationDR["CommuniTypeContent"].ToString().Trim();
                        if (xml.Length == 0)
                        {
                            // TODO: 2010-09-17
                            // log error info
                            //
                            continue;
                        }

                        int stationID = (int)stationDR["StationID"];

                        XmlDataDocument doc = new XmlDataDocument();
                        doc.LoadXml(xml);
                        XmlNode     node        = doc.SelectSingleNode("socketcommunitype");
                        CommuniType communiType = Xdgk.Communi.XmlBuilder.XmlSocketCommuniBuilder.Build(node);

                        Station station = new Station(stationName, communiType);
                        station.ID = stationID;
                        idStationMap.Add(stationID, station);
                        soft.HardwareManager.Stations.Add(station);
                    }
                }
            }

            // build device
            //
            foreach (DataRow deviceDR in _deviceDataTable.Rows)
            {
                bool isDeviceDeleted = false;
                if (deviceDR["deleted"] != DBNull.Value)
                {
                    isDeviceDeleted = Convert.ToBoolean(deviceDR["Deleted"]);
                }

                if (isDeviceDeleted)
                {
                    continue;
                }

                int    stationID     = (int)deviceDR["StationID"];
                int    deviceID      = (int)deviceDR["DeviceID"];
                string deviceType    = deviceDR["DeviceType"].ToString();
                string addressString = deviceDR["Address"].ToString().Trim();

                if (addressString.Length == 0)
                {
                    continue;
                }

                int address = Convert.ToInt32(addressString);

                Station st = idStationMap[stationID] as Station;
                if (st == null)
                {
                    continue;
                }

                //DeviceDefine dd = soft.DeviceDefineCollection.FindDeviceDefine(deviceType);
                DeviceDefine dd = soft.DeviceDefineManager.DeviceDefineCollection.FindDeviceDefine(deviceType);
                if (dd == null)
                {
                    bool exist = soft.UnDefineDeviceType.Exist(deviceType);
                    if (!exist)
                    {
                        soft.UnDefineDeviceType.Add(deviceType);
                        string msg = string.Format(strings.UnDefineDeviceType, deviceType);
                        NUnit.UiKit.UserMessage.Display(msg);
                    }
                    continue;
                }

                //Xdgk.Communi.Device device = new Device(dd, "", address);
                Xdgk.Communi.Device device = DeviceFactory.Create(dd, "", address);

                //Xdgk.Communi.Device device = new Device(deviceType, address);
                //string t = soft.OperaFactory.DeviceDefineCollection.GetDeviceText(deviceType);
                //device.Text = t;
                device.ID = deviceID;

                //Station st = soft.HardwareManager.GetStation(stationName);
                st.Devices.Add(device);
            }

            //
            //
            StationCollection rainStations = this.CreateRainStations(soft);

            foreach (Station item in rainStations)
            {
                soft.HardwareManager.Stations.Add(item);
            }
        }
Esempio n. 19
0
File: Class1.cs Progetto: hkiaipc/c2
 public DeviceTest(DeviceDefine dd)
     : base(dd, "d", 1)
 {
 }
Esempio n. 20
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="dd"></param>
 /// <param name="name"></param>
 /// <param name="address"></param>
 public XD2402Device(DeviceDefine dd, string name, long address) :
     base(dd, name, address)
 {
 }
Esempio n. 21
0
 public LXRainDevice(DeviceDefine dd, long address)
     : base(dd, "", address)
 {
 }
Esempio n. 22
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="station"></param>
        /// <param name="dd"></param>
        public void InitForAdd(Station station, DeviceDefine dd)
        {
            if (station == null)
            {
                throw new ArgumentNullException("station");
            }

            if( dd == null )
            {
                throw new ArgumentNullException("dd");
            }

            this.Station = station;
            this.DeviceDefine = dd;
            this._adeState = ADEState.Add;
        }