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; }
public FrmDvr() { InitializeComponent(); _measApp = new CoreApp(); _dvr = new HkDvr(); }
/// <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; }
/// <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("接管成功!"); } }
/// <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(); }
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; } } }
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); } }