Example #1
0
 private void WeighPrompt(CoreApp app, bool isFlash)
 {
     if (isFlash)
     {
         app.FlashThread = new Thread(new ParameterizedThreadStart(flashPointDelegate));
         app.FlashThread.Start(app.Params.FS_POINTCODE);
     }
     else
     {
         if (app.FlashThread != null)
         {
             app.FlashThread.Abort();
             app.FlashThread = null;
             Infragistics.Win.UltraWinGrid.UltraGridRow uRow = null;
             for (int i = 0; i < ultraGrid2.Rows.Count; i++)
             {
                 uRow = ultraGrid2.Rows[i];
                 if (uRow.Cells["FS_POINTCODE"].Value.ToString().Equals(app.Params.FS_POINTCODE))
                 {
                     uRow.Appearance.BackColor = Color.Green;
                     break;
                 }
             }
         }
     }
     app.IsFlash = isFlash;
 }
Example #2
0
 public FrmDvr()
 {
     InitializeComponent();
     _measApp = new CoreApp();
     _dvr = new HkDvr();
 }
Example #3
0
        /// <summary>
        /// 初始化计量点
        /// </summary>
        private void InitWeightPoints()
        {
            //查询计量点信息
            _carWeightDatamanage.GetWeightPoints(this.dataTable1);
            WeighPoint wp = new WeighPoint(this.ob);
            //按计量点数量生成CoreApp对象数组
            if (_measApps == null)
            {
                _measApps = new CoreApp[ultraGrid2.Rows.Count];
            }
            int count = 0;
            for (int i = 0; i < ultraGrid2.Rows.Count; i++)
            {
                Infragistics.Win.UltraWinGrid.UltraGridRow uRow = ultraGrid2.Rows[i];
                string sign = uRow.Cells["FN_POINTFLAG"].Value.ToString().Trim();
                string signIp = uRow.Cells["FS_IP"].Value.ToString().Trim();
                if (sign.Equals("1"))
                {
                    if (signIp.Equals(_carWeightDatamanage.IP4))
                    {
                        uRow.Appearance.BackColor = Color.Green;
                        //uRow.Cells["XZ"].Value = true;
                        count++;

                        //初始化设备
                        string pointCode = uRow.Cells["FS_POINTCODE"].Value.ToString().Trim();
                        _measApps[i] = new CoreApp();
                        _measApps[i].Params = wp.GetPoint(pointCode);
                        _measApps[i].Init(i);
                        //初始化读卡器
                        if (_measApps[i].Card != null)
                        {
                            _measApps[i].Card.CardChanged += new CardChangedEventHandler(OnCardChanged1);
                        }
                        // 初始化称重仪
                        if (_measApps[i].Weight != null)
                        {
                            _measApps[i].Weight.WeightChanged += new YGJZJL.CarSip.Client.Meas.WeightChangedEventHandler(OnWeightChanged1);
                            _measApps[i].Weight.WeightCompleted += new YGJZJL.CarSip.Client.Meas.WeightCompletedEventHandler(OnWeightCompleted1);
                        }
                        //初始化RTU
                        if (_measApps[i].Rtu != null)
                        {
                            _measApps[i].Rtu.DOChanged += new RtuChangedEventHandler(Rtu_DOChanged1);
                        }
                        _measApps[i].Run();
                    }
                    else
                    {
                        uRow.Appearance.BackColor = Color.Yellow;
                        uRow.Cells["XZ"].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
                    }
                }
                else
                {
                    uRow.Appearance.BackColor = Color.White;
                }
            }
            btnJG.Text = count == 0 ? "接 管" : "取消接管";
            if (btnJG.Text.Equals("取消接管"))
            {
                MessageBox.Show("接管成功!");
            }
            //设置一次计量图片显示大小
            panel17.Width = videoChannel5.Width;
            panel17.Height = videoChannel5.Height;
            panel18.Width = videoChannel6.Width;
            panel18.Height = videoChannel6.Height;
            panel19.Width = videoChannel7.Width;
            panel19.Height = videoChannel7.Height;
            panel20.Width = videoChannel8.Width;
            panel20.Height = videoChannel8.Height;
        }
Example #4
0
        /// <summary>
        /// 初始化接管计量点
        /// </summary>
        private void InitBandPoints()
        {
            WeighPoint wp = new WeighPoint(this.ob);
            int count = 0;
            for (int i = 0; i < ultraGrid2.Rows.Count; i++)
            {
                Infragistics.Win.UltraWinGrid.UltraGridRow uRow = ultraGrid2.Rows[i];
                string sign = uRow.Cells["FN_POINTFLAG"].Value.ToString().Trim();
                string signIp = uRow.Cells["FS_IP"].Value.ToString().Trim();
                if (sign.Equals("1"))
                {
                    if (signIp.Equals(_carWeightDatamanage.IP4))
                    {
                        uRow.Appearance.BackColor = Color.Green;
                        //uRow.Cells["XZ"].Value = true;
                        count++;

                        //初始化设备
                        bool flag = true;
                        string pointCode = uRow.Cells["FS_POINTCODE"].Value.ToString().Trim();
                        foreach (CoreApp measApp in _measApps)
                        {
                            if (measApp != null && measApp.Params.FS_POINTCODE.Equals(pointCode))
                            {
                                flag = false;
                                break;
                            }
                        }
                        if (flag)
                        {
                            _measApps[i] = new CoreApp();
                            _measApps[i].Params = wp.GetPoint(pointCode);
                            _measApps[i].Init(i);
                            //初始化读卡器
                            if (_measApps[i].Card != null)
                            {
                                _measApps[i].Card.CardChanged += new CardChangedEventHandler(OnCardChanged1);
                            }
                            // 初始化称重仪
                            if (_measApps[i].Weight != null)
                            {
                                _measApps[i].Weight.WeightChanged += new YGJZJL.CarSip.Client.Meas.WeightChangedEventHandler(OnWeightChanged1);
                                _measApps[i].Weight.WeightCompleted += new YGJZJL.CarSip.Client.Meas.WeightCompletedEventHandler(OnWeightCompleted1);
                            }
                            //初始化RTU
                            if (_measApps[i].Rtu != null)
                            {
                                _measApps[i].Rtu.DOChanged += new RtuChangedEventHandler(Rtu_DOChanged1);
                            }

                            _measApps[i].Run();

                        }
                    }
                    else
                    {
                        uRow.Appearance.BackColor = Color.Yellow;
                        uRow.Cells["XZ"].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
                    }
                }
                else
                {
                    uRow.Appearance.BackColor = Color.White;
                }
            }
            btnJG.Text = count == 0 ? "接 管" : "取消接管";
            if (btnJG.Text.Equals("取消接管"))
            {
                MessageBox.Show("接管成功!");
            }
        }
Example #5
0
        /// <summary>
        /// 取消接管
        /// </summary>
        private void ClosePoint()
        {
            if (DialogResult.Yes != MessageBox.Show("是否确定取消接管的计量点?", "提示", MessageBoxButtons.YesNo))
            {
                return;
            }
            ArrayList param = new ArrayList();
            ultraGrid2.UpdateData();
            string sign = "";
            bool isChecked = false;
            string signIp = "";
            string pointCode = "";
            foreach (Infragistics.Win.UltraWinGrid.UltraGridRow uRow in ultraGrid2.Rows)
            {
                sign = uRow.Cells["FN_POINTFLAG"].Text.Trim();
                isChecked = Convert.ToBoolean(uRow.Cells["XZ"].Value);
                signIp = uRow.Cells["FS_IP"].Text.Trim();
                pointCode = uRow.Cells["FS_POINTCODE"].Text.Trim();
                if (sign.Equals("1") && isChecked && signIp.Equals(_carWeightDatamanage.IP4))
                {
                    param.Add(pointCode);

                    //关闭当前计量点视频
                    if (_measApp != null && _measApp.Params.FS_POINTCODE.Equals(pointCode))
                    {
                        _measApp.Rtu.OpenRed();
                        if (_measApp.Dvr != null)
                        {
                            if (_isTalk)
                            {
                                _measApp.Dvr.StopTalk();
                                _isTalk = false;
                                ultraToolbarsManager1.Toolbars[0].Tools["YYDJ"].SharedProps.Caption = "打开对讲";
                            }
                            _measApp.Dvr.CloseSound();//关闭声音
                            for (int i = 1; i <= 8; i++)
                            {
                                _measApp.Dvr.StopRealPlay(i);
                            }
                        }
                        _measApp = null;
                        m_iSelectedPound = -1;
                        weighEditorControl1.PointCode = "";
                        weighEditorControl1.PointName = "";
                        meterControl1.Status = MeterStatus.UnConnect;
                        meterControl1.Weight = 0;
                        videoChannel1.Refresh();
                        videoChannel2.Refresh();
                        videoChannel3.Refresh();
                        videoChannel4.Refresh();
                        videoChannel5.Refresh();
                        videoChannel6.Refresh();
                        videoChannel7.Refresh();
                        videoChannel8.Refresh();
                    }

                    //释放计量点连接
                    for (int i = 0; i < _measApps.Length; i++)
                    {
                        if (_measApps[i] != null && _measApps[i].Params.FS_POINTCODE.Equals(pointCode))
                        {
                            if (_measApps[i].Rtu != null)
                            {
                                _measApps[i].Rtu.OpenRed();
                            }
                            if (_measApps[i].Weight != null)
                            {
                                _measApps[i].Weight.WeightChanged -= new YGJZJL.CarSip.Client.Meas.WeightChangedEventHandler(OnWeightChanged1);
                                _measApps[i].Weight.WeightCompleted -= new YGJZJL.CarSip.Client.Meas.WeightCompletedEventHandler(OnWeightCompleted1);
                            }
                            if (_measApps[i].IsFlash)
                            {
                                WeighPrompt(_measApps[i], false);
                                Log.Debug("CarWegih.WeighPrompt(" + _measApps[i].Params.FS_POINTCODE + ",false)");
                            }
                            _measApps[i].Finit();
                            _measApps[i] = null;
                            break;
                        }
                    }
                }
            }

            if (param.Count > 0)
            {
                _carWeightDatamanage.ClosePoints(param);
                btnJG.Text = "接 管";
            }

            RefreashPoint();
        }
Example #6
0
        private void CarWeigh_FormClosing(object sender, FormClosingEventArgs e)
        {
            //如果有上一个计量点没有被关闭,那么就关闭上一个计量点所有的设备
            if (_measApp != null)
            {
                _measApp.Rtu.OpenRed();
                if (_measApp.Dvr != null)
                {
                    if (_isTalk)
                    {
                        _measApp.Dvr.StopTalk();
                        _isTalk = false;
                        ultraToolbarsManager1.Toolbars[0].Tools["YYDJ"].SharedProps.Caption = "打开对讲";
                    }
                    _measApp.Dvr.CloseSound();//关闭声音
                    for (int i = 1; i <= 8; i++)
                    {
                        _measApp.Dvr.StopRealPlay(i);
                    }
                }
                _measApp = null;
            }

            for (int i = 0; i < _measApps.Length; i++)
            {
                if (_measApps[i] != null)
                {
                    _measApps[i].Finit();
                    _measApps[i] = null;
                }
            }
        }
Example #7
0
        public void ChangePoint(string pointCode)
        {
            try
            {
                //如果有上一个计量点没有被关闭,那么就关闭上一个计量点所有的设备
                if (_measApp != null)
                {
                    if (_measApp.Dvr != null)
                    {
                        //切换计量点前如果正在语音对讲先关闭对讲
                        if (_isTalk)
                        {
                            _measApp.Dvr.StopTalk();
                            _isTalk = false;
                            ultraToolbarsManager1.Toolbars[0].Tools["YYDJ"].SharedProps.Caption = "打开对讲";
                        }
                        _measApp.Dvr.CloseSound();//关闭声音
                        for (int i = 1; i <= 8; i++)
                        {
                            _measApp.Dvr.StopRealPlay(i);
                        }
                        bigVideoChannel.Visible = false;
                        _bigChannelId = -1;
                    }
                    //停止上个计量点数据接收,只接收重量进行提示
                    if (_measApp.Card != null)
                    {
                        _measApp.Card.CardChanged -= new CardChangedEventHandler(OnCardChanged);
                        _measApp.Card.ReadOnly = true;//设置为不写卡
                    }
                    if (_measApp.Weight != null)
                    {
                        _measApp.Weight.WeightChanged -= new YGJZJL.CarSip.Client.Meas.WeightChangedEventHandler(OnWeightChanged);
                        _measApp.Weight.WeightCompleted -= new YGJZJL.CarSip.Client.Meas.WeightCompletedEventHandler(OnWeightCompleted);
                    }
                    if (_measApp.Rtu != null)
                    {
                        _measApp.Rtu.DOChanged -= new RtuChangedEventHandler(Rtu_DOChanged);
                    }

                    //_measApp.Finit();
                    _measApp = null;
                }

                if (this.ultraGrid2.ActiveRow == null || this.ultraGrid2.ActiveRow.Index < 0)
                {
                    return;
                }
                //WeighPoint wp = new WeighPoint(this.ob);

                //初始化计量点对象
                int iSelectIndex = ultraGrid2.ActiveRow.Index;
                if (iSelectIndex == m_iSelectedPound)
                {
                    return;
                }

                messForm.SetMessage("正在打开设备,请稍候!");

                m_iSelectedPound = iSelectIndex;
                _measApp = _measApps[m_iSelectedPound];//new CoreApp();
                //_measApp.Params = wp.GetPoint(pointCode);

                //初始化打印机
                _measApp.Params.FS_PRINTERNAME = pointCode;// new System.Drawing.Printing.PrintDocument().PrinterSettings.PrinterName;
                txtZZ.Text = _measApp.Params.FN_USEDPRINTPAPER;
                //_measApp.Init();
                //初始化读卡器
                if (_measApp.Card != null)
                {
                    try
                    {
                        _measApp.Card.CardChanged += new CardChangedEventHandler(OnCardChanged);
                        _measApp.Card.ReadOnly = false;//卡可写
                        _measApp.Card.ClearCard();
                        if (_measApp.Card.CardThread.ThreadState == ThreadState.Suspended)//注释测试读卡
                        {
                            _measApp.Card.CardThread.Resume();
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("读卡器初始化失败,请重新启动!"+"/n"+ex.Message );
                    }
                }
                else
                {
                    MessageBox.Show("读卡器初始化失败,请重新启动!");
                }

                // 初始化称重仪
                if (_measApp.Weight != null)
                {
                    try
                    {
                        _measApp.Weight.WeightChanged += new YGJZJL.CarSip.Client.Meas.WeightChangedEventHandler(OnWeightChanged);
                        _measApp.Weight.WeightCompleted += new YGJZJL.CarSip.Client.Meas.WeightCompletedEventHandler(OnWeightCompleted);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("仪表初始化失败,请重新启动!"+"/n" + ex.Message);
                    }
                 }
                else
                {
                    MessageBox.Show("仪表初始化失败,请重新启动!");
                    meterControl1.Status = MeterStatus.UnConnect;//仪表未连接上
                }

                if (_measApp.Rtu != null)
                {
                    try
                    {
                        //初始化红绿灯
                        _measApp.Rtu.DOChanged += new RtuChangedEventHandler(Rtu_DOChanged);
                        _measApp.Rtu.ReRead();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("RTU初始化失败,请重新启动!"+"\n"+ex.Message );
                    }
                }
                else
                {
                    MessageBox.Show("RTU初始化失败,请重新启动!");
                }

                //_measApp.Run();
                // 初始化视频
                for (int i = 1; i <= 8; i++)
                {
                    _measApp.Dvr.RealPlay(i, ((PictureBox)Controls.Find("videoChannel" + i.ToString(), true)[0]).Handle);
                }
                Thread.Sleep(100);
                //打开第7通道声音
                _measApp.Dvr.OpenSound(6);
                //停止正在计量计量点闪烁
                if (_measApp.IsFlash)
                {
                    WeighPrompt(_measApp, false);
                }
                //播放语音
                bool bl = _measApp.Dvr.SendVoiceData(Constant.RunPath + "\\sound\\正在计量.wav");
                //StrBandPoint = "1";//标识已经接管计量点
                //初始化动态曲线图
                InitChart();
                //加载一次计量数据
                _carWeightDatamanage.GetFirstWeighData(this.dataTable11, "", "");
                _dtFirstWeighData = dataTable11.Copy();
                this.ultraGrid3.DataSource = _dtFirstWeighData;
                #region 调整ultraGrid格式
                if (ultraGrid3.DisplayLayout.Bands.Count > 0)
                {
                    Infragistics.Win.UltraWinGrid.ColumnsCollection cols = ultraGrid3.DisplayLayout.Bands[0].Columns;
                    if (cols.Exists("FS_MATERIAL"))
                    {
                        cols["FS_MATERIAL"].Hidden = true;
                    }
                    if (cols.Exists("FS_SENDER"))
                    {
                        cols["FS_SENDER"].Hidden = true;
                    }
                    if (cols.Exists("FS_RECEIVER"))
                    {
                        cols["FS_RECEIVER"].Hidden = true;
                    }
                    if (cols.Exists("FS_WEIGHTTYPE"))
                    {
                        cols["FS_WEIGHTTYPE"].Hidden = true;
                    }
                    if (cols.Exists("FS_TRANSNO"))
                    {
                        cols["FS_TRANSNO"].Hidden = true;
                    }
                    if (cols.Exists("FS_POUNDTYPE"))
                    {
                        cols["FS_POUNDTYPE"].Hidden = true;
                    }
                    if (cols.Exists("FD_LOADINSTORETIME"))
                    {
                        cols["FD_LOADINSTORETIME"].Hidden = true;
                    }
                    if (cols.Exists("FD_LOADOUTSTORETIME"))
                    {
                        cols["FD_LOADOUTSTORETIME"].Hidden = true;
                    }
                    if (cols.Exists("FS_UNLOADFLAG"))
                    {
                        cols["FS_UNLOADFLAG"].Hidden = true;
                    }
                    if (cols.Exists("FS_UNLOADSTOREPERSON"))
                    {
                        cols["FS_UNLOADSTOREPERSON"].Hidden = true;
                    }
                    if (cols.Exists("FS_LOADFLAG"))
                    {
                        cols["FS_LOADFLAG"].Hidden = true;
                    }
                    if (cols.Exists("FS_LOADSTOREPERSON"))
                    {
                        cols["FS_LOADSTOREPERSON"].Hidden = true;
                    }
                    if (cols.Exists("FS_SAMPLEPERSON"))
                    {
                        cols["FS_SAMPLEPERSON"].Hidden = true;
                    }
                    if (cols.Exists("FS_FIRSTLABELID"))
                    {
                        cols["FS_FIRSTLABELID"].Hidden = true;
                    }
                    if (cols.Exists("FD_UNLOADINSTORETIME"))
                    {
                        cols["FD_UNLOADINSTORETIME"].Hidden = true;
                    }
                    if (cols.Exists("FD_UNLOADOUTSTORETIME"))
                    {
                        cols["FD_UNLOADOUTSTORETIME"].Hidden = true;
                    }
                    if (cols.Exists("FS_BZ"))
                    {
                        cols["FS_BZ"].Hidden = true;
                    }
                    if (cols.Exists("FS_PROVIDER"))
                    {
                        cols["FS_PROVIDER"].Hidden = true;
                    }
                    if (cols.Exists("FS_MEMO"))
                    {
                        cols["FS_MEMO"].Hidden = true;
                    }
                    if (cols.Exists("FS_MEMO"))
                    {
                        cols["FS_MEMO"].Hidden = true;
                    }
                    if (cols.Exists("FS_RECEIVERFACTORY"))
                    {
                        cols["FS_RECEIVERFACTORY"].Hidden = true;
                    }

                }
                Constant.RefreshAndAutoSize(ultraGrid3);
                #endregion
            }
            catch (Exception ex)
            {
                MessageBox.Show("设备连接异常,可能您已连接,请联系管理员!" + ex.Message);
                Log.Error(ex.Message);
            }
        }