diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index d16c5da..82ef7f1 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -15,6 +15,8 @@ int open(string id); + bool isOpen(); + int close(); int write(string content); diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index d16c5da..82ef7f1 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -15,6 +15,8 @@ int open(string id); + bool isOpen(); + int close(); int write(string content); diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 1eb7da3..8e8ae0d 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -45,6 +45,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseGpib.WriteLine("*IDN?"); + string idn = _portOperatorBaseGpib.ReadLine(); + if (idn!=null||idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseGpib == null || !_portOperatorBaseGpib.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index d16c5da..82ef7f1 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -15,6 +15,8 @@ int open(string id); + bool isOpen(); + int close(); int write(string content); diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 1eb7da3..8e8ae0d 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -45,6 +45,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseGpib.WriteLine("*IDN?"); + string idn = _portOperatorBaseGpib.ReadLine(); + if (idn!=null||idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseGpib == null || !_portOperatorBaseGpib.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index 059c95c..132d920 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -14,6 +14,9 @@ CounterCheckParam counterCheckParam, ref SensitivityContentParam sensitivityContentParam) { int iRetval = -1; + + if (!gPIBService.isOpen() || !tcpService.isOpen()) + return iRetval; try { //设置计数器阻抗 @@ -109,7 +112,7 @@ double errorFreq = Math.Abs(cFreq - bFreq); - if (bFreq > 80 * 1000 * 1000) + if (bFreq >= 1 * 1000 * 1000) return errorFreq < freThreshold2 ? true : false; else return errorFreq < freThreshold1 ? true : false; @@ -124,7 +127,7 @@ double errorPeriod = Math.Abs(cPeriod - bPeriod); - if (bPeriod > 12.5 / 1000 / 1000 / 1000) + if (bPeriod >= 1000 / 1000 / 1000 / 1000) return errorPeriod < periodThreshold2 ? true : false; else return errorPeriod < periodThreshold1 ? true : false; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index d16c5da..82ef7f1 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -15,6 +15,8 @@ int open(string id); + bool isOpen(); + int close(); int write(string content); diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 1eb7da3..8e8ae0d 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -45,6 +45,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseGpib.WriteLine("*IDN?"); + string idn = _portOperatorBaseGpib.ReadLine(); + if (idn!=null||idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseGpib == null || !_portOperatorBaseGpib.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index 059c95c..132d920 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -14,6 +14,9 @@ CounterCheckParam counterCheckParam, ref SensitivityContentParam sensitivityContentParam) { int iRetval = -1; + + if (!gPIBService.isOpen() || !tcpService.isOpen()) + return iRetval; try { //设置计数器阻抗 @@ -109,7 +112,7 @@ double errorFreq = Math.Abs(cFreq - bFreq); - if (bFreq > 80 * 1000 * 1000) + if (bFreq >= 1 * 1000 * 1000) return errorFreq < freThreshold2 ? true : false; else return errorFreq < freThreshold1 ? true : false; @@ -124,7 +127,7 @@ double errorPeriod = Math.Abs(cPeriod - bPeriod); - if (bPeriod > 12.5 / 1000 / 1000 / 1000) + if (bPeriod >= 1000 / 1000 / 1000 / 1000) return errorPeriod < periodThreshold2 ? true : false; else return errorPeriod < periodThreshold1 ? true : false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs index f91f2d2..8ad1a8a 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -39,7 +39,7 @@ try { _portOperatorBaseTcp.Open(); - + result = 0; } catch (Exception ex) @@ -52,6 +52,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseTcp.WriteLine("*IDN?"); + string idn = _portOperatorBaseTcp.ReadLine(); + if (idn != null || idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseTcp == null || !_portOperatorBaseTcp.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string id) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index d16c5da..82ef7f1 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -15,6 +15,8 @@ int open(string id); + bool isOpen(); + int close(); int write(string content); diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 1eb7da3..8e8ae0d 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -45,6 +45,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseGpib.WriteLine("*IDN?"); + string idn = _portOperatorBaseGpib.ReadLine(); + if (idn!=null||idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseGpib == null || !_portOperatorBaseGpib.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index 059c95c..132d920 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -14,6 +14,9 @@ CounterCheckParam counterCheckParam, ref SensitivityContentParam sensitivityContentParam) { int iRetval = -1; + + if (!gPIBService.isOpen() || !tcpService.isOpen()) + return iRetval; try { //设置计数器阻抗 @@ -109,7 +112,7 @@ double errorFreq = Math.Abs(cFreq - bFreq); - if (bFreq > 80 * 1000 * 1000) + if (bFreq >= 1 * 1000 * 1000) return errorFreq < freThreshold2 ? true : false; else return errorFreq < freThreshold1 ? true : false; @@ -124,7 +127,7 @@ double errorPeriod = Math.Abs(cPeriod - bPeriod); - if (bPeriod > 12.5 / 1000 / 1000 / 1000) + if (bPeriod >= 1000 / 1000 / 1000 / 1000) return errorPeriod < periodThreshold2 ? true : false; else return errorPeriod < periodThreshold1 ? true : false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs index f91f2d2..8ad1a8a 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -39,7 +39,7 @@ try { _portOperatorBaseTcp.Open(); - + result = 0; } catch (Exception ex) @@ -52,6 +52,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseTcp.WriteLine("*IDN?"); + string idn = _portOperatorBaseTcp.ReadLine(); + if (idn != null || idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseTcp == null || !_portOperatorBaseTcp.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string id) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/RbFreqStdMeas.cs b/RbFreqStandMeasure/RbFreqStdMeas.cs index 12c816e..e1b99b2 100644 --- a/RbFreqStandMeasure/RbFreqStdMeas.cs +++ b/RbFreqStandMeasure/RbFreqStdMeas.cs @@ -224,19 +224,7 @@ } private void SelectCounter() { - // 移除所有按钮的选中样式 - ClearAllMenuSelected(); - - // 鼠标移入效果去掉 - LeaveCounter(); - - // 重新设置所有按钮的状态 - menuSelected = new bool[] { false, false, false, true, false, false }; - - // 将新选中的按钮设置为选中 - picIconCounter.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_counter_selected", null); - labCounterText.ForeColor = menuSelectedColor; - labCounterSelected.BackColor = menuSelectedColor; + // 切换到频率计数器的界面 switchMainPanel(3); @@ -515,6 +503,19 @@ if (index != 3 && CounterCtrlForm.isDetecting) { MessageBox.Show("正在检测计数器,无法离开当前界面!"); + // 移除所有按钮的选中样式 + ClearAllMenuSelected(); + + // 鼠标移入效果去掉 + LeaveCounter(); + + // 重新设置所有按钮的状态 + menuSelected = new bool[] { false, false, false, true, false, false }; + + // 将新选中的按钮设置为选中 + picIconCounter.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_counter_selected", null); + labCounterText.ForeColor = menuSelectedColor; + labCounterSelected.BackColor = menuSelectedColor; return; } panelMain.Controls.Clear(); diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index d16c5da..82ef7f1 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -15,6 +15,8 @@ int open(string id); + bool isOpen(); + int close(); int write(string content); diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 1eb7da3..8e8ae0d 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -45,6 +45,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseGpib.WriteLine("*IDN?"); + string idn = _portOperatorBaseGpib.ReadLine(); + if (idn!=null||idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseGpib == null || !_portOperatorBaseGpib.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index 059c95c..132d920 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -14,6 +14,9 @@ CounterCheckParam counterCheckParam, ref SensitivityContentParam sensitivityContentParam) { int iRetval = -1; + + if (!gPIBService.isOpen() || !tcpService.isOpen()) + return iRetval; try { //设置计数器阻抗 @@ -109,7 +112,7 @@ double errorFreq = Math.Abs(cFreq - bFreq); - if (bFreq > 80 * 1000 * 1000) + if (bFreq >= 1 * 1000 * 1000) return errorFreq < freThreshold2 ? true : false; else return errorFreq < freThreshold1 ? true : false; @@ -124,7 +127,7 @@ double errorPeriod = Math.Abs(cPeriod - bPeriod); - if (bPeriod > 12.5 / 1000 / 1000 / 1000) + if (bPeriod >= 1000 / 1000 / 1000 / 1000) return errorPeriod < periodThreshold2 ? true : false; else return errorPeriod < periodThreshold1 ? true : false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs index f91f2d2..8ad1a8a 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -39,7 +39,7 @@ try { _portOperatorBaseTcp.Open(); - + result = 0; } catch (Exception ex) @@ -52,6 +52,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseTcp.WriteLine("*IDN?"); + string idn = _portOperatorBaseTcp.ReadLine(); + if (idn != null || idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseTcp == null || !_portOperatorBaseTcp.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string id) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/RbFreqStdMeas.cs b/RbFreqStandMeasure/RbFreqStdMeas.cs index 12c816e..e1b99b2 100644 --- a/RbFreqStandMeasure/RbFreqStdMeas.cs +++ b/RbFreqStandMeasure/RbFreqStdMeas.cs @@ -224,19 +224,7 @@ } private void SelectCounter() { - // 移除所有按钮的选中样式 - ClearAllMenuSelected(); - - // 鼠标移入效果去掉 - LeaveCounter(); - - // 重新设置所有按钮的状态 - menuSelected = new bool[] { false, false, false, true, false, false }; - - // 将新选中的按钮设置为选中 - picIconCounter.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_counter_selected", null); - labCounterText.ForeColor = menuSelectedColor; - labCounterSelected.BackColor = menuSelectedColor; + // 切换到频率计数器的界面 switchMainPanel(3); @@ -515,6 +503,19 @@ if (index != 3 && CounterCtrlForm.isDetecting) { MessageBox.Show("正在检测计数器,无法离开当前界面!"); + // 移除所有按钮的选中样式 + ClearAllMenuSelected(); + + // 鼠标移入效果去掉 + LeaveCounter(); + + // 重新设置所有按钮的状态 + menuSelected = new bool[] { false, false, false, true, false, false }; + + // 将新选中的按钮设置为选中 + picIconCounter.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_counter_selected", null); + labCounterText.ForeColor = menuSelectedColor; + labCounterSelected.BackColor = menuSelectedColor; return; } panelMain.Controls.Clear(); diff --git a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe index 5bc66ec..ecbb7e2 100644 --- a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe +++ b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe Binary files differ diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index d16c5da..82ef7f1 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -15,6 +15,8 @@ int open(string id); + bool isOpen(); + int close(); int write(string content); diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 1eb7da3..8e8ae0d 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -45,6 +45,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseGpib.WriteLine("*IDN?"); + string idn = _portOperatorBaseGpib.ReadLine(); + if (idn!=null||idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseGpib == null || !_portOperatorBaseGpib.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index 059c95c..132d920 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -14,6 +14,9 @@ CounterCheckParam counterCheckParam, ref SensitivityContentParam sensitivityContentParam) { int iRetval = -1; + + if (!gPIBService.isOpen() || !tcpService.isOpen()) + return iRetval; try { //设置计数器阻抗 @@ -109,7 +112,7 @@ double errorFreq = Math.Abs(cFreq - bFreq); - if (bFreq > 80 * 1000 * 1000) + if (bFreq >= 1 * 1000 * 1000) return errorFreq < freThreshold2 ? true : false; else return errorFreq < freThreshold1 ? true : false; @@ -124,7 +127,7 @@ double errorPeriod = Math.Abs(cPeriod - bPeriod); - if (bPeriod > 12.5 / 1000 / 1000 / 1000) + if (bPeriod >= 1000 / 1000 / 1000 / 1000) return errorPeriod < periodThreshold2 ? true : false; else return errorPeriod < periodThreshold1 ? true : false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs index f91f2d2..8ad1a8a 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -39,7 +39,7 @@ try { _portOperatorBaseTcp.Open(); - + result = 0; } catch (Exception ex) @@ -52,6 +52,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseTcp.WriteLine("*IDN?"); + string idn = _portOperatorBaseTcp.ReadLine(); + if (idn != null || idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseTcp == null || !_portOperatorBaseTcp.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string id) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/RbFreqStdMeas.cs b/RbFreqStandMeasure/RbFreqStdMeas.cs index 12c816e..e1b99b2 100644 --- a/RbFreqStandMeasure/RbFreqStdMeas.cs +++ b/RbFreqStandMeasure/RbFreqStdMeas.cs @@ -224,19 +224,7 @@ } private void SelectCounter() { - // 移除所有按钮的选中样式 - ClearAllMenuSelected(); - - // 鼠标移入效果去掉 - LeaveCounter(); - - // 重新设置所有按钮的状态 - menuSelected = new bool[] { false, false, false, true, false, false }; - - // 将新选中的按钮设置为选中 - picIconCounter.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_counter_selected", null); - labCounterText.ForeColor = menuSelectedColor; - labCounterSelected.BackColor = menuSelectedColor; + // 切换到频率计数器的界面 switchMainPanel(3); @@ -515,6 +503,19 @@ if (index != 3 && CounterCtrlForm.isDetecting) { MessageBox.Show("正在检测计数器,无法离开当前界面!"); + // 移除所有按钮的选中样式 + ClearAllMenuSelected(); + + // 鼠标移入效果去掉 + LeaveCounter(); + + // 重新设置所有按钮的状态 + menuSelected = new bool[] { false, false, false, true, false, false }; + + // 将新选中的按钮设置为选中 + picIconCounter.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_counter_selected", null); + labCounterText.ForeColor = menuSelectedColor; + labCounterSelected.BackColor = menuSelectedColor; return; } panelMain.Controls.Clear(); diff --git a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe index 5bc66ec..ecbb7e2 100644 --- a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe +++ b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe Binary files differ diff --git a/RbFreqStandMeasure/counter/CounterCtrlForm.cs b/RbFreqStandMeasure/counter/CounterCtrlForm.cs index c3d14de..36ae30d 100644 --- a/RbFreqStandMeasure/counter/CounterCtrlForm.cs +++ b/RbFreqStandMeasure/counter/CounterCtrlForm.cs @@ -536,12 +536,24 @@ private void btnStart_Click(object sender, EventArgs e) { + if (text_counterIp.Text.Equals("")) + { + MessageBox.Show("请输入频率计数器IP!"); + return; + } + if (text_signal.Text.Equals("")) + { + MessageBox.Show("请输入信号源地址!"); + return; + } + dataGridView_CounterResult.ReadOnly = true; isDetecting = true; btn_add.Enabled = false; benDelete.Enabled = false; btn_dropDetecModel.Enabled = false; string[] ids = gPIBService.getId(); + //string[] ips = tcpService.getId(); /*if (ids != null && ids.Length > 0) { @@ -564,7 +576,7 @@ } else {*/ - string[] arr = text_counterIp.Text.Split('.'); + string[] arr = text_counterIp.Text.Split('.'); if (arr.Length != 4) { MessageBox.Show("请输入正确的频率计数器IP!"); @@ -607,7 +619,6 @@ btnStart.Enabled = false; btn_dropDetecModel.Enabled = false; textBox_detecModel.ReadOnly = true; - btn_dropDetecModel.Enabled = true; SetDevTestDlg.inDetecCounterId = deviceId; string type = textBox_detecModel.Text.Equals("频率测量") ? "freq" : "period"; string typeId = type.Equals("freq") ? "1" : "2"; @@ -617,10 +628,23 @@ // 获取数据 List counterDetecInitList = counterDetecInitService.getAll(); - CounterCheckParam counterCheckParam = dictService.getCounterCheckParam(); - - gPIBService.open(gPIBService.getId()[0]); - tcpService.open("TCPIP0::"+text_counterIp.Text+"::INSTR"); + CounterCheckParam counterCheckParam = dictService.getCounterCheckParam(); + + int gpibConnection=gPIBService.open(text_signal.Text); + int tcpConnection=tcpService.open("TCPIP0::"+text_counterIp.Text+"::INSTR"); + + if (gpibConnection == -1) + { + MessageBox.Show("未连接信号源"); + changeBox(); + return; + } + else if (tcpConnection == -1) + { + MessageBox.Show("未连接计数器"); + changeBox(); + return; + } //tcpService.open(text_counterIp.Text); int index = 0; @@ -655,25 +679,30 @@ } gPIBService.close(); tcpService.close(); - - Invoke(new MethodInvoker(delegate () - { - SetDevTestDlg.inDetecCounterId = -1; - text_devName.ReadOnly = false; - btn_downCounterList.Enabled = true; - btnStart.Enabled = true; - btn_dropDetecModel.Enabled = true; - textBox_detecModel.ReadOnly = false; - })); - dataGridView_CounterResult.ReadOnly = false; - btn_add.Enabled = true; - benDelete.Enabled = true; - detected = true; - isDetecting = false; + changeBox(); }).Start(); } + private void changeBox() + { + Invoke(new MethodInvoker(delegate () + { + SetDevTestDlg.inDetecCounterId = -1; + text_devName.ReadOnly = false; + btn_downCounterList.Enabled = true; + btnStart.Enabled = true; + btn_dropDetecModel.Enabled = true; + textBox_detecModel.ReadOnly = false; + })); + + dataGridView_CounterResult.ReadOnly = false; + btn_add.Enabled = true; + benDelete.Enabled = true; + detected = true; + isDetecting = false; + } + private void dataGridView_CounterResult_CellEndEdit(object sender, DataGridViewCellEventArgs e) { int id = Convert.ToInt32(dataGridView_CounterResult.Rows[e.RowIndex].Cells[8].Value); @@ -858,5 +887,15 @@ } } + private int isConnect(string id, string ip) + { + int result = 0; + if (!gPIBService.isOpen()) + result = -1; + else if (!tcpService.isOpen()) + result = -2; + return result; + } + } } diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index d16c5da..82ef7f1 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -15,6 +15,8 @@ int open(string id); + bool isOpen(); + int close(); int write(string content); diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 1eb7da3..8e8ae0d 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -45,6 +45,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseGpib.WriteLine("*IDN?"); + string idn = _portOperatorBaseGpib.ReadLine(); + if (idn!=null||idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseGpib == null || !_portOperatorBaseGpib.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index 059c95c..132d920 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -14,6 +14,9 @@ CounterCheckParam counterCheckParam, ref SensitivityContentParam sensitivityContentParam) { int iRetval = -1; + + if (!gPIBService.isOpen() || !tcpService.isOpen()) + return iRetval; try { //设置计数器阻抗 @@ -109,7 +112,7 @@ double errorFreq = Math.Abs(cFreq - bFreq); - if (bFreq > 80 * 1000 * 1000) + if (bFreq >= 1 * 1000 * 1000) return errorFreq < freThreshold2 ? true : false; else return errorFreq < freThreshold1 ? true : false; @@ -124,7 +127,7 @@ double errorPeriod = Math.Abs(cPeriod - bPeriod); - if (bPeriod > 12.5 / 1000 / 1000 / 1000) + if (bPeriod >= 1000 / 1000 / 1000 / 1000) return errorPeriod < periodThreshold2 ? true : false; else return errorPeriod < periodThreshold1 ? true : false; diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs index f91f2d2..8ad1a8a 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -39,7 +39,7 @@ try { _portOperatorBaseTcp.Open(); - + result = 0; } catch (Exception ex) @@ -52,6 +52,27 @@ return result; } + public bool isOpen() + { + try + { + _portOperatorBaseTcp.WriteLine("*IDN?"); + string idn = _portOperatorBaseTcp.ReadLine(); + if (idn != null || idn != "") + return true; + else + return false; + } + catch (Exception ex) + { + return false; + } + /*if (_portOperatorBaseTcp == null || !_portOperatorBaseTcp.IsPortOpen) + return false; + else + return true;*/ + } + private bool NewPortInstance(string id) { bool hasAddress = false; diff --git a/RbFreqStandMeasure/RbFreqStdMeas.cs b/RbFreqStandMeasure/RbFreqStdMeas.cs index 12c816e..e1b99b2 100644 --- a/RbFreqStandMeasure/RbFreqStdMeas.cs +++ b/RbFreqStandMeasure/RbFreqStdMeas.cs @@ -224,19 +224,7 @@ } private void SelectCounter() { - // 移除所有按钮的选中样式 - ClearAllMenuSelected(); - - // 鼠标移入效果去掉 - LeaveCounter(); - - // 重新设置所有按钮的状态 - menuSelected = new bool[] { false, false, false, true, false, false }; - - // 将新选中的按钮设置为选中 - picIconCounter.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_counter_selected", null); - labCounterText.ForeColor = menuSelectedColor; - labCounterSelected.BackColor = menuSelectedColor; + // 切换到频率计数器的界面 switchMainPanel(3); @@ -515,6 +503,19 @@ if (index != 3 && CounterCtrlForm.isDetecting) { MessageBox.Show("正在检测计数器,无法离开当前界面!"); + // 移除所有按钮的选中样式 + ClearAllMenuSelected(); + + // 鼠标移入效果去掉 + LeaveCounter(); + + // 重新设置所有按钮的状态 + menuSelected = new bool[] { false, false, false, true, false, false }; + + // 将新选中的按钮设置为选中 + picIconCounter.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_counter_selected", null); + labCounterText.ForeColor = menuSelectedColor; + labCounterSelected.BackColor = menuSelectedColor; return; } panelMain.Controls.Clear(); diff --git a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe index 5bc66ec..ecbb7e2 100644 --- a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe +++ b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe Binary files differ diff --git a/RbFreqStandMeasure/counter/CounterCtrlForm.cs b/RbFreqStandMeasure/counter/CounterCtrlForm.cs index c3d14de..36ae30d 100644 --- a/RbFreqStandMeasure/counter/CounterCtrlForm.cs +++ b/RbFreqStandMeasure/counter/CounterCtrlForm.cs @@ -536,12 +536,24 @@ private void btnStart_Click(object sender, EventArgs e) { + if (text_counterIp.Text.Equals("")) + { + MessageBox.Show("请输入频率计数器IP!"); + return; + } + if (text_signal.Text.Equals("")) + { + MessageBox.Show("请输入信号源地址!"); + return; + } + dataGridView_CounterResult.ReadOnly = true; isDetecting = true; btn_add.Enabled = false; benDelete.Enabled = false; btn_dropDetecModel.Enabled = false; string[] ids = gPIBService.getId(); + //string[] ips = tcpService.getId(); /*if (ids != null && ids.Length > 0) { @@ -564,7 +576,7 @@ } else {*/ - string[] arr = text_counterIp.Text.Split('.'); + string[] arr = text_counterIp.Text.Split('.'); if (arr.Length != 4) { MessageBox.Show("请输入正确的频率计数器IP!"); @@ -607,7 +619,6 @@ btnStart.Enabled = false; btn_dropDetecModel.Enabled = false; textBox_detecModel.ReadOnly = true; - btn_dropDetecModel.Enabled = true; SetDevTestDlg.inDetecCounterId = deviceId; string type = textBox_detecModel.Text.Equals("频率测量") ? "freq" : "period"; string typeId = type.Equals("freq") ? "1" : "2"; @@ -617,10 +628,23 @@ // 获取数据 List counterDetecInitList = counterDetecInitService.getAll(); - CounterCheckParam counterCheckParam = dictService.getCounterCheckParam(); - - gPIBService.open(gPIBService.getId()[0]); - tcpService.open("TCPIP0::"+text_counterIp.Text+"::INSTR"); + CounterCheckParam counterCheckParam = dictService.getCounterCheckParam(); + + int gpibConnection=gPIBService.open(text_signal.Text); + int tcpConnection=tcpService.open("TCPIP0::"+text_counterIp.Text+"::INSTR"); + + if (gpibConnection == -1) + { + MessageBox.Show("未连接信号源"); + changeBox(); + return; + } + else if (tcpConnection == -1) + { + MessageBox.Show("未连接计数器"); + changeBox(); + return; + } //tcpService.open(text_counterIp.Text); int index = 0; @@ -655,25 +679,30 @@ } gPIBService.close(); tcpService.close(); - - Invoke(new MethodInvoker(delegate () - { - SetDevTestDlg.inDetecCounterId = -1; - text_devName.ReadOnly = false; - btn_downCounterList.Enabled = true; - btnStart.Enabled = true; - btn_dropDetecModel.Enabled = true; - textBox_detecModel.ReadOnly = false; - })); - dataGridView_CounterResult.ReadOnly = false; - btn_add.Enabled = true; - benDelete.Enabled = true; - detected = true; - isDetecting = false; + changeBox(); }).Start(); } + private void changeBox() + { + Invoke(new MethodInvoker(delegate () + { + SetDevTestDlg.inDetecCounterId = -1; + text_devName.ReadOnly = false; + btn_downCounterList.Enabled = true; + btnStart.Enabled = true; + btn_dropDetecModel.Enabled = true; + textBox_detecModel.ReadOnly = false; + })); + + dataGridView_CounterResult.ReadOnly = false; + btn_add.Enabled = true; + benDelete.Enabled = true; + detected = true; + isDetecting = false; + } + private void dataGridView_CounterResult_CellEndEdit(object sender, DataGridViewCellEventArgs e) { int id = Convert.ToInt32(dataGridView_CounterResult.Rows[e.RowIndex].Cells[8].Value); @@ -858,5 +887,15 @@ } } + private int isConnect(string id, string ip) + { + int result = 0; + if (!gPIBService.isOpen()) + result = -1; + else if (!tcpService.isOpen()) + result = -2; + return result; + } + } } diff --git a/RbFreqStandMeasure/setting/SettingCtrlForm.Designer.cs b/RbFreqStandMeasure/setting/SettingCtrlForm.Designer.cs index e73e0df..e9bcabc 100644 --- a/RbFreqStandMeasure/setting/SettingCtrlForm.Designer.cs +++ b/RbFreqStandMeasure/setting/SettingCtrlForm.Designer.cs @@ -312,7 +312,7 @@ this.label21.Name = "label21"; this.label21.Size = new System.Drawing.Size(159, 30); this.label21.TabIndex = 9; - this.label21.Text = "周期差值>80MHz:"; + this.label21.Text = "周期差值>=1MHz:"; this.label21.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // text_cycThreshold2 @@ -349,7 +349,7 @@ this.label23.Name = "label23"; this.label23.Size = new System.Drawing.Size(155, 30); this.label23.TabIndex = 6; - this.label23.Text = "周期差值<=80MHz:"; + this.label23.Text = "周期差值<1MHz:"; this.label23.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // text_cycThreshold1 @@ -401,7 +401,7 @@ this.label17.Name = "label17"; this.label17.Size = new System.Drawing.Size(159, 30); this.label17.TabIndex = 9; - this.label17.Text = "频率差值>80MHz:"; + this.label17.Text = "频率差值>=1MHz:"; this.label17.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // text_freThreshold2 @@ -438,7 +438,7 @@ this.label19.Name = "label19"; this.label19.Size = new System.Drawing.Size(155, 30); this.label19.TabIndex = 6; - this.label19.Text = "频率差值<=80MHz:"; + this.label19.Text = "频率差值<1MHz:"; this.label19.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // text_freThreshold1