/// <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); }
/// <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); } } } }
/// <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); }
/// <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); }
/// <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); } } }
/// <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("已经存在相同地址"); } }
/// <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; }
/// <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) { }
/// <summary> /// /// </summary> /// <returns></returns> protected virtual IDeviceForm GetDeviceForm(DeviceDefine dd) { if (dd == null) { throw new ArgumentNullException("dd"); } frmDeviceItem f = new frmDeviceItem(); return f; }
public LXRainDevice(DeviceDefine dd, long address) : base(dd, "", address) { }
/// <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; }
/// <summary> /// /// </summary> public Device(DeviceDefine deviceDefine, string name, int address) { this._deviceDefine = deviceDefine; this._name = name; this.m_address = address; }
/// <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); } } }
/// <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) { }
/// <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); }
public DeviceTest(DeviceDefine dd , string name) : base(dd,name,1) { }
/// <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); } }
public DeviceTest(DeviceDefine dd) : base(dd, "d", 1) { }
/// <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; }