Esempio n. 1
0
 /// <summary>
 /// "确定"添加监控
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void addMonTask_Button_Click(object sender, RoutedEventArgs e)
 {
     WpfDataBingding.DevTreeData.Device dev_selected = ((WpfDataBingding.DevTreeData.Device)this.DataContext);
     //建立客户服务代理对象
     bus.DataBusServiceClient dBSC = new bus.DataBusServiceClient();
     try
     {
         //获取监控时间间隔
         int timeInterval= getTimeInterval();
         //添加设备监控
         MonTaskConfigration.addMonDevTask(dBSC, dev_selected, timeInterval);
         //隐藏时隙输入模版
         this.MonTimeInputDockPanel.Visibility = System.Windows.Visibility.Hidden;
         this.MonStatus_Label.Content = dev_selected.MonitorStatusLabel;//修改界面
         this.Button_DelAndAddDevMon.Content = dev_selected.MonitorStatusButton;
     }
     catch (Exception exp)
     {
         MessageBox.Show("出错:" + exp.Message);
         return;
     }
     finally
     {
         if (dBSC != null)
             dBSC.Close();
     }
 }
Esempio n. 2
0
        public static ChangeStateBackInfo ChangeDeviceDynamicState(DynamicState dyState, string strValue)
        {
            ChangeStateBackInfo backinfo;
            #region////暂用版本
            try
            {
            double val = Double.Parse(strValue);
            Bus.AttributeValue staval = new Bus.AttributeValue();

            staval.Type = "double";
            staval.Value = val;

            Bus.DeviceState deviceState = new Bus.DeviceState();

            deviceState.AgentID = dyState.AgentName;
            deviceState.DevID = dyState.DevID;
            deviceState.DevType = "XBPQ";
            deviceState.Name = dyState.StateName;
            deviceState.Value = staval;

                using (Bus.DataBusServiceClient client = new WpfDataBingding.TaskServiceReference.DataBusServiceClient())
                {
                    bool issucess = client.SetStates(new Bus.DeviceState[] { deviceState });
                    if (issucess == true)
                    {
                        backinfo = new ChangeStateBackInfo { isSucess=true, info=string.Empty};
                    }
                    else
                    {
                        backinfo = new ChangeStateBackInfo {  isSucess=false, info = string.Empty };
                    }
                    client.Close();
                }
            }
            catch(Exception e)
            {
                backinfo = new ChangeStateBackInfo { isSucess=false, info=e.Message.ToString() };
                return backinfo;
            }

            return backinfo;
            #endregion
        }
Esempio n. 3
0
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            //设置用户名
            string userID = "user001";
            Application.Current.Properties["userID"] = userID;

            bus.DataBusServiceClient dataBusServiceClient=null;
            try
            {
                dataBusServiceClient=new bus.DataBusServiceClient();
                //初始化设备类型集合
                Application.Current.Properties["DeviceTypeArray"]=dataBusServiceClient.QueryAllDeviceTypeInfo();
                //初始化设备集合
                DataBus dataBus = new DataBus();
                dataBus.fillDataBusByRemoteService(dataBusServiceClient,userID);
                Application.Current.Properties["DataBus"] = dataBus;
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.Message);
            }
            finally
            {
                if (dataBusServiceClient != null)
                    dataBusServiceClient.Close();
                dataBusServiceClient=null;
            }
            ////////////////////////////////////////////////////
            try
            {
                ThreadScan santhread = new ThreadScan();
                Application.Current.Properties["ScanDevice"] = santhread;
                new InitMonDevice(userID);
            }
            catch (Exception e1)
            {

                throw e1;
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 添加&删除对某个设备的监控
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_DelAndAddDevMon_Click(object sender, RoutedEventArgs e)
        {
            bool isMonitered;
            WpfDataBingding.DevTreeData.Device dev_selected;
            try
            {
                //获取设备当前的监控状态
                dev_selected = ((WpfDataBingding.DevTreeData.Device)this.DataContext);
                isMonitered=dev_selected.IsMonitered;
            }
            catch (Exception exp)
            {
                MessageBox.Show("内部错误:"+exp.Message);
                return;
            }

            if (!isMonitered)//未监控--添加监控:显示输入时隙模版
            {
                this.MonTimeInputDockPanel.Visibility = System.Windows.Visibility.Visible;
                return;
            }
            else//已被监控--删除监控
            {
                //建立客户服务代理对象
                bus.DataBusServiceClient dBSC = new bus.DataBusServiceClient();
                try
                {
                    //删除监控
                    MonTaskConfigration.deleteMonDevTask(dBSC, dev_selected);
                    this.MonStatus_Label.Content = dev_selected.MonitorStatusLabel;//修改界面
                    this.Button_DelAndAddDevMon.Content = dev_selected.MonitorStatusButton;
                }
                catch (Exception exp)
                {
                    MessageBox.Show("连接远程服务出错:" + exp.Message);
                    return;
                }
                finally
                {
                    if (dBSC != null)
                        dBSC.Close();
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 通过远程调用填充数据总线设备实例,包括是否被监控的信息
        /// </summary>
        public void fillDataBusByRemoteService(string userID)
        {
            //string userID = Application.Current.Properties["userID"] as string;

            bus.DataBusServiceClient dBSC = new bus.DataBusServiceClient();
            TaskServiceReference.MonAgentInfo[] monAgentInfoArray = null;
            try
            {
                //调用远程服务
                monAgentInfoArray = dBSC.QueryMonAgentsDevs();
                //刷新设备实例信息
                initFromDataContractObj(monAgentInfoArray);
                //刷新设备监控信息
                bus.UserMonTask usertask = dBSC.QueryUserTask(userID);
                initDevMonStatusFromDataContractObj(usertask);
            }
            catch (Exception exp)
            {
                throw exp;
            }
            finally
            {
                if (dBSC != null)
                    dBSC.Close();
            }
        }
        /// <summary>
        /// 调用远程服务获取设备集合并绑定到设备树控件
        /// </summary>
        private void refresh_DevTree()
        {
            bus.DataBusServiceClient dBSC = new bus.DataBusServiceClient();
            bus.MonAgentInfo[] monAgentInfoArray = null;
            try
            {
                //TaskServiceReference.DeviceType[] dt= dBSC.QueryAllDeviceTypeInfo()  ;

                //调用远程服务
                monAgentInfoArray = dBSC.QueryMonAgentsDevs();

                DataBus db = new DataBus();
                db.initFromDataContractObj(monAgentInfoArray);
                this.DevTreeView.DataContext = db.MonitorAgentList;
            }
            catch (Exception exp)
            {
                MessageBox.Show("远程获取设备集合出错:"+exp.Message);
                return;
            }
            finally
            {
                if (dBSC!=null)
                    dBSC.Close();
            }
        }
Esempio n. 7
0
 /// <summary>
 /// 刷新所有数据
 /// </summary>
 public void refreshData()
 {
     string userID = Application.Current.Properties["userID"] as string;
     bus.DataBusServiceClient dataBusServiceClient = new bus.DataBusServiceClient();
     try
     {
         DataBus dataBus1 = new DataBus();
         dataBus1.fillDataBusByRemoteService(dataBusServiceClient,userID);
         //this.dataBus = dataBus1;
         Application.Current.Properties["DataBus"] = dataBus1;
         bus.DeviceType[] deviceTypeArray=dataBusServiceClient.QueryAllDeviceTypeInfo();
         Application.Current.Properties["DeviceTypeArray"] = deviceTypeArray;
         DevTypeCollection devTypeC=new DevTypeCollection();
         devTypeC.initFromDataBusDevTypeArray(deviceTypeArray);
         refreshTreeView(devTypeC);
     }
     catch (Exception exp)
     {
         MessageBox.Show(exp.Message);
         return;
     }
     finally
     {
         if (dataBusServiceClient != null)
             dataBusServiceClient.Close();
         dataBusServiceClient = null;
     }
 }
Esempio n. 8
0
        /// <summary>
        /// 根据ListView中选项结构添加和删除设备监控
        /// </summary>
        private void MonTaskChange_Button_Click(object sender, RoutedEventArgs e)
        {
            List<Device> devAddList = new List<Device>(4);
            List<Device> devDeleList = new List<Device>(4);
            List<int> timeList = new List<int>(4);
            bus.DataBusServiceClient serviceClient = new bus.DataBusServiceClient();
            try
            {
                foreach (Device dev in ((MonitorAgent)this.DataContext).DeviceList)
                {
                    if (this.MonDeviceRecord_Dictionary.ContainsKey(dev.DevID))//设备需要监控
                    {
                        if (dev.IsMonitered == false)//未被监控
                        {
                            int time = MonDeviceRecord_Dictionary[dev.DevID];
                            if (time <= 0)
                                throw new ApplicationException("设备"+dev.DevID+ "监控时间未正确设置");
                            //添加监控
                            devAddList.Add(dev);
                            timeList.Add(time);
                        }
                    }
                    else//不需要监控
                    {
                        if (dev.IsMonitered)//已经被监控
                        {   //删除监控
                            devDeleList.Add(dev);
                        }
                    }
                }//foreach
                //调用远程服务添加监控任务
                MonTaskConfigration.addMonDevTaskS(serviceClient,devAddList,timeList);
                //调用远程服务删除监控任务
                MonTaskConfigration.deleteMonDevTaskS(serviceClient, devDeleList);
            }
            catch (Exception exp)
            {
                MessageBox.Show("出错:" + exp.Message);
                return;
            }
            finally
            {
                if (serviceClient != null)
                    serviceClient.Close();
            }

            MessageBox.Show("监控任务修改成功");
        }