示例#1
0
        /// <summary>
        /// 新增或编辑传感器
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnOk_OnClick(object sender, RoutedEventArgs e)
        {
            if (GetControl())
            {
                OperationResult result;
                if (_isInsert)
                {
                    result = SensorApp.Insert(_sensor);

                    message.Time     = DateTime.Now;
                    message.Messages = "新增传感器:" + _sensor.Name + "    类型:" + _sensor.Type + "    地址:" +
                                       _sensor.Address;
                }
                else
                {
                    result = SensorApp.Update(_sensor);


                    message.Time     = DateTime.Now;
                    message.Messages = "更改传感器:" + _sensor.Name + "    类型:" + _sensor.Type + "    地址:" +
                                       _sensor.Address;
                }
                if (result.ResultType != OperationResultType.Success)
                {
                    MessageBox.Show(result.Message);
                    return;
                }
                else
                {
                    MessageApp.Insert(message);
                }
                DialogResult = true;
            }
        }
        /// <summary>
        /// TreeView显示内容
        /// </summary>
        private void InitTrees()
        {
            tvCoor.Items.Clear();
            List <ES.Domain.Coordinator> coor = CoordinatorApp.GetList();

            foreach (ES.Domain.Coordinator gtParent in coor)
            {
                TreeViewItem tvCoorParent = new TreeViewItem()
                {
                    Header = gtParent.Name,
                    Tag    = gtParent
                };
                tvCoor.Items.Add(tvCoorParent); //设置父节点
                List <Sensor> childType = SensorApp.GetCoorList(gtParent);
                foreach (Sensor gtChild in childType)
                {
                    TreeViewItem tvCoorChild = new TreeViewItem()
                    {
                        Header = gtChild.Name,
                        Tag    = gtChild
                    };
                    tvCoorParent.Items.Add(tvCoorChild);  //设置子节点
                }
            }
        }
        public UserControlinterface()
        {
            InitializeComponent();



            cboRelay.ItemsSource   = SensorApp.GetRelayList();
            cboRelay.SelectedIndex = 0;

            cboCoor.ItemsSource   = CoordinatorApp.GetList().OrderByDescending(p => p.ID);
            cboCoor.SelectedIndex = 0;
        }
示例#4
0
        /// <summary>
        /// 设置继电器器列表
        /// </summary>

        private void SetListRelay()
        {
            lstRelay.Items.Clear();

            foreach (ES.Domain.Sensor relay in SensorApp.GetRelayList())
            {
                Label lbl = new Label();
                lbl.Content = relay.Name + "  " + "地址:" + Converts.ByteToString((byte)relay.Address);
                lbl.Tag     = relay;
                lstRelay.Items.Add(lbl);
            }
            this.lstRelay.SelectedIndex = 0;
        }
        /// <summary>
        /// 删除传感器
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnDeleteSebsor_OnClick(object sender, RoutedEventArgs e)
        {
            if (lstCoor.SelectedItem != null)
            {
                OperationResult result         = null;
                ShowSensorData  showSensorData = GetListviewSelected();
                if (showSensorData != null)
                {
                    if (MessageBox.Show("是否删除该项", "询问", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                    {
                        Sensor sensor;
                        sensor = SensorApp.GetList().Where(p => p.Name == showSensorData.Name).First();
                        result = SensorApp.Delete(sensor);

                        Message message = new Message();
                        message.Time     = DateTime.Now;
                        message.Messages = "删除" + sensor.Coordinator.Name + "协调器下" + "传感器:" + sensor.Name + "    类型:" + sensor.Type + "    地址:" +
                                           sensor.Address;

                        if (result.ResultType != OperationResultType.Success)
                        {
                            MessageBox.Show(result.Message);
                        }
                        else
                        {
                            MessageApp.Insert(message);
                            _coordinator             = GetListboxSelected();
                            lvSensorList.ItemsSource = ShowSensorData.ShowSensorDatasList(_coordinator);
                            lblSensorCount.Content   = "数量:" + lvSensorList.Items.Count;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("请选择要删除的传感器!");
                }
            }
        }
 /// <summary>
 /// 编辑传感器信息
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void BtnUpdateSensor_OnClick(object sender, RoutedEventArgs e)
 {
     if (lstCoor.SelectedItem != null)
     {
         ShowSensorData showSensorData = GetListviewSelected();
         if (showSensorData != null)
         {
             Sensor sensor;
             sensor = SensorApp.GetList().Where(p => p.Name == showSensorData.Name).First();
             WindowSensorInfo windowSensorInfo = new WindowSensorInfo(sensor, false);
             if (windowSensorInfo.ShowDialog() == true)
             {
                 _coordinator             = GetListboxSelected();
                 lvSensorList.ItemsSource = ShowSensorData.ShowSensorDatasList(_coordinator);
                 lblSensorCount.Content   = "数量:" + lvSensorList.Items.Count;
             }
         }
         else
         {
             MessageBox.Show("请先选择编辑的传感器");
         }
     }
 }
        /// <summary>
        /// 获取传感器数据
        /// </summary>
        /// <param name="sensor">传感器</param>
        private void GetSensorData(SensorBase sensor)
        {
            ShowSensorData showSensorData;

            _sensor = SensorApp.GetCoorList(_coordinator).Find(p => p.Type == sensor.Type && p.Address == sensor.Addr);
            OperationResult result;

            if (_sensor != null)
            {
                try
                {
                    _sensorData.SensorID = _sensor.ID;
                    _sensorData.Time     = DateTime.Now;
                    _sensorData.Data     = sensor.GetData();
                    result = SensorDataApp.Insert(_sensorData);


                    Message message = new Message();
                    message.Time     = (DateTime)_sensorData.Time;
                    message.Messages = "获取" + _sensor.Name + "数据:" + _sensorData.Data + "   状态:" + "已连接";
                    MessageApp.Insert(message);


                    showSensorData       = data.Where(p => p.Name == _sensor.Name).First();
                    showSensorData.Data  = sensor.GetData();
                    showSensorData.State = "已连接";
                    showSensorData.Time  = DateTime.Now.ToString();
                }
                catch (Exception)
                {
                }
            }
            else
            {
                MessageBox.Show("传感器信息不符,请检查设备");
            }
        }
        /// <summary>
        /// 显示的数据
        /// </summary>
        private void ShowData(SensorBase sensorBase, bool isStrike)
        {
            ShowInterface showInterface;

            if (isStrike == true)
            {
                sensor = SensorApp.GetCoorList(cboCoor.SelectedItem as ES.Domain.Coordinator)
                         .Find(p => p.Type == sensorBase.Type && p.Address == sensorBase.Addr); //查找对应的传感器
                if (sensor != null)
                {
                    showInterface        = showInterfaces.First(p => p.Name == sensor.Name);
                    showInterface.Time   = DateTime.Now.ToLongTimeString();
                    showInterface.State  = "已连接";
                    showInterface.Strike = "已触发";
                    showInterfaces.ToBindingList();

                    OperationResult result  = null;
                    Message         message = new Message();
                    message.Time     = DateTime.Now;
                    message.Messages = "检测:" + showInterface.Name + "  " + showInterface.State + "  " +
                                       showInterface.Strike + "  已开启警报";
                    result = MessageApp.Insert(message);
                    if (result.ResultType != OperationResultType.Success)
                    {
                        MessageBox.Show(result.Message);
                        return;
                    }
                    else
                    {
                        SetRelay(sensorBase);   //设置警报的继电器
                    }
                }
                else
                {
                    MessageBox.Show("请检查连接的设备是否正确");
                }
            }
            else
            {
                sensor = SensorApp.GetCoorList(cboCoor.SelectedItem as ES.Domain.Coordinator)
                         .Find(p => p.Type == sensorBase.Type && p.Address == sensorBase.Addr);  //查找对应的传感器


                if (sensor != null)
                {
                    showInterface        = showInterfaces.First(p => p.Name == sensor.Name);
                    showInterface.Time   = DateTime.Now.ToLongTimeString();
                    showInterface.State  = "已连接";
                    showInterface.Strike = "未触发";
                    showInterfaces.ToBindingList();

                    OperationResult result  = null;
                    Message         message = new Message();
                    message.Time     = DateTime.Now;
                    message.Messages = "检测:" + showInterface.Name + "  " + showInterface.State + "  " +
                                       showInterface.Strike;
                    result = MessageApp.Insert(message);
                    if (result.ResultType != OperationResultType.Success)
                    {
                        MessageBox.Show(result.Message);
                        return;
                    }
                }
                else
                {
                    MessageBox.Show("请检查设备连接是否正确");
                }
            }
        }