private void 除ToolStripMenuItem_Click(object sender, EventArgs e) { if (this.listView1.SelectedItems.Count > 0) { //if (MessageBox.Show("是否删除该设备类型?") == DialogResult.OK) if (MessageBox.Show("确定要删除该设备类型吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { if (this.listView1.SelectedItems[0].Tag is DeviceType) { var deviceType = this.listView1.SelectedItems[0].Tag as DeviceType; var serialnum = deviceType.Serialnum; List <ControlDeviceUnit> controlDeviceUnitList = ControlDeviceUnit.FindAllByDeviceTypeSerialnum(serialnum); if (controlDeviceUnitList != null) { MessageBox.Show("该设备类型已经在使用,不能删除"); return; } DeviceType.Delete(deviceType); this.InitDeviceTypeListView(); this.deviceTypeSerialnum = null; } } } }
/// <summary> /// 初始化控制设备列表 /// </summary> private void InitControlDeviceListView() { this.listView1.Items.Clear(); var controlDeviceList = ControlDeviceUnit.FindAll().ToList(); if (controlDeviceList.Count > 0 && controlDeviceList.Any()) { foreach (var controlDevic in controlDeviceList) { var strings = new string[] { controlDevic.Name, controlDevic.ModularDeviceName, controlDevic.DeviceTypeName, controlDevic.RelayTypeRemark, controlDevic.Function.ToString(), controlDevic.RegisterAddress1.ToString(), controlDevic.OriginalValue.ToString(), controlDevic.ProcessedValue + "", controlDevic.GroupNum.ToString(), controlDevic.ControlJobTypeRemark }; var listViewItem = new ListViewItem(strings); listViewItem.Tag = controlDevic; this.listView1.Items.Add(listViewItem); } } }
/// <summary> /// 初始化控制设备列表 /// </summary> private void InitControlDeviceListView() { this.listView3.Items.Clear(); List <ControlDeviceUnit> controlDeviceList = ControlDeviceUnit.FindAll(); foreach (var controlDevice in controlDeviceList) { var strings = new string[] { controlDevice.ModularDeviceName, controlDevice.Name }; var listViewItem = new ListViewItem(strings); listViewItem.Tag = controlDevice; this.listView3.Items.Add(listViewItem); } }
/// <summary> /// 获取节点属性 /// </summary> /// <param name="id"> /// </param> private void GetProperity(int id, string tag) { //this.advPropertyGrid1.SelectedObject = null; if (tag.Equals("SensorDeviceUnit")) { var s = SensorDeviceUnit.FindByID(id); s.ModularDevices = s.ModularDeviceName; s.Sensors = s.SensorName; this.advPropertyGrid1.SelectedObject = Mapper.Map <SensorDeviceUnitDto>(s); selectObj = new Tuple <IEntity>(s); //var sensor = Sensor.FindByID(s.SensorId); //PropertyHandle.SetPropertyReadOnly(s,"Remark", true); } else if (tag.Equals("ControlDeviceUnit")) { var c = ControlDeviceUnit.FindByID(id); c.ModularDevices = c.ModularDeviceName; c.DeviceTypes = c.DeviceTypeName; c.ControlJobTypes = c.ControlJobTypeName; c.RelayTypes = c.RelayTypeName; this.advPropertyGrid1.SelectedObject = Mapper.Map <ControlDeviceUnitDto>(c); selectObj = new Tuple <IEntity>(c); } else if (tag.Equals("Camera")) { var c = Camera.FindByID(id); this.advPropertyGrid1.SelectedObject = Mapper.Map <CameraDto>(c); selectObj = new Tuple <IEntity>(c); } else if (tag.Equals("ShowDevice")) { var sd = ShowDevice.FindByID(id); sd.ShowDeviceTypes = sd.ShowDeviceTypeName; sd.CommunicateDevices = sd.CommunicateDeviceName; this.advPropertyGrid1.SelectedObject = Mapper.Map <ShowDeviceDto>(sd);; selectObj = new Tuple <IEntity>(sd); } else if (tag.Equals("Facility")) { var fac = Facility.FindByID(id); fac.Farms = fac.FarmName; fac.FacilityTypes = fac.FacilityTypeName; this.advPropertyGrid1.SelectedObject = Mapper.Map <FacilityDto>(fac);; selectObj = new Tuple <IEntity>(fac); } }
private void 除ToolStripMenuItem_Click(object sender, EventArgs e) { if (this.listView1.SelectedItems.Count > 0) { //if (MessageBox.Show("是否删除该控制设备?") == DialogResult.OK) if (MessageBox.Show("确定要删除该控制设备吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { if (this.listView1.SelectedItems[0].Tag is Sensor) { var selectControlDeviceUnit = this.listView1.SelectedItems[0].Tag as ControlDeviceUnit; //int id = selectControlDeviceUnit.ID; //List<ShowDevice> showDeviceList = ShowDevice.FindAllByCommunicateDeviceID(id); //if (showDeviceList != null) //{ // MessageBox.Show("该设备已经在使用,不能删除"); // return; //} ControlDeviceUnit.Delete(selectControlDeviceUnit); InitControlDeviceListView(); this.controlDeviceId = 0; } } } }
private void advTreeData_DragDrop(object sender, DragEventArgs e) { //var item = e.Data.GetData(e.Data.GetFormats()[0]); if (status) { var location = this.advTreeData.PointToClient(new Point(e.X, e.Y)); var node = this.advTreeData.GetNodeAt(location.X, location.Y); if (node != null && node.Tag.Equals(parent)) { #region 采集设备 if (parent.Equals("SensorDeviceUnit")) { var device = SensorDeviceUnit.FindByID(dragId); var faciliy = node.Parent.Tag as Facility; if (MessageBox.Show("确定要将该设备移动到该设施下吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { var dbList = FacilitySensorDeviceUnit.FindAllByFacilityIdAndCollectDeviceId(faciliy.ID, device.ID); if (dbList == null || dbList.Count == 0) { var fas = new FacilitySensorDeviceUnit() { FacilityID = faciliy.ID, SensorDeviceUnitID = device.ID }; fas.Code1 = fas.GetCode1(); int i = fas.Insert(); if (i != 0) { FacilitySensorDeviceUnit.DeleteByFacilityAndSensorDeviceunit(facId, device.ID);//删除原有关系 } } else { var fas = dbList[0]; if (!(fas.Code1 + "").StartsWith(faciliy.Code1)) { fas.Code1 = fas.GetCode1(); fas.Update(); } } } } #endregion #region 控制设备 if (parent.Equals("ControlDeviceUnit")) { var device = ControlDeviceUnit.FindByID(dragId); var faciliy = node.Parent.Tag as Facility; if (MessageBox.Show("确定要将该设备移动到该设施下吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { var dbList = FacilityControlDeviceUnit.FindAllByFacilityIdAndControlDeviceGroupNum(faciliy.ID, device.GroupNum); if (dbList == null || dbList.Count == 0) { var fas = new FacilityControlDeviceUnit() { FacilityID = faciliy.ID, ControlDeviceUnitGroupNum = device.GroupNum }; fas.Code1 = fas.GetCode1(); int i = fas.Insert(); if (i != 0) { FacilityControlDeviceUnit.DeleteByFacilityAndControlDeviceunGroupNum(facId, device.GroupNum);//删除原有关系 } } else { var fas = dbList[0]; if (!(fas.Code1 + "").StartsWith(faciliy.Code1)) { fas.Code1 = fas.GetCode1(); fas.Update(); } } InitData(); } } #endregion #region 视频设备 if (parent.Equals("Camera")) { var device = Camera.FindByID(dragId); var faciliy = node.Parent.Tag as Facility; if (MessageBox.Show("确定要将该设备移动到该设施下吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { var dbList = FacilityCamera.FindAllByFacilityIdAndCameraId(faciliy.ID, device.ID); if (dbList == null || dbList.Count == 0) { var fas = new FacilityCamera() { FacilityID = faciliy.ID, CameraID = device.ID }; fas.Code1 = fas.GetCode1(); int i = fas.Insert(); if (i != 0) { FacilityCamera.GetDeviceByFacilityIdAndCameraId(facId, device.ID);//删除原有关系 } } else { var fas = dbList[0]; if (!(fas.Code1 + "").StartsWith(faciliy.Code1)) { fas.Code1 = fas.GetCode1(); fas.Update(); } } InitData(); } } #endregion } } else { return; } InitData(); }
private void InitData() { var facs = Facility.FindAllByFarmID(_farmId); if (facs != null && facs.Count > 0) { foreach (var fac in facs) { var facnode = new DevComponents.AdvTree.Node("设施") { ImageIndex = 0, Tag = fac, //TagString="Facility", Expanded = true, Name = fac.Name, Text = fac.Name }; this.advTreeData.Nodes.AddRange(new DevComponents.AdvTree.Node[] { facnode }); var collectnode = new DevComponents.AdvTree.Node("采集设备") { ImageIndex = 1, Tag = "SensorDeviceUnit" }; var collects = fac.FacilitySensorDeviceUnits; if (collects != null && collects.Count > 0) { foreach (var c in collects) { var cnode = new DevComponents.AdvTree.Node { Expanded = true, Name = c.SensorDeviceUnit.Name, Text = c.SensorDeviceUnit.Name, Tag = c.SensorDeviceUnit, //TagString = "SensorDeviceUnit" }; cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = c.SensorDeviceUnit.ProcessedValue.ToString(), Name = c.SensorDeviceUnit.ProcessedValue.ToString() }); cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = c.SensorDeviceUnit.Sensor.Unit, Name = c.SensorDeviceUnit.Sensor.Unit }); cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = c.SensorDeviceUnit.UpdateTime.ToString(), Name = c.SensorDeviceUnit.UpdateTime.ToString() }); cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = c.Code1, Name = c.Code1 }); collectnode.Nodes.Add(cnode); } } facnode.Nodes.Add(collectnode); var controlnode = new DevComponents.AdvTree.Node("控制设备") { ImageIndex = 2, Tag = "ControlDeviceUnit" }; var fcontrols = fac.FacilityControlDeviceUnits; if (fcontrols != null && fcontrols.Count > 0) { foreach (var fc in fcontrols) { ControlDeviceUnit.FindByGroupNum(fc.ControlDeviceUnitGroupNum).ForEach(control => { var cnode = new DevComponents.AdvTree.Node { Expanded = true, Name = control.Name, Text = control.Name, Tag = control, //TagString = "ControlDeviceUnit" }; cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = control.ProcessedValue.ToString(), Name = control.ProcessedValue.ToString() }); cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = " ", Name = " " }); cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = control.UpdateTime.ToString(), Name = control.UpdateTime.ToString() }); cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = fc.Code1, Name = fc.Code1 }); controlnode.Nodes.Add(cnode); }); } } facnode.Nodes.Add(controlnode); var cameranode = new DevComponents.AdvTree.Node("视频设备") { ImageIndex = 3, Tag = "Camera" }; var cameras = fac.FacilityCameras; if (cameras != null && cameras.Count > 0) { foreach (var c in cameras) { var cnode = new DevComponents.AdvTree.Node { Expanded = true, Name = c.Camera.Name, Text = c.Camera.Name, Tag = c.Camera, //TagString = "Camera" }; cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = "正常", Name = "正常" }); cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = "", Name = "" }); cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = c.UpdateTime.ToString(), Name = c.UpdateTime.ToString() }); cnode.Cells.Add(new DevComponents.AdvTree.Cell { Text = c.Code1, Name = c.Code1 }); cameranode.Nodes.Add(cnode); } } facnode.Nodes.Add(cameranode); var shownode = new DevComponents.AdvTree.Node("展示设备") { ImageIndex = 4, Tag = "ShowDevice" }; var shows = ShowDevice.FindAll(); if (shows != null && shows.Count > 0) { foreach (var s in shows) { var cnode = new DevComponents.AdvTree.Node { Expanded = true, Name = s.Name, Text = s.Name, Tag = s, //TagString = "ShowDevice" }; shownode.Nodes.Add(cnode); } } facnode.Nodes.Add(shownode); } } }
/// <summary> /// 获取控制指令 /// </summary> private List <DeviceControlCommand> GetControlCommand() { var controlDevices = ControlDeviceUnit.FindAllWithCache().ToList(); if (!controlDevices.Any() && controlDevices == null) { return(null); } //查询出Code1不为空的基地 var farms = Farm.FindAll().ToList().Where(f => !f.Code1.IsNullOrWhiteSpace()); var devCommands = new List <DeviceControlCommand>(); //校验所有编码 var enumerable = farms as Farm[] ?? farms.ToArray(); if (!CheckCode(enumerable)) { return(null); } enumerable.ToList().ForEach(farm => { //本地数据库中的设施 var facilitysInDb = farm.Facilitys; ////从接口获存在的设施 //var facs_platform = GetPlatformFacilitys(farm); if (facilitysInDb.Count > 0) { facilitysInDb.ToList().ForEach(fInDb => { var entity = AwEntityHelper.GetEntity(farm.Code1); #if DEBUG var sw = new Stopwatch(); var accessResult = false; sw.Start(); #endif var cmds = _facilityApi.GetControlCommand(entity, _transport, fInDb.Code1); var controlCmds = cmds as IList <ControlCmd> ?? cmds.ToList(); if (controlCmds.Any()) { accessResult = true; controlCmds.ToList().ForEach(cmdDb => { var devCommand = new DeviceControlCommand { Code1 = cmdDb.Serialnum, Command = cmdDb.Command.ToString(), ControlContinueTime = cmdDb.ContinueTime, CreateTime = DateTime.Now, ControlDeviceUnitGroupNum = FacilityControlDeviceUnit.FindAllByCode1(cmdDb.DeviceCode)[0] .ControlDeviceUnitGroupNum }; devCommand.Save(); //保存到本地数据库 devCommands.Add(devCommand); }); } else { accessResult = false; //Debugger.Break(); } LogHelper.Debug("{0}获取控制指令{1}条", fInDb.Name, controlCmds.Count()); #if DEBUG sw.Stop(); var apiAccesslog = new ApiAccessLog { ApiName = "获取控制指令", Result = accessResult, CreateTime = DateTime.Now, CostTime = Convert.ToInt32(sw.ElapsedMilliseconds) }; apiAccesslog.Save(); LogHelper.Debug("获取控制指令花费的时间:{0}", sw.ElapsedMilliseconds.ToString()); #endif }); } }); if (!devCommands.Any()) { return(devCommands); } var sw1 = new Stopwatch(); sw1.Start(); devCommands.ForEach(cmd => { LogHelper.Debug("正在执行控制指令"); Control( FacilityControlDeviceUnit.FindAllByControlDeviceUnitGroupNum(cmd.ControlDeviceUnitGroupNum)[0] .ControlDeviceUnitGroupNum, Convert.ToInt32(cmd.Command)); Thread.Sleep(50); }); sw1.Stop(); LogHelper.Debug("执行所有控制指令花费的时间:{0}", sw1.ElapsedMilliseconds.ToString()); return(devCommands); }
/// <summary> /// 控制设备 /// </summary> /// <param name="deviceId">控制设备ID</param> /// <param name="status">设备状态</param> private void Control(int deviceId, int status) { const bool result = false; List <FacilityControlDeviceUnit> fac = FacilityControlDeviceUnit.FindAllByControlDeviceUnitGroupNum(deviceId); if (fac == null || !fac.Any()) { return; } var device = ControlDeviceUnit.FindByID(deviceId); if (device == null) { return; } string reason = null; TransportTypeEnum type; if ( !Enum.TryParse(device.ModularDevice.CommunicateDevice.CommunicateDeviceTypeName, true, out type)) { type = TransportTypeEnum.Unknow; } var host = device.ModularDevice.CommunicateDevice.Args1; var e = Convert.ToInt32(device.ModularDevice.CommunicateDevice.Args2); var timeout = Convert.ToInt32(device.ModularDevice.CommunicateDevice.Args3); //获取Transport var transport = TransportFactory.GetTransport(type, host, e, timeout); var modbusControlDevice = new ModbusControlDevice(transport, Convert.ToByte(device.ModularDevice.Address)); try { //待编写控制指令 //if (device.IsComposite) //三态设备 正转 反转 停止 //{ // if (status == -1) // { // result = modbusControlDevice.Write(device.RegisterAddress1, true); // } // else if (status == 0) // { // result = modbusControlDevice.Write(device.RegisterAddress1, false); // result = modbusControlDevice.Write(device.RegisterAddress2, false); // } // else if (status == 1) // { // result = modbusControlDevice.Write(device.RegisterAddress2, true); // } //} //else //两态设备 开 关 //{ // result = modbusControlDevice.Write(device.RegisterAddress1, status == 1 ? true : false); //} } catch (Exception ex) { reason = ex.ToString(); } LogHelper.Debug("指令执行" + (result ? "成功" : "失败")); DeviceControlCommand.FindAllByControlDeviceUnitID(deviceId).ToList().ForEach(deviceControlCommand => { var controlResult = new ControlResult { Serialnum = deviceControlCommand.Code1, //Command = status, //FacilityCode = fac[0].Facility.Code1, //DeviceCode = fac[0].Code1, //ContinueTime = 5, Time = DateTime.Now, Result = result, FailReason = reason }; var devControlLog = new DeviceControlLog { Code1 = deviceControlCommand.Code1, ControlDeviceUnitID = deviceControlCommand.ControlDeviceUnitGroupNum, ControlResult = result, CreateTime = DateTime.Now, DeviceControlCommand = deviceControlCommand, DeviceControlCommandID = deviceControlCommand.ID, DeviceValue = Convert.ToInt32(CalcControlDeviceValue.CalcProcessValue(fac[0])), ShowValue = CalcControlDeviceValue.CalcOriginal(fac[0]).ToString(), FailReason = reason }; devControlLog.Save(); UploadControlCommand(controlResult, fac[0].Facility); //上传控制指令 Thread.Sleep(50); }); }
private void listView1_SelectedIndexChanged(object sender, EventArgs e) { if (this.listView1.SelectedItems.Count > 0) { if (this.listView1.SelectedItems[0].Tag is ModularDevice) { //this.txtId.Text = (this.listView1.SelectedItems[0].Tag as ModularDevice).ID.ToString(); modularDeviceId = (this.listView1.SelectedItems[0].Tag as ModularDevice).ID; this.txtName.Text = this.listView1.SelectedItems[0].SubItems[1].Text; this.cbProtocalType.Text = this.listView1.SelectedItems[0].SubItems[2].Text; this.cbCommunicateDevice.Text = this.listView1.SelectedItems[0].SubItems[3].Text; this.txtAddress.Text = this.listView1.SelectedItems[0].SubItems[4].Text; //this.cbOnlineStatus.Text = this.listView1.SelectedItems[0].SubItems[5].Text; this.rbtOnlineStatus.Checked = Convert.ToBoolean(this.listView1.SelectedItems[0].SubItems[5].Text); //if (this.rbtOnlineStatus.Checked == true) //{ // this.rbtOnlineStatus1.Checked = false; //} //else //{ // this.rbtOnlineStatus1.Checked = true; //} this.txtException.Text = this.listView1.SelectedItems[0].SubItems[6].Text; //this.txtRemark.Text = this.listView1.SelectedItems[0].SubItems[7].Text; //采集设备列表的改变事件 List <SensorDeviceUnit> collectDeviceLsit = SensorDeviceUnit.FindAllByModularDeviceID( (this.listView1.SelectedItems[0].Tag as ModularDevice).ID); if (collectDeviceLsit == null || collectDeviceLsit.Count == 0) { foreach (ListViewItem item in this.lstCollectDevice.Items) { item.Checked = false; } //return; } else { foreach (ListViewItem item in this.lstCollectDevice.Items) { var isExists = false; foreach (var collectDevice in collectDeviceLsit) { var sD = item.Tag as SensorDeviceUnit; if (sD != null) { if (sD.ID == collectDevice.ID) { isExists = true; } } } item.Checked = isExists; } } //控制设备列表的改变事件 List <ControlDeviceUnit> controlDeviceLsit = ControlDeviceUnit.FindAllByModularDeviceID( (this.listView1.SelectedItems[0].Tag as ModularDevice).ID); if (controlDeviceLsit == null || controlDeviceLsit.Count == 0) { foreach (ListViewItem item in this.lstControlDevice.Items) { item.Checked = false; } //return; } else { foreach (ListViewItem item in this.lstControlDevice.Items) { var isExists = false; var cD = item.Tag as ControlDeviceUnit; foreach (var controlDevice in controlDeviceLsit) { if (cD != null) { if (cD.ID == controlDevice.ID) { isExists = true; } } } item.Checked = isExists; } } } } }
private void btnSave_Click(object sender, EventArgs e) { if (this.txtName.Text.Trim().IsNullOrWhiteSpace()) { MessageBox.Show("名称不能为空,请输入"); this.txtName.Focus(); return; } //if (ModularDevice.FindAllByName(this.txtName.Text, Name, Name, 0, 0) != null) //{ // MessageBox.Show("名称已经存在"); // this.txtName.Focus(); // return; //} #region 获取所有选中的设备 //List<SensorDeviceUnit> sensorDeviceUnitList = (from item in this.lstCollectDevice.Items.Cast<ListViewItem>() where item.Checked select item.Tag as SensorDeviceUnit).ToList();//采集设备 var sensorDeviceUnitList = new List <SensorDeviceUnit>(); var sensorDeviceUnitList1 = new List <SensorDeviceUnit>(); foreach (ListViewItem item in this.lstCollectDevice.Items) { if (item.Checked == false) { var sensorDeviceUnit = item.Tag as SensorDeviceUnit; //未选中的采集设备 sensorDeviceUnitList1.Add(sensorDeviceUnit); } else { sensorDeviceUnitList = (from i in this.lstCollectDevice.Items.Cast <ListViewItem>() where i.Checked select i.Tag as SensorDeviceUnit).ToList(); //选中的采集设备 } } //List<ControlDeviceUnit> controlDeviceUnitList = (from item in this.lstControlDevice.Items.Cast<ListViewItem>() where item.Checked select item.Tag as ControlDeviceUnit).ToList();//控制设备 var controlDeviceUnitList = new List <ControlDeviceUnit>(); var controlDeviceUnitList1 = new List <ControlDeviceUnit>(); foreach (ListViewItem item in this.lstControlDevice.Items) { if (item.Checked == false) { var controlDeviceUnit = item.Tag as ControlDeviceUnit; //未选中的控制设备 controlDeviceUnitList1.Add(controlDeviceUnit); } else { controlDeviceUnitList = (from i in this.lstControlDevice.Items.Cast <ListViewItem>() where i.Checked select i.Tag as ControlDeviceUnit).ToList(); //选中的控制设备 } } #endregion 获取所有选中的设备 if (this.modularDeviceId != 0) { try { // 更新 var modularDevice = new ModularDevice { ID = this.modularDeviceId, Name = this.txtName.Text.Trim(), ProtocalTypeID = Convert.ToInt32(this.cbProtocalType.SelectedValue), CommunicateDeviceID = Convert.ToInt32(this.cbCommunicateDevice.SelectedValue), Address = this.txtAddress.Text, //OnlineStatus = Convert.ToBoolean(this.cbOnlineStatus.SelectedValue), OnlineStatus = this.rbtOnlineStatus.Checked, Exception = this.txtException.Text, //Remark = this.txtRemark.Text.Trim() }; ModularDevice.Update(modularDevice); //更新采集设备 foreach (var item in sensorDeviceUnitList) { var sensorUnit = new SensorDeviceUnit(); sensorUnit.ID = item.ID; sensorUnit.ModularDeviceID = this.modularDeviceId; sensorUnit.Update(); } //foreach (var item in sensorDeviceUnitList1) //{ // item.ModularDeviceID = this.modularDeviceId; // SensorDeviceUnit.Delete(item); //} this.InitCollectDeviceListView(); //更新控制设备 foreach (var item in controlDeviceUnitList) { var controlUnit = new ControlDeviceUnit(); controlUnit.ID = item.ID; controlUnit.ModularDeviceID = this.modularDeviceId; controlUnit.Update(); } //foreach (var item in controlDeviceUnitList1) //{ // item.ModularDeviceID = this.modularDeviceId; // ControlDeviceUnit.Delete(item); //} this.InitControlDeviceListView(); MessageBox.Show("更新成功"); } catch (Exception ex) { XTrace.WriteException(ex); MessageBox.Show("更新失败"); } } else { try { // 保存 var modularDevice = new ModularDevice { Name = this.txtName.Text.Trim(), ProtocalTypeID = Convert.ToInt32(this.cbProtocalType.SelectedValue), CommunicateDeviceID = Convert.ToInt32(this.cbCommunicateDevice.SelectedValue), Address = this.txtAddress.Text, //OnlineStatus = Convert.ToBoolean(this.cbOnlineStatus.SelectedValue), OnlineStatus = this.rbtOnlineStatus.Checked, Exception = this.txtException.Text, //Remark = this.txtRemark.Text.Trim() }; ModularDevice.Save(modularDevice); ////保存采集设备 //foreach (var item in sensorDeviceUnitList) //{ // item.ModularDeviceID = this.modularDeviceId; // SensorDeviceUnit.Save(item); //} this.InitCollectDeviceListView(); ////保存控制设备 //foreach (var item in controlDeviceUnitList) //{ // item.ModularDeviceID = this.modularDeviceId; // ControlDeviceUnit.Save(item); //} this.InitControlDeviceListView(); MessageBox.Show("保存成功"); } catch (Exception ex) { XTrace.WriteException(ex); MessageBox.Show("保存失败"); } } this.InitModularDeviceListView(); }
/// <summary> /// The list view 1 selected index changed. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> private void ListView1SelectedIndexChanged(object sender, EventArgs e) { if (this.listView1.SelectedItems.Count > 0) { if (this.listView1.SelectedItems[0].Tag is Facility) { //this.txtId.Text = (this.listView1.SelectedItems[0].Tag as Facility).ID.ToString(); facilityId = (this.listView1.SelectedItems[0].Tag as Facility).ID; this.txtName.Text = this.listView1.SelectedItems[0].SubItems[1].Text; this.txtCode1.Text = this.listView1.SelectedItems[0].SubItems[2].Text; this.txtCode2.Text = this.listView1.SelectedItems[0].SubItems[3].Text; this.txtCode3.Text = this.listView1.SelectedItems[0].SubItems[4].Text; this.cbFacilityType.Text = this.listView1.SelectedItems[0].SubItems[5].Text; this.cbFarm.Text = this.listView1.SelectedItems[0].SubItems[6].Text; this.txtContactPhone.Text = this.listView1.SelectedItems[0].SubItems[7].Text; //this.dtCreateTime.Value = Convert.ToDateTime(this.listView1.SelectedItems[0].SubItems[8].Text); //this.txtUpdateTime.Text = this.listView1.SelectedItems[0].SubItems[9].Text; //this.cbUpLoad.Text = this.listView1.SelectedItems[0].SubItems[10].Text; //this.rbtUpLoad.Checked = Convert.ToBoolean(this.listView1.SelectedItems[0].SubItems[10].Text); //if (this.rbtUpLoad.Checked == true) //{ // this.rbtUpLoad1.Checked = false; //} //else //{ // this.rbtUpLoad1.Checked = true; //} //this.txtVersion.Text = this.listView1.SelectedItems[0].SubItems[11].Text; //this.cbStatus.Text = this.listView1.SelectedItems[0].SubItems[12].Text; this.rbtOnlineStatus.Checked = Convert.ToBoolean(this.listView1.SelectedItems[0].SubItems[12].Text); //if (this.rbtOnlineStatus.Checked == true) //{ // this.rbtOnlineStatus1.Checked = false; //} //else //{ // this.rbtOnlineStatus1.Checked = true; //} this.txtAddress.Text = this.listView1.SelectedItems[0].SubItems[13].Text; this.txtIntroduce.Text = this.listView1.SelectedItems[0].SubItems[14].Text; this.txtContactMan.Text = this.listView1.SelectedItems[0].SubItems[15].Text; this.txtContactMobile.Text = this.listView1.SelectedItems[0].SubItems[16].Text; //this.txtRemark.Text = this.listView1.SelectedItems[0].SubItems[17].Text; //this.pbPhotoUrl.Text = this.listView1.SelectedItems[0].SubItems[18].Text; #region 采集设备列表的改变事件 List <FacilitySensorDeviceUnit> facilitySensorDeviceUnitList = (this.listView1.SelectedItems[0].Tag as Facility).FacilitySensorDeviceUnits; //获取该设施所拥有的所有采集设备的集合 var collectionDeviceList = new List <SensorDeviceUnit>(); foreach (var fac in facilitySensorDeviceUnitList) { var collectionDevice = SensorDeviceUnit.FindByID(fac.SensorDeviceUnitID); collectionDeviceList.Add(collectionDevice); } if (collectionDeviceList == null || collectionDeviceList.Count == 0) { foreach (ListViewItem item in this.listView2.Items) { item.Checked = false; } //return; } else { foreach (ListViewItem item in this.listView2.Items) { var isExists = false; foreach (var collectDevice in collectionDeviceList) { var sDevice = item.Tag as SensorDeviceUnit; if (sDevice != null) { if (sDevice.ID == collectDevice.ID) { isExists = true; } } } item.Checked = isExists; } } #endregion 采集设备列表的改变事件 #region 控制设备列表的改变事件 List <FacilityControlDeviceUnit> facilityControlDeviceUnitList = (this.listView1.SelectedItems[0].Tag as Facility).FacilityControlDeviceUnits; //获取该设施所拥有的所有控制设备的集合 var controlDeviceList = new List <ControlDeviceUnit>(); foreach (var fas in facilityControlDeviceUnitList) { var controlDevices = ControlDeviceUnit.FindByGroupNum(fas.ControlDeviceUnitGroupNum); controlDeviceList.AddRange(controlDevices); } if (controlDeviceList == null || controlDeviceList.Count == 0) { foreach (ListViewItem item in this.listView3.Items) { item.Checked = false; } } else { foreach (ListViewItem item in this.listView3.Items) { var isExists = false; foreach (var controlDevice in controlDeviceList) { var cDevice = item.Tag as ControlDeviceUnit; if (cDevice != null) { if (cDevice.ID == controlDevice.ID) { isExists = true; } } } item.Checked = isExists; } } #endregion 控制设备列表的改变事件 #region 摄像机设备列表的改变事件 //List<FacilityCamera> facilityCameraList = FacilityCamera.FindAllByFacilityID((this.listView1.SelectedItems[0].Tag as Facility).ID); List <FacilityCamera> facilityCameraList = (this.listView1.SelectedItems[0].Tag as Facility).FacilityCameras; //获取该设施所拥有的所有摄像机设备的集合 var cameraList = new List <Camera>(); foreach (var fc in facilityCameraList) { var camera = Camera.FindByID(fc.CameraID); cameraList.Add(camera); } if (cameraList == null || cameraList.Count == 0) { foreach (ListViewItem item in this.listView4.Items) { item.Checked = false; } //return; } foreach (ListViewItem item in this.listView4.Items) { var isExists = false; foreach (var facilityCamera in cameraList) { var c = item.Tag as Camera; if (c != null) { if (c.ID == facilityCamera.ID) { isExists = true; } } } item.Checked = isExists; } #endregion 摄像机设备列表的改变事件 } } }
/// <summary> /// 加载树结构 /// </summary> private void InitTreeView() { this.treeView1.Nodes.Clear(); // 获取所有的设施列表 List <Facility> facilityList = Facility.FindAll(); if (facilityList.Count > 0 && facilityList.Any()) { var firstNode = new TreeNode(facilityList[0].FarmName) { Tag = "FisrtPag" }; this.treeView1.Nodes.Add(firstNode); foreach (var facility in facilityList) { var allnode = new TreeNode(facility.Name) { ImageIndex = 0, Tag = facility }; //采集设备 var collectnode = new TreeNode("采集设备") { ImageIndex = 1, Tag = "SensorDeviceUnit" }; List <FacilitySensorDeviceUnit> sensorDeviceUnitList = FacilitySensorDeviceUnit.FindAllByFacilityID(facility.ID); if (sensorDeviceUnitList == null) { return; } foreach (var sensorDeviceUnit in sensorDeviceUnitList) { var treeNode = new TreeNode(SensorDeviceUnit.FindByID(sensorDeviceUnit.SensorDeviceUnitID).Name.ToString()); treeNode.Tag = sensorDeviceUnit; collectnode.Nodes.Add(treeNode); } allnode.Nodes.Add(collectnode); //控制设备 var controlnode = new TreeNode("控制设备") { ImageIndex = 1, Tag = "ControlDeviceUnit" }; List <FacilityControlDeviceUnit> controlDeviceUnitList = FacilityControlDeviceUnit.FindAllByFacilityID(facility.ID); if (controlDeviceUnitList == null) { return; } foreach (var controlDeviceUnit in controlDeviceUnitList) { var treeNode = new TreeNode( ControlDeviceUnit.FindByGroupNum(controlDeviceUnit.ControlDeviceUnitGroupNum)[0].Name .ToString()); treeNode.Tag = controlDeviceUnit; controlnode.Nodes.Add(treeNode); } allnode.Nodes.Add(controlnode); ////摄像机设备 //var cameranode = new TreeNode("摄像机设备") { ImageIndex = 1, Tag = "facilityCamera" }; //List<FacilityCamera> cameraList = FacilityCamera.FindAllByFacilityID(facility.ID); //if (cameraList == null) //{ // return; //} //foreach (FacilityCamera facilityCamera in cameraList) //{ // var treeNode = new TreeNode(facilityCamera.CameraName); // treeNode.Tag = facilityCamera; // cameranode.Nodes.Add(treeNode); //} //allnode.Nodes.Add(cameranode); ////展示设备 //var showDevicenode = new TreeNode("显示设备") { ImageIndex = 1, Tag = "showDevice" }; //List<ShowDevice> showDeviceList = ShowDevice.FindAll(); //if (showDeviceList == null) //{ // return; //} //foreach (ShowDevice showDevice in showDeviceList) //{ // var treeNode = new TreeNode(showDevice.Name); // treeNode.Tag = showDevice; // showDevicenode.Nodes.Add(treeNode); //} //allnode.Nodes.Add(showDevicenode); this.treeView1.Nodes.Add(allnode); } this.treeView1.ExpandAll(); } }
/// <summary> /// 查询数据 /// </summary> /// <param name="id"> /// </param> private void SearchDataInfo(int id, string tag) { this.listView1.Items.Clear(); if (tag.EqualIgnoreCase("SensorDeviceUnit")) { string data; var fs = FacilitySensorDeviceUnit.FindByID(id); if (fs.SensorDeviceUnit.Sensor.Code.EqualIgnoreCase("collect-weather-YuXueGanZhi")) { data = fs.SensorDeviceUnit.ProcessedValue == 1 ? "有" : "无"; } else { data = fs.SensorDeviceUnit.ProcessedValue.ToString(); } var strings = new[] { fs.Code1, fs.SensorDeviceUnit.Name, data, fs.SensorDeviceUnit.Sensor.Unit, fs.SensorDeviceUnit.UpdateTime.ToString() }; var listViewItem = new ListViewItem(strings); this.listView1.Items.Add(listViewItem); } else if (tag.EqualIgnoreCase("ControlDeviceUnit")) { string data; var controlList = ControlDeviceUnit.FindByGroupNum(id); if (controlList.Count > 0) { controlList.ForEach(c => { data = c.ProcessedValue; var strings = new[] { c.FacilityControlDeviceUnits[0].Code1, c.Name, data, "", c.UpdateTime.ToString() }; var listViewItem = new ListViewItem(strings); this.listView1.Items.Add(listViewItem); }); } } var fsList = FacilitySensorDeviceUnit.FindAllByFacilityID(id); var fcList = FacilityControlDeviceUnit.FindAllByFacilityID(id); string data1; if (fsList.Count > 0) { fsList.ForEach( fs => { if (fs.SensorDeviceUnit.Sensor.Code.EqualIgnoreCase("collect-weather-YuXueGanZhi")) { data1 = fs.SensorDeviceUnit.ProcessedValue == 1 ? "有" : "无"; } else { data1 = fs.SensorDeviceUnit.ProcessedValue.ToString(); } var strings = new[] { fs.Code1, fs.SensorDeviceUnit.Name, data1, fs.SensorDeviceUnit.Sensor.Unit, fs.SensorDeviceUnit.UpdateTime.ToString() }; var listViewItem = new ListViewItem(strings); this.listView1.Items.Add(listViewItem); }); } if (fcList.Count > 0) { fcList.ForEach(fc => { var controls = ControlDeviceUnit.FindByGroupNum(fc.ControlDeviceUnitGroupNum); controls.ForEach(control => { data1 = control.ProcessedValue; var strings = new[] { fc.Code1, control.Name, data1, "", control.UpdateTime.ToString() }; var listViewItem = new ListViewItem(strings); this.listView1.Items.Add(listViewItem); }); }); } }
private void btnSave_Click(object sender, EventArgs e) { if (this.txtName.Text.Trim().IsNullOrWhiteSpace()) { MessageBox.Show("名称不能为空,请输入"); this.txtName.Focus(); return; } //if (this.cbModularDevice.DisplayMember==null) //{ // MessageBox.Show("模块化设备不能为空,请输入"); // this.cbModularDevice.Focus(); // return; //} //if (this.cbDeviceType.DisplayMember == null) //{ // MessageBox.Show("设备类型不能为空,请输入"); // this.cbDeviceType.Focus(); // return; //} //if (this.txtFunction.Text == null) //{ // MessageBox.Show("功能码不能为空"); // this.txtFunction.Focus(); // return; //} if (this.controlDeviceId != 0) { try { // 更新 var cntrolDevice = new ControlDeviceUnit { ID = this.controlDeviceId, Name = this.txtName.Text.Trim(), ModularDeviceID = Convert.ToInt32(this.cbModularDevice.SelectedValue), DeviceTypeSerialnum = this.cbDeviceType.SelectedValue.ToString(), RelayTypeId = Convert.ToInt32(this.cbRelay.SelectedValue.ToString()), Function = Convert.ToInt32(this.txtFunction.Text.Trim()), OriginalValue = Convert.ToInt32(this.txtOriginalValue.Text.Trim()), RegisterAddress1 = Convert.ToInt32(txtAddr1.Text.Trim()), ProcessedValue = this.txtProccessedValue.Text.Trim(), UpdateTime = DateTime.Now, GroupNum = Convert.ToInt32(this.txtGroup.Text.Trim()), ControlJobTypeId = Convert.ToInt32(this.cbJob.SelectedValue.ToString()) }; //if (cntrolDevice.IsComposite) //{ // cntrolDevice.RegisterAddress2 = Convert.ToInt32(txtAddr2.Text.Trim()); // cntrolDevice.RegisterAddress2Name = "结束地址"; //} //else //{ // cntrolDevice.RegisterAddress2 = -1; // cntrolDevice.RegisterAddress2Name = "关"; //} ControlDeviceUnit.Update(cntrolDevice); MessageBox.Show("更新成功"); } catch (Exception ex) { XTrace.WriteException(ex); MessageBox.Show("更新失败"); } } else { try { // 保存 var cntrolDevice = new ControlDeviceUnit { //ID = this.collectDeviceId, Name = this.txtName.Text.Trim(), ModularDeviceID = Convert.ToInt32(this.cbModularDevice.SelectedValue), DeviceTypeSerialnum = this.cbDeviceType.SelectedValue.ToString(), RelayTypeId = Convert.ToInt32(this.cbRelay.SelectedValue.ToString()), Function = Convert.ToInt32(this.txtFunction.Text.Trim()), OriginalValue = Convert.ToInt32(this.txtOriginalValue.Text.Trim()), RegisterAddress1 = Convert.ToInt32(txtAddr1.Text.Trim()), ProcessedValue = this.txtProccessedValue.Text.Trim(), UpdateTime = DateTime.Now, GroupNum = Convert.ToInt32(this.txtGroup.Text.Trim()), ControlJobTypeId = Convert.ToInt32(this.cbJob.SelectedValue.ToString()) }; //if (cntrolDevice.IsComposite) //{ // cntrolDevice.RegisterAddress2 = Convert.ToInt32(txtAddr2.Text.Trim()); // cntrolDevice.RegisterAddress2Name = "结束地址"; //} //else //{ // cntrolDevice.RegisterAddress2 = -1; // cntrolDevice.RegisterAddress2Name = "关"; //} ControlDeviceUnit.Save(cntrolDevice); MessageBox.Show("保存成功"); } catch (Exception ex) { XTrace.WriteException(ex); MessageBox.Show("保存失败"); } } this.InitControlDeviceListView(); }