diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index 4c3f336..d16c5da 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -5,9 +5,8 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service { - interface GPIBService + public interface GPIBService { - #region GPIB /// /// 获取GPIB设备 /// @@ -21,12 +20,6 @@ int write(string content); string read(); - #endregion - - #region LAN - int openLAN(string ip); - - #endregion } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index 4c3f336..d16c5da 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -5,9 +5,8 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service { - interface GPIBService + public interface GPIBService { - #region GPIB /// /// 获取GPIB设备 /// @@ -21,12 +20,6 @@ int write(string content); string read(); - #endregion - - #region LAN - int openLAN(string ip); - - #endregion } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 89df386..37251a3 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -28,7 +28,7 @@ public int open(string id) { int result = -1; - if (NewPortInstance("GPIB",id)) + if (NewPortInstance(id)) { try { @@ -45,17 +45,14 @@ return result; } - private bool NewPortInstance(string type,string sensitivityId) + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; bool hasException = false; try { - if (type == "GPIB") - _portOperatorBase = new GPIBPortOperator(sensitivityId); - else if (type == "LAN") - _portOperatorBase = new LANPortOperator("TCPIP0::"+ sensitivityId + "::INSTR"); + _portOperatorBase = new GPIBPortOperator(sensitivityId); hasAddress = true; } @@ -119,33 +116,7 @@ return content; } - public int openLAN(string ip) - { - int result = -1; - if (NewPortInstance("LAN", ip)) - { - try - { - _portOperatorBase.Open(); - result = 0; - } - catch (Exception ex) - { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); - result = -1; - } - } - return result; - } - /* - * GPIB 频率:freq value - * 周期:pulse:period value - * output 0/1 - * - * TCPIP 频率:MEAS:freq? - * 周期:MEAS:period? - * */ } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index 4c3f336..d16c5da 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -5,9 +5,8 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service { - interface GPIBService + public interface GPIBService { - #region GPIB /// /// 获取GPIB设备 /// @@ -21,12 +20,6 @@ int write(string content); string read(); - #endregion - - #region LAN - int openLAN(string ip); - - #endregion } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 89df386..37251a3 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -28,7 +28,7 @@ public int open(string id) { int result = -1; - if (NewPortInstance("GPIB",id)) + if (NewPortInstance(id)) { try { @@ -45,17 +45,14 @@ return result; } - private bool NewPortInstance(string type,string sensitivityId) + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; bool hasException = false; try { - if (type == "GPIB") - _portOperatorBase = new GPIBPortOperator(sensitivityId); - else if (type == "LAN") - _portOperatorBase = new LANPortOperator("TCPIP0::"+ sensitivityId + "::INSTR"); + _portOperatorBase = new GPIBPortOperator(sensitivityId); hasAddress = true; } @@ -119,33 +116,7 @@ return content; } - public int openLAN(string ip) - { - int result = -1; - if (NewPortInstance("LAN", ip)) - { - try - { - _portOperatorBase.Open(); - result = 0; - } - catch (Exception ex) - { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); - result = -1; - } - } - return result; - } - /* - * GPIB 频率:freq value - * 周期:pulse:period value - * output 0/1 - * - * TCPIP 频率:MEAS:freq? - * 周期:MEAS:period? - * */ } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs new file mode 100644 index 0000000..442706b --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs @@ -0,0 +1,81 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + public class GPIB_TCPIP_OPERATIO + { + public static void output(GPIBService gPIBService) + { + gPIBService.write("OUTPUT?"); + + string outputStatus = gPIBService.read(); + + if (outputStatus == "0") + gPIBService.write("OUTPUT 1"); + } + + public static void setFreq(GPIBService gPIBService,string value) + { + gPIBService.write("FREQ " + value); + } + + public static void setPeriod(GPIBService gPIBService,string value) + { + gPIBService.write("PULSE:PERIOD " + value); + } + + public static void setVOLTage(GPIBService gPIBService, string value,string sleepTime) + { + gPIBService.write("VOLTage " + value); + + Thread.Sleep(Convert.ToInt32(sleepTime)); + } + + public static string getFreq(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:FREQ?"); + + return tcpService.read(); + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + public static string getPeriod(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:PERIOD?"); + + return tcpService.read(); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + + /* +* GPIB 频率:freq value +* 周期:pulse:period value +* output 0/1 +* 电压VOLTage 1V +* +* TCPIP 频率:MEAS:freq? +* 周期:MEAS:period? +* */ + } +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index 4c3f336..d16c5da 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -5,9 +5,8 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service { - interface GPIBService + public interface GPIBService { - #region GPIB /// /// 获取GPIB设备 /// @@ -21,12 +20,6 @@ int write(string content); string read(); - #endregion - - #region LAN - int openLAN(string ip); - - #endregion } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 89df386..37251a3 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -28,7 +28,7 @@ public int open(string id) { int result = -1; - if (NewPortInstance("GPIB",id)) + if (NewPortInstance(id)) { try { @@ -45,17 +45,14 @@ return result; } - private bool NewPortInstance(string type,string sensitivityId) + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; bool hasException = false; try { - if (type == "GPIB") - _portOperatorBase = new GPIBPortOperator(sensitivityId); - else if (type == "LAN") - _portOperatorBase = new LANPortOperator("TCPIP0::"+ sensitivityId + "::INSTR"); + _portOperatorBase = new GPIBPortOperator(sensitivityId); hasAddress = true; } @@ -119,33 +116,7 @@ return content; } - public int openLAN(string ip) - { - int result = -1; - if (NewPortInstance("LAN", ip)) - { - try - { - _portOperatorBase.Open(); - result = 0; - } - catch (Exception ex) - { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); - result = -1; - } - } - return result; - } - /* - * GPIB 频率:freq value - * 周期:pulse:period value - * output 0/1 - * - * TCPIP 频率:MEAS:freq? - * 周期:MEAS:period? - * */ } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs new file mode 100644 index 0000000..442706b --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs @@ -0,0 +1,81 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + public class GPIB_TCPIP_OPERATIO + { + public static void output(GPIBService gPIBService) + { + gPIBService.write("OUTPUT?"); + + string outputStatus = gPIBService.read(); + + if (outputStatus == "0") + gPIBService.write("OUTPUT 1"); + } + + public static void setFreq(GPIBService gPIBService,string value) + { + gPIBService.write("FREQ " + value); + } + + public static void setPeriod(GPIBService gPIBService,string value) + { + gPIBService.write("PULSE:PERIOD " + value); + } + + public static void setVOLTage(GPIBService gPIBService, string value,string sleepTime) + { + gPIBService.write("VOLTage " + value); + + Thread.Sleep(Convert.ToInt32(sleepTime)); + } + + public static string getFreq(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:FREQ?"); + + return tcpService.read(); + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + public static string getPeriod(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:PERIOD?"); + + return tcpService.read(); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + + /* +* GPIB 频率:freq value +* 周期:pulse:period value +* output 0/1 +* 电压VOLTage 1V +* +* TCPIP 频率:MEAS:freq? +* 周期:MEAS:period? +* */ + } +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index bceec15..e66c214 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -1,60 +1,100 @@ using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model; using Casic.Birmm.RbFreqStandMeasure.R_DevService.Dto; using Casic.Birmm.RbFreqStandMeasure.Tools; -using Casic.Birmm.RbFreqStandMeasure.VISA.Port; -using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; using System; -using System.Collections.Generic; -using System.Linq; using System.Reflection; -using System.Text; namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl { class SensitivityServiceImpl:SensitivityService { - public void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam) + public void beginTest(string type, GPIBService gPIBService, GPIBService tcpService, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam) { sensitivityContentParam = new SensitivityContentParam(); try { //启动output(一次)OUTPUT 0\OUTPUT 1 - gPIBService.write("OUTPUT?"); + GPIB_TCPIP_OPERATIO.output(gPIBService); - string outputStatus = gPIBService.read(); - - if (outputStatus == "0") - gPIBService.write("OUTPUT 1"); - - //设置周期/频率、电压GPIB - gPIBService.write("FREQ " + freq); + //设置周期/频率、电压GPIB + if (type == "freq") + GPIB_TCPIP_OPERATIO.setFreq(gPIBService, sensitivityContentParam.Freq); + else if (type == "period") + GPIB_TCPIP_OPERATIO.setPeriod(gPIBService, sensitivityContentParam.Period); bool lessTolerance = false; + string currentVolTage = "0"; while (!lessTolerance) { + //获取当前灵敏度 + currentVolTage = getVOLTageValue(counterCheckParam, currentVolTage); + //设置当前灵敏度 + GPIB_TCPIP_OPERATIO.setVOLTage(gPIBService, currentVolTage, counterCheckParam.SoOutDelay); + string checkResult = ""; //主动读取检测数据LAN - + if (type == "freq") + checkResult = GPIB_TCPIP_OPERATIO.getFreq(tcpService); + else if (type == "period") + checkResult = GPIB_TCPIP_OPERATIO.getPeriod(tcpService); //检测数据是否在容差范围内 + + //返回满足容差的数据 lessTolerance = true; } - + } - catch(Exception ex) + catch (Exception ex) { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:"+ex.Message); + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:" + ex.Message); sensitivityContentParam = null; } } + string getVOLTageValue(CounterCheckParam counterCheckParam,string currentValue) + { + if (currentValue == "0") + return counterCheckParam.SoEleFrequency; + else + return (Convert.ToInt32(currentValue) + Convert.ToInt32(counterCheckParam.SoEleAddValue)).ToString(); + } + + bool satisfyCheck(CounterCheckParam counterCheckParams, SensitivityContentParam sensitivityContentParam, + string currentValue,string checkType) + { + bool satisfyResult = false; + try + { + if (checkType == "freq") + { + + + } + else if (checkType == "period") + { + + } + + satisfyResult = true; + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType,"statisfyCheck:"+ex.Message); + satisfyResult = false; + } + return satisfyResult; + } + + /** * - * GPIBService gPIBService=new GPIBService(); + * GPIBService gPIBService=new GPIBServiceImpl(); + * GPIBService tcpService=new TCPServiceImpl(); * gPIBService.open(); * for(datagridview.row) * { @@ -63,7 +103,4 @@ * gPIBService.close(); * */ } -} - - - \ No newline at end of file +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index 4c3f336..d16c5da 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -5,9 +5,8 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service { - interface GPIBService + public interface GPIBService { - #region GPIB /// /// 获取GPIB设备 /// @@ -21,12 +20,6 @@ int write(string content); string read(); - #endregion - - #region LAN - int openLAN(string ip); - - #endregion } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 89df386..37251a3 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -28,7 +28,7 @@ public int open(string id) { int result = -1; - if (NewPortInstance("GPIB",id)) + if (NewPortInstance(id)) { try { @@ -45,17 +45,14 @@ return result; } - private bool NewPortInstance(string type,string sensitivityId) + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; bool hasException = false; try { - if (type == "GPIB") - _portOperatorBase = new GPIBPortOperator(sensitivityId); - else if (type == "LAN") - _portOperatorBase = new LANPortOperator("TCPIP0::"+ sensitivityId + "::INSTR"); + _portOperatorBase = new GPIBPortOperator(sensitivityId); hasAddress = true; } @@ -119,33 +116,7 @@ return content; } - public int openLAN(string ip) - { - int result = -1; - if (NewPortInstance("LAN", ip)) - { - try - { - _portOperatorBase.Open(); - result = 0; - } - catch (Exception ex) - { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); - result = -1; - } - } - return result; - } - /* - * GPIB 频率:freq value - * 周期:pulse:period value - * output 0/1 - * - * TCPIP 频率:MEAS:freq? - * 周期:MEAS:period? - * */ } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs new file mode 100644 index 0000000..442706b --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs @@ -0,0 +1,81 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + public class GPIB_TCPIP_OPERATIO + { + public static void output(GPIBService gPIBService) + { + gPIBService.write("OUTPUT?"); + + string outputStatus = gPIBService.read(); + + if (outputStatus == "0") + gPIBService.write("OUTPUT 1"); + } + + public static void setFreq(GPIBService gPIBService,string value) + { + gPIBService.write("FREQ " + value); + } + + public static void setPeriod(GPIBService gPIBService,string value) + { + gPIBService.write("PULSE:PERIOD " + value); + } + + public static void setVOLTage(GPIBService gPIBService, string value,string sleepTime) + { + gPIBService.write("VOLTage " + value); + + Thread.Sleep(Convert.ToInt32(sleepTime)); + } + + public static string getFreq(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:FREQ?"); + + return tcpService.read(); + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + public static string getPeriod(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:PERIOD?"); + + return tcpService.read(); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + + /* +* GPIB 频率:freq value +* 周期:pulse:period value +* output 0/1 +* 电压VOLTage 1V +* +* TCPIP 频率:MEAS:freq? +* 周期:MEAS:period? +* */ + } +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index bceec15..e66c214 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -1,60 +1,100 @@ using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model; using Casic.Birmm.RbFreqStandMeasure.R_DevService.Dto; using Casic.Birmm.RbFreqStandMeasure.Tools; -using Casic.Birmm.RbFreqStandMeasure.VISA.Port; -using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; using System; -using System.Collections.Generic; -using System.Linq; using System.Reflection; -using System.Text; namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl { class SensitivityServiceImpl:SensitivityService { - public void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam) + public void beginTest(string type, GPIBService gPIBService, GPIBService tcpService, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam) { sensitivityContentParam = new SensitivityContentParam(); try { //启动output(一次)OUTPUT 0\OUTPUT 1 - gPIBService.write("OUTPUT?"); + GPIB_TCPIP_OPERATIO.output(gPIBService); - string outputStatus = gPIBService.read(); - - if (outputStatus == "0") - gPIBService.write("OUTPUT 1"); - - //设置周期/频率、电压GPIB - gPIBService.write("FREQ " + freq); + //设置周期/频率、电压GPIB + if (type == "freq") + GPIB_TCPIP_OPERATIO.setFreq(gPIBService, sensitivityContentParam.Freq); + else if (type == "period") + GPIB_TCPIP_OPERATIO.setPeriod(gPIBService, sensitivityContentParam.Period); bool lessTolerance = false; + string currentVolTage = "0"; while (!lessTolerance) { + //获取当前灵敏度 + currentVolTage = getVOLTageValue(counterCheckParam, currentVolTage); + //设置当前灵敏度 + GPIB_TCPIP_OPERATIO.setVOLTage(gPIBService, currentVolTage, counterCheckParam.SoOutDelay); + string checkResult = ""; //主动读取检测数据LAN - + if (type == "freq") + checkResult = GPIB_TCPIP_OPERATIO.getFreq(tcpService); + else if (type == "period") + checkResult = GPIB_TCPIP_OPERATIO.getPeriod(tcpService); //检测数据是否在容差范围内 + + //返回满足容差的数据 lessTolerance = true; } - + } - catch(Exception ex) + catch (Exception ex) { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:"+ex.Message); + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:" + ex.Message); sensitivityContentParam = null; } } + string getVOLTageValue(CounterCheckParam counterCheckParam,string currentValue) + { + if (currentValue == "0") + return counterCheckParam.SoEleFrequency; + else + return (Convert.ToInt32(currentValue) + Convert.ToInt32(counterCheckParam.SoEleAddValue)).ToString(); + } + + bool satisfyCheck(CounterCheckParam counterCheckParams, SensitivityContentParam sensitivityContentParam, + string currentValue,string checkType) + { + bool satisfyResult = false; + try + { + if (checkType == "freq") + { + + + } + else if (checkType == "period") + { + + } + + satisfyResult = true; + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType,"statisfyCheck:"+ex.Message); + satisfyResult = false; + } + return satisfyResult; + } + + /** * - * GPIBService gPIBService=new GPIBService(); + * GPIBService gPIBService=new GPIBServiceImpl(); + * GPIBService tcpService=new TCPServiceImpl(); * gPIBService.open(); * for(datagridview.row) * { @@ -63,7 +103,4 @@ * gPIBService.close(); * */ } -} - - - \ No newline at end of file +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs new file mode 100644 index 0000000..7406c32 --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -0,0 +1,123 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using Casic.Birmm.RbFreqStandMeasure.VISA.Port; +using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + class TCPServiceImpl:GPIBService + { + public string[] getId() + { + string[] counterId; + try + { + counterId = PortUltility.FindAddresses(PortType.LAN); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + counterId = null; + } + return counterId; + } + + + private PortOperatorBase _portOperatorBase; + public int open(string ip) + { + int result = -1; + if (NewPortInstance(ip)) + { + try + { + _portOperatorBase.Open(); + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); + result = -1; + } + } + + return result; + } + + private bool NewPortInstance(string id) + { + bool hasAddress = false; + bool hasException = false; + + try + { + _portOperatorBase = new LANPortOperator(id);//TCPIP0::192.168.0.134::inst0::INSTR//"TCPIP0::" + sensitivityId + "::INSTR" + + hasAddress = true; + } + catch (Exception ex) + { + hasException = true; + } + + if (!hasException) _portOperatorBase.Timeout = 2000; + return hasAddress; + } + + public int close() + { + int result = -1; + try + { + _portOperatorBase.Close(); + + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + result = -1; + } + + return result; + } + + public int write(string content) + { + int result = -1; + try + { + _portOperatorBase.WriteLine(content); + + result = 0; + } + catch (Exception ex) + { + + result = -1; + } + return result; + } + + public string read() + { + string content = ""; + try + { + content = _portOperatorBase.ReadLine(); + + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + content = ""; + } + return content; + } + + } +} diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index 4c3f336..d16c5da 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -5,9 +5,8 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service { - interface GPIBService + public interface GPIBService { - #region GPIB /// /// 获取GPIB设备 /// @@ -21,12 +20,6 @@ int write(string content); string read(); - #endregion - - #region LAN - int openLAN(string ip); - - #endregion } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 89df386..37251a3 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -28,7 +28,7 @@ public int open(string id) { int result = -1; - if (NewPortInstance("GPIB",id)) + if (NewPortInstance(id)) { try { @@ -45,17 +45,14 @@ return result; } - private bool NewPortInstance(string type,string sensitivityId) + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; bool hasException = false; try { - if (type == "GPIB") - _portOperatorBase = new GPIBPortOperator(sensitivityId); - else if (type == "LAN") - _portOperatorBase = new LANPortOperator("TCPIP0::"+ sensitivityId + "::INSTR"); + _portOperatorBase = new GPIBPortOperator(sensitivityId); hasAddress = true; } @@ -119,33 +116,7 @@ return content; } - public int openLAN(string ip) - { - int result = -1; - if (NewPortInstance("LAN", ip)) - { - try - { - _portOperatorBase.Open(); - result = 0; - } - catch (Exception ex) - { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); - result = -1; - } - } - return result; - } - /* - * GPIB 频率:freq value - * 周期:pulse:period value - * output 0/1 - * - * TCPIP 频率:MEAS:freq? - * 周期:MEAS:period? - * */ } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs new file mode 100644 index 0000000..442706b --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs @@ -0,0 +1,81 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + public class GPIB_TCPIP_OPERATIO + { + public static void output(GPIBService gPIBService) + { + gPIBService.write("OUTPUT?"); + + string outputStatus = gPIBService.read(); + + if (outputStatus == "0") + gPIBService.write("OUTPUT 1"); + } + + public static void setFreq(GPIBService gPIBService,string value) + { + gPIBService.write("FREQ " + value); + } + + public static void setPeriod(GPIBService gPIBService,string value) + { + gPIBService.write("PULSE:PERIOD " + value); + } + + public static void setVOLTage(GPIBService gPIBService, string value,string sleepTime) + { + gPIBService.write("VOLTage " + value); + + Thread.Sleep(Convert.ToInt32(sleepTime)); + } + + public static string getFreq(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:FREQ?"); + + return tcpService.read(); + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + public static string getPeriod(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:PERIOD?"); + + return tcpService.read(); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + + /* +* GPIB 频率:freq value +* 周期:pulse:period value +* output 0/1 +* 电压VOLTage 1V +* +* TCPIP 频率:MEAS:freq? +* 周期:MEAS:period? +* */ + } +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index bceec15..e66c214 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -1,60 +1,100 @@ using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model; using Casic.Birmm.RbFreqStandMeasure.R_DevService.Dto; using Casic.Birmm.RbFreqStandMeasure.Tools; -using Casic.Birmm.RbFreqStandMeasure.VISA.Port; -using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; using System; -using System.Collections.Generic; -using System.Linq; using System.Reflection; -using System.Text; namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl { class SensitivityServiceImpl:SensitivityService { - public void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam) + public void beginTest(string type, GPIBService gPIBService, GPIBService tcpService, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam) { sensitivityContentParam = new SensitivityContentParam(); try { //启动output(一次)OUTPUT 0\OUTPUT 1 - gPIBService.write("OUTPUT?"); + GPIB_TCPIP_OPERATIO.output(gPIBService); - string outputStatus = gPIBService.read(); - - if (outputStatus == "0") - gPIBService.write("OUTPUT 1"); - - //设置周期/频率、电压GPIB - gPIBService.write("FREQ " + freq); + //设置周期/频率、电压GPIB + if (type == "freq") + GPIB_TCPIP_OPERATIO.setFreq(gPIBService, sensitivityContentParam.Freq); + else if (type == "period") + GPIB_TCPIP_OPERATIO.setPeriod(gPIBService, sensitivityContentParam.Period); bool lessTolerance = false; + string currentVolTage = "0"; while (!lessTolerance) { + //获取当前灵敏度 + currentVolTage = getVOLTageValue(counterCheckParam, currentVolTage); + //设置当前灵敏度 + GPIB_TCPIP_OPERATIO.setVOLTage(gPIBService, currentVolTage, counterCheckParam.SoOutDelay); + string checkResult = ""; //主动读取检测数据LAN - + if (type == "freq") + checkResult = GPIB_TCPIP_OPERATIO.getFreq(tcpService); + else if (type == "period") + checkResult = GPIB_TCPIP_OPERATIO.getPeriod(tcpService); //检测数据是否在容差范围内 + + //返回满足容差的数据 lessTolerance = true; } - + } - catch(Exception ex) + catch (Exception ex) { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:"+ex.Message); + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:" + ex.Message); sensitivityContentParam = null; } } + string getVOLTageValue(CounterCheckParam counterCheckParam,string currentValue) + { + if (currentValue == "0") + return counterCheckParam.SoEleFrequency; + else + return (Convert.ToInt32(currentValue) + Convert.ToInt32(counterCheckParam.SoEleAddValue)).ToString(); + } + + bool satisfyCheck(CounterCheckParam counterCheckParams, SensitivityContentParam sensitivityContentParam, + string currentValue,string checkType) + { + bool satisfyResult = false; + try + { + if (checkType == "freq") + { + + + } + else if (checkType == "period") + { + + } + + satisfyResult = true; + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType,"statisfyCheck:"+ex.Message); + satisfyResult = false; + } + return satisfyResult; + } + + /** * - * GPIBService gPIBService=new GPIBService(); + * GPIBService gPIBService=new GPIBServiceImpl(); + * GPIBService tcpService=new TCPServiceImpl(); * gPIBService.open(); * for(datagridview.row) * { @@ -63,7 +103,4 @@ * gPIBService.close(); * */ } -} - - - \ No newline at end of file +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs new file mode 100644 index 0000000..7406c32 --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -0,0 +1,123 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using Casic.Birmm.RbFreqStandMeasure.VISA.Port; +using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + class TCPServiceImpl:GPIBService + { + public string[] getId() + { + string[] counterId; + try + { + counterId = PortUltility.FindAddresses(PortType.LAN); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + counterId = null; + } + return counterId; + } + + + private PortOperatorBase _portOperatorBase; + public int open(string ip) + { + int result = -1; + if (NewPortInstance(ip)) + { + try + { + _portOperatorBase.Open(); + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); + result = -1; + } + } + + return result; + } + + private bool NewPortInstance(string id) + { + bool hasAddress = false; + bool hasException = false; + + try + { + _portOperatorBase = new LANPortOperator(id);//TCPIP0::192.168.0.134::inst0::INSTR//"TCPIP0::" + sensitivityId + "::INSTR" + + hasAddress = true; + } + catch (Exception ex) + { + hasException = true; + } + + if (!hasException) _portOperatorBase.Timeout = 2000; + return hasAddress; + } + + public int close() + { + int result = -1; + try + { + _portOperatorBase.Close(); + + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + result = -1; + } + + return result; + } + + public int write(string content) + { + int result = -1; + try + { + _portOperatorBase.WriteLine(content); + + result = 0; + } + catch (Exception ex) + { + + result = -1; + } + return result; + } + + public string read() + { + string content = ""; + try + { + content = _portOperatorBase.ReadLine(); + + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + content = ""; + } + return content; + } + + } +} diff --git a/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs b/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs index 9eb0d13..adc64db 100644 --- a/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs @@ -10,8 +10,8 @@ interface SensitivityService { //单行检测 - void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam); + void beginTest(string type,GPIBService gPIBService,GPIBService tcpService,string freq, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam); } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index 4c3f336..d16c5da 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -5,9 +5,8 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service { - interface GPIBService + public interface GPIBService { - #region GPIB /// /// 获取GPIB设备 /// @@ -21,12 +20,6 @@ int write(string content); string read(); - #endregion - - #region LAN - int openLAN(string ip); - - #endregion } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 89df386..37251a3 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -28,7 +28,7 @@ public int open(string id) { int result = -1; - if (NewPortInstance("GPIB",id)) + if (NewPortInstance(id)) { try { @@ -45,17 +45,14 @@ return result; } - private bool NewPortInstance(string type,string sensitivityId) + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; bool hasException = false; try { - if (type == "GPIB") - _portOperatorBase = new GPIBPortOperator(sensitivityId); - else if (type == "LAN") - _portOperatorBase = new LANPortOperator("TCPIP0::"+ sensitivityId + "::INSTR"); + _portOperatorBase = new GPIBPortOperator(sensitivityId); hasAddress = true; } @@ -119,33 +116,7 @@ return content; } - public int openLAN(string ip) - { - int result = -1; - if (NewPortInstance("LAN", ip)) - { - try - { - _portOperatorBase.Open(); - result = 0; - } - catch (Exception ex) - { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); - result = -1; - } - } - return result; - } - /* - * GPIB 频率:freq value - * 周期:pulse:period value - * output 0/1 - * - * TCPIP 频率:MEAS:freq? - * 周期:MEAS:period? - * */ } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs new file mode 100644 index 0000000..442706b --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs @@ -0,0 +1,81 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + public class GPIB_TCPIP_OPERATIO + { + public static void output(GPIBService gPIBService) + { + gPIBService.write("OUTPUT?"); + + string outputStatus = gPIBService.read(); + + if (outputStatus == "0") + gPIBService.write("OUTPUT 1"); + } + + public static void setFreq(GPIBService gPIBService,string value) + { + gPIBService.write("FREQ " + value); + } + + public static void setPeriod(GPIBService gPIBService,string value) + { + gPIBService.write("PULSE:PERIOD " + value); + } + + public static void setVOLTage(GPIBService gPIBService, string value,string sleepTime) + { + gPIBService.write("VOLTage " + value); + + Thread.Sleep(Convert.ToInt32(sleepTime)); + } + + public static string getFreq(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:FREQ?"); + + return tcpService.read(); + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + public static string getPeriod(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:PERIOD?"); + + return tcpService.read(); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + + /* +* GPIB 频率:freq value +* 周期:pulse:period value +* output 0/1 +* 电压VOLTage 1V +* +* TCPIP 频率:MEAS:freq? +* 周期:MEAS:period? +* */ + } +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index bceec15..e66c214 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -1,60 +1,100 @@ using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model; using Casic.Birmm.RbFreqStandMeasure.R_DevService.Dto; using Casic.Birmm.RbFreqStandMeasure.Tools; -using Casic.Birmm.RbFreqStandMeasure.VISA.Port; -using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; using System; -using System.Collections.Generic; -using System.Linq; using System.Reflection; -using System.Text; namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl { class SensitivityServiceImpl:SensitivityService { - public void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam) + public void beginTest(string type, GPIBService gPIBService, GPIBService tcpService, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam) { sensitivityContentParam = new SensitivityContentParam(); try { //启动output(一次)OUTPUT 0\OUTPUT 1 - gPIBService.write("OUTPUT?"); + GPIB_TCPIP_OPERATIO.output(gPIBService); - string outputStatus = gPIBService.read(); - - if (outputStatus == "0") - gPIBService.write("OUTPUT 1"); - - //设置周期/频率、电压GPIB - gPIBService.write("FREQ " + freq); + //设置周期/频率、电压GPIB + if (type == "freq") + GPIB_TCPIP_OPERATIO.setFreq(gPIBService, sensitivityContentParam.Freq); + else if (type == "period") + GPIB_TCPIP_OPERATIO.setPeriod(gPIBService, sensitivityContentParam.Period); bool lessTolerance = false; + string currentVolTage = "0"; while (!lessTolerance) { + //获取当前灵敏度 + currentVolTage = getVOLTageValue(counterCheckParam, currentVolTage); + //设置当前灵敏度 + GPIB_TCPIP_OPERATIO.setVOLTage(gPIBService, currentVolTage, counterCheckParam.SoOutDelay); + string checkResult = ""; //主动读取检测数据LAN - + if (type == "freq") + checkResult = GPIB_TCPIP_OPERATIO.getFreq(tcpService); + else if (type == "period") + checkResult = GPIB_TCPIP_OPERATIO.getPeriod(tcpService); //检测数据是否在容差范围内 + + //返回满足容差的数据 lessTolerance = true; } - + } - catch(Exception ex) + catch (Exception ex) { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:"+ex.Message); + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:" + ex.Message); sensitivityContentParam = null; } } + string getVOLTageValue(CounterCheckParam counterCheckParam,string currentValue) + { + if (currentValue == "0") + return counterCheckParam.SoEleFrequency; + else + return (Convert.ToInt32(currentValue) + Convert.ToInt32(counterCheckParam.SoEleAddValue)).ToString(); + } + + bool satisfyCheck(CounterCheckParam counterCheckParams, SensitivityContentParam sensitivityContentParam, + string currentValue,string checkType) + { + bool satisfyResult = false; + try + { + if (checkType == "freq") + { + + + } + else if (checkType == "period") + { + + } + + satisfyResult = true; + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType,"statisfyCheck:"+ex.Message); + satisfyResult = false; + } + return satisfyResult; + } + + /** * - * GPIBService gPIBService=new GPIBService(); + * GPIBService gPIBService=new GPIBServiceImpl(); + * GPIBService tcpService=new TCPServiceImpl(); * gPIBService.open(); * for(datagridview.row) * { @@ -63,7 +103,4 @@ * gPIBService.close(); * */ } -} - - - \ No newline at end of file +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs new file mode 100644 index 0000000..7406c32 --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -0,0 +1,123 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using Casic.Birmm.RbFreqStandMeasure.VISA.Port; +using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + class TCPServiceImpl:GPIBService + { + public string[] getId() + { + string[] counterId; + try + { + counterId = PortUltility.FindAddresses(PortType.LAN); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + counterId = null; + } + return counterId; + } + + + private PortOperatorBase _portOperatorBase; + public int open(string ip) + { + int result = -1; + if (NewPortInstance(ip)) + { + try + { + _portOperatorBase.Open(); + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); + result = -1; + } + } + + return result; + } + + private bool NewPortInstance(string id) + { + bool hasAddress = false; + bool hasException = false; + + try + { + _portOperatorBase = new LANPortOperator(id);//TCPIP0::192.168.0.134::inst0::INSTR//"TCPIP0::" + sensitivityId + "::INSTR" + + hasAddress = true; + } + catch (Exception ex) + { + hasException = true; + } + + if (!hasException) _portOperatorBase.Timeout = 2000; + return hasAddress; + } + + public int close() + { + int result = -1; + try + { + _portOperatorBase.Close(); + + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + result = -1; + } + + return result; + } + + public int write(string content) + { + int result = -1; + try + { + _portOperatorBase.WriteLine(content); + + result = 0; + } + catch (Exception ex) + { + + result = -1; + } + return result; + } + + public string read() + { + string content = ""; + try + { + content = _portOperatorBase.ReadLine(); + + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + content = ""; + } + return content; + } + + } +} diff --git a/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs b/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs index 9eb0d13..adc64db 100644 --- a/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs @@ -10,8 +10,8 @@ interface SensitivityService { //单行检测 - void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam); + void beginTest(string type,GPIBService gPIBService,GPIBService tcpService,string freq, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam); } } \ No newline at end of file diff --git a/RbFreqStandMeasure/RbFreqStandMeasure.csproj b/RbFreqStandMeasure/RbFreqStandMeasure.csproj index 67682c6..0d2d8a3 100644 --- a/RbFreqStandMeasure/RbFreqStandMeasure.csproj +++ b/RbFreqStandMeasure/RbFreqStandMeasure.csproj @@ -313,9 +313,13 @@ + + + + UserControl diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index 4c3f336..d16c5da 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -5,9 +5,8 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service { - interface GPIBService + public interface GPIBService { - #region GPIB /// /// 获取GPIB设备 /// @@ -21,12 +20,6 @@ int write(string content); string read(); - #endregion - - #region LAN - int openLAN(string ip); - - #endregion } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 89df386..37251a3 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -28,7 +28,7 @@ public int open(string id) { int result = -1; - if (NewPortInstance("GPIB",id)) + if (NewPortInstance(id)) { try { @@ -45,17 +45,14 @@ return result; } - private bool NewPortInstance(string type,string sensitivityId) + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; bool hasException = false; try { - if (type == "GPIB") - _portOperatorBase = new GPIBPortOperator(sensitivityId); - else if (type == "LAN") - _portOperatorBase = new LANPortOperator("TCPIP0::"+ sensitivityId + "::INSTR"); + _portOperatorBase = new GPIBPortOperator(sensitivityId); hasAddress = true; } @@ -119,33 +116,7 @@ return content; } - public int openLAN(string ip) - { - int result = -1; - if (NewPortInstance("LAN", ip)) - { - try - { - _portOperatorBase.Open(); - result = 0; - } - catch (Exception ex) - { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); - result = -1; - } - } - return result; - } - /* - * GPIB 频率:freq value - * 周期:pulse:period value - * output 0/1 - * - * TCPIP 频率:MEAS:freq? - * 周期:MEAS:period? - * */ } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs new file mode 100644 index 0000000..442706b --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs @@ -0,0 +1,81 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + public class GPIB_TCPIP_OPERATIO + { + public static void output(GPIBService gPIBService) + { + gPIBService.write("OUTPUT?"); + + string outputStatus = gPIBService.read(); + + if (outputStatus == "0") + gPIBService.write("OUTPUT 1"); + } + + public static void setFreq(GPIBService gPIBService,string value) + { + gPIBService.write("FREQ " + value); + } + + public static void setPeriod(GPIBService gPIBService,string value) + { + gPIBService.write("PULSE:PERIOD " + value); + } + + public static void setVOLTage(GPIBService gPIBService, string value,string sleepTime) + { + gPIBService.write("VOLTage " + value); + + Thread.Sleep(Convert.ToInt32(sleepTime)); + } + + public static string getFreq(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:FREQ?"); + + return tcpService.read(); + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + public static string getPeriod(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:PERIOD?"); + + return tcpService.read(); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + + /* +* GPIB 频率:freq value +* 周期:pulse:period value +* output 0/1 +* 电压VOLTage 1V +* +* TCPIP 频率:MEAS:freq? +* 周期:MEAS:period? +* */ + } +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index bceec15..e66c214 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -1,60 +1,100 @@ using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model; using Casic.Birmm.RbFreqStandMeasure.R_DevService.Dto; using Casic.Birmm.RbFreqStandMeasure.Tools; -using Casic.Birmm.RbFreqStandMeasure.VISA.Port; -using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; using System; -using System.Collections.Generic; -using System.Linq; using System.Reflection; -using System.Text; namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl { class SensitivityServiceImpl:SensitivityService { - public void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam) + public void beginTest(string type, GPIBService gPIBService, GPIBService tcpService, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam) { sensitivityContentParam = new SensitivityContentParam(); try { //启动output(一次)OUTPUT 0\OUTPUT 1 - gPIBService.write("OUTPUT?"); + GPIB_TCPIP_OPERATIO.output(gPIBService); - string outputStatus = gPIBService.read(); - - if (outputStatus == "0") - gPIBService.write("OUTPUT 1"); - - //设置周期/频率、电压GPIB - gPIBService.write("FREQ " + freq); + //设置周期/频率、电压GPIB + if (type == "freq") + GPIB_TCPIP_OPERATIO.setFreq(gPIBService, sensitivityContentParam.Freq); + else if (type == "period") + GPIB_TCPIP_OPERATIO.setPeriod(gPIBService, sensitivityContentParam.Period); bool lessTolerance = false; + string currentVolTage = "0"; while (!lessTolerance) { + //获取当前灵敏度 + currentVolTage = getVOLTageValue(counterCheckParam, currentVolTage); + //设置当前灵敏度 + GPIB_TCPIP_OPERATIO.setVOLTage(gPIBService, currentVolTage, counterCheckParam.SoOutDelay); + string checkResult = ""; //主动读取检测数据LAN - + if (type == "freq") + checkResult = GPIB_TCPIP_OPERATIO.getFreq(tcpService); + else if (type == "period") + checkResult = GPIB_TCPIP_OPERATIO.getPeriod(tcpService); //检测数据是否在容差范围内 + + //返回满足容差的数据 lessTolerance = true; } - + } - catch(Exception ex) + catch (Exception ex) { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:"+ex.Message); + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:" + ex.Message); sensitivityContentParam = null; } } + string getVOLTageValue(CounterCheckParam counterCheckParam,string currentValue) + { + if (currentValue == "0") + return counterCheckParam.SoEleFrequency; + else + return (Convert.ToInt32(currentValue) + Convert.ToInt32(counterCheckParam.SoEleAddValue)).ToString(); + } + + bool satisfyCheck(CounterCheckParam counterCheckParams, SensitivityContentParam sensitivityContentParam, + string currentValue,string checkType) + { + bool satisfyResult = false; + try + { + if (checkType == "freq") + { + + + } + else if (checkType == "period") + { + + } + + satisfyResult = true; + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType,"statisfyCheck:"+ex.Message); + satisfyResult = false; + } + return satisfyResult; + } + + /** * - * GPIBService gPIBService=new GPIBService(); + * GPIBService gPIBService=new GPIBServiceImpl(); + * GPIBService tcpService=new TCPServiceImpl(); * gPIBService.open(); * for(datagridview.row) * { @@ -63,7 +103,4 @@ * gPIBService.close(); * */ } -} - - - \ No newline at end of file +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs new file mode 100644 index 0000000..7406c32 --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -0,0 +1,123 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using Casic.Birmm.RbFreqStandMeasure.VISA.Port; +using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + class TCPServiceImpl:GPIBService + { + public string[] getId() + { + string[] counterId; + try + { + counterId = PortUltility.FindAddresses(PortType.LAN); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + counterId = null; + } + return counterId; + } + + + private PortOperatorBase _portOperatorBase; + public int open(string ip) + { + int result = -1; + if (NewPortInstance(ip)) + { + try + { + _portOperatorBase.Open(); + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); + result = -1; + } + } + + return result; + } + + private bool NewPortInstance(string id) + { + bool hasAddress = false; + bool hasException = false; + + try + { + _portOperatorBase = new LANPortOperator(id);//TCPIP0::192.168.0.134::inst0::INSTR//"TCPIP0::" + sensitivityId + "::INSTR" + + hasAddress = true; + } + catch (Exception ex) + { + hasException = true; + } + + if (!hasException) _portOperatorBase.Timeout = 2000; + return hasAddress; + } + + public int close() + { + int result = -1; + try + { + _portOperatorBase.Close(); + + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + result = -1; + } + + return result; + } + + public int write(string content) + { + int result = -1; + try + { + _portOperatorBase.WriteLine(content); + + result = 0; + } + catch (Exception ex) + { + + result = -1; + } + return result; + } + + public string read() + { + string content = ""; + try + { + content = _portOperatorBase.ReadLine(); + + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + content = ""; + } + return content; + } + + } +} diff --git a/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs b/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs index 9eb0d13..adc64db 100644 --- a/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs @@ -10,8 +10,8 @@ interface SensitivityService { //单行检测 - void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam); + void beginTest(string type,GPIBService gPIBService,GPIBService tcpService,string freq, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam); } } \ No newline at end of file diff --git a/RbFreqStandMeasure/RbFreqStandMeasure.csproj b/RbFreqStandMeasure/RbFreqStandMeasure.csproj index 67682c6..0d2d8a3 100644 --- a/RbFreqStandMeasure/RbFreqStandMeasure.csproj +++ b/RbFreqStandMeasure/RbFreqStandMeasure.csproj @@ -313,9 +313,13 @@ + + + + UserControl diff --git a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe index e879a62..5d4acd6 100644 --- a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe +++ b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe Binary files differ diff --git a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs index a4d0c95..71038a1 100644 --- a/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs +++ b/RbFreqStandMeasure/R_DataBase/Model/CounterCheckParam.cs @@ -5,9 +5,7 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model { - /// - /// 字典 - /// + public class CounterCheckParam { private long id; @@ -15,9 +13,11 @@ private string soEleFrequency; private string soEleAddValue; private string soEleAlarm; + private string freThreshold1; private string freThreshold2; private string freEleAddValue; + private string cycThreshold1; private string cycThreshold2; private string cycEleAddValue; diff --git a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs index beefbcc..d8e2187 100644 --- a/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs +++ b/RbFreqStandMeasure/R_DevService/Dto/SensitivityContentParam.cs @@ -9,6 +9,7 @@ { //当前测量模式0,频率;1周期 private string checkModel; + //当前频率 private string freq; diff --git a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs index 4c3f336..d16c5da 100644 --- a/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/GPIBService.cs @@ -5,9 +5,8 @@ namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service { - interface GPIBService + public interface GPIBService { - #region GPIB /// /// 获取GPIB设备 /// @@ -21,12 +20,6 @@ int write(string content); string read(); - #endregion - - #region LAN - int openLAN(string ip); - - #endregion } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs index 89df386..37251a3 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIBServiceImpl.cs @@ -28,7 +28,7 @@ public int open(string id) { int result = -1; - if (NewPortInstance("GPIB",id)) + if (NewPortInstance(id)) { try { @@ -45,17 +45,14 @@ return result; } - private bool NewPortInstance(string type,string sensitivityId) + private bool NewPortInstance(string sensitivityId) { bool hasAddress = false; bool hasException = false; try { - if (type == "GPIB") - _portOperatorBase = new GPIBPortOperator(sensitivityId); - else if (type == "LAN") - _portOperatorBase = new LANPortOperator("TCPIP0::"+ sensitivityId + "::INSTR"); + _portOperatorBase = new GPIBPortOperator(sensitivityId); hasAddress = true; } @@ -119,33 +116,7 @@ return content; } - public int openLAN(string ip) - { - int result = -1; - if (NewPortInstance("LAN", ip)) - { - try - { - _portOperatorBase.Open(); - result = 0; - } - catch (Exception ex) - { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); - result = -1; - } - } - return result; - } - /* - * GPIB 频率:freq value - * 周期:pulse:period value - * output 0/1 - * - * TCPIP 频率:MEAS:freq? - * 周期:MEAS:period? - * */ } } \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs new file mode 100644 index 0000000..442706b --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/GPIB_TCPIP_OPERATIO.cs @@ -0,0 +1,81 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + public class GPIB_TCPIP_OPERATIO + { + public static void output(GPIBService gPIBService) + { + gPIBService.write("OUTPUT?"); + + string outputStatus = gPIBService.read(); + + if (outputStatus == "0") + gPIBService.write("OUTPUT 1"); + } + + public static void setFreq(GPIBService gPIBService,string value) + { + gPIBService.write("FREQ " + value); + } + + public static void setPeriod(GPIBService gPIBService,string value) + { + gPIBService.write("PULSE:PERIOD " + value); + } + + public static void setVOLTage(GPIBService gPIBService, string value,string sleepTime) + { + gPIBService.write("VOLTage " + value); + + Thread.Sleep(Convert.ToInt32(sleepTime)); + } + + public static string getFreq(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:FREQ?"); + + return tcpService.read(); + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + public static string getPeriod(GPIBService tcpService) + { + try + { + tcpService.write("MEAS:PERIOD?"); + + return tcpService.read(); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getFreq:" + ex.Message); + return null; + } + } + + + /* +* GPIB 频率:freq value +* 周期:pulse:period value +* output 0/1 +* 电压VOLTage 1V +* +* TCPIP 频率:MEAS:freq? +* 周期:MEAS:period? +* */ + } +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs index bceec15..e66c214 100644 --- a/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/SensitivityServiceImpl.cs @@ -1,60 +1,100 @@ using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model; using Casic.Birmm.RbFreqStandMeasure.R_DevService.Dto; using Casic.Birmm.RbFreqStandMeasure.Tools; -using Casic.Birmm.RbFreqStandMeasure.VISA.Port; -using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; using System; -using System.Collections.Generic; -using System.Linq; using System.Reflection; -using System.Text; namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl { class SensitivityServiceImpl:SensitivityService { - public void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam) + public void beginTest(string type, GPIBService gPIBService, GPIBService tcpService, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam) { sensitivityContentParam = new SensitivityContentParam(); try { //启动output(一次)OUTPUT 0\OUTPUT 1 - gPIBService.write("OUTPUT?"); + GPIB_TCPIP_OPERATIO.output(gPIBService); - string outputStatus = gPIBService.read(); - - if (outputStatus == "0") - gPIBService.write("OUTPUT 1"); - - //设置周期/频率、电压GPIB - gPIBService.write("FREQ " + freq); + //设置周期/频率、电压GPIB + if (type == "freq") + GPIB_TCPIP_OPERATIO.setFreq(gPIBService, sensitivityContentParam.Freq); + else if (type == "period") + GPIB_TCPIP_OPERATIO.setPeriod(gPIBService, sensitivityContentParam.Period); bool lessTolerance = false; + string currentVolTage = "0"; while (!lessTolerance) { + //获取当前灵敏度 + currentVolTage = getVOLTageValue(counterCheckParam, currentVolTage); + //设置当前灵敏度 + GPIB_TCPIP_OPERATIO.setVOLTage(gPIBService, currentVolTage, counterCheckParam.SoOutDelay); + string checkResult = ""; //主动读取检测数据LAN - + if (type == "freq") + checkResult = GPIB_TCPIP_OPERATIO.getFreq(tcpService); + else if (type == "period") + checkResult = GPIB_TCPIP_OPERATIO.getPeriod(tcpService); //检测数据是否在容差范围内 + + //返回满足容差的数据 lessTolerance = true; } - + } - catch(Exception ex) + catch (Exception ex) { - LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:"+ex.Message); + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "beginTest:" + ex.Message); sensitivityContentParam = null; } } + string getVOLTageValue(CounterCheckParam counterCheckParam,string currentValue) + { + if (currentValue == "0") + return counterCheckParam.SoEleFrequency; + else + return (Convert.ToInt32(currentValue) + Convert.ToInt32(counterCheckParam.SoEleAddValue)).ToString(); + } + + bool satisfyCheck(CounterCheckParam counterCheckParams, SensitivityContentParam sensitivityContentParam, + string currentValue,string checkType) + { + bool satisfyResult = false; + try + { + if (checkType == "freq") + { + + + } + else if (checkType == "period") + { + + } + + satisfyResult = true; + } + catch(Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType,"statisfyCheck:"+ex.Message); + satisfyResult = false; + } + return satisfyResult; + } + + /** * - * GPIBService gPIBService=new GPIBService(); + * GPIBService gPIBService=new GPIBServiceImpl(); + * GPIBService tcpService=new TCPServiceImpl(); * gPIBService.open(); * for(datagridview.row) * { @@ -63,7 +103,4 @@ * gPIBService.close(); * */ } -} - - - \ No newline at end of file +} \ No newline at end of file diff --git a/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs new file mode 100644 index 0000000..7406c32 --- /dev/null +++ b/RbFreqStandMeasure/R_DevService/Service/Impl/TCPServiceImpl.cs @@ -0,0 +1,123 @@ +using Casic.Birmm.RbFreqStandMeasure.Tools; +using Casic.Birmm.RbFreqStandMeasure.VISA.Port; +using Casic.Birmm.RbFreqStandMeasure.VISA.Ulitity; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace Casic.Birmm.RbFreqStandMeasure.R_DevService.Service.Impl +{ + class TCPServiceImpl:GPIBService + { + public string[] getId() + { + string[] counterId; + try + { + counterId = PortUltility.FindAddresses(PortType.LAN); + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + counterId = null; + } + return counterId; + } + + + private PortOperatorBase _portOperatorBase; + public int open(string ip) + { + int result = -1; + if (NewPortInstance(ip)) + { + try + { + _portOperatorBase.Open(); + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "open:" + ex.Message); + result = -1; + } + } + + return result; + } + + private bool NewPortInstance(string id) + { + bool hasAddress = false; + bool hasException = false; + + try + { + _portOperatorBase = new LANPortOperator(id);//TCPIP0::192.168.0.134::inst0::INSTR//"TCPIP0::" + sensitivityId + "::INSTR" + + hasAddress = true; + } + catch (Exception ex) + { + hasException = true; + } + + if (!hasException) _portOperatorBase.Timeout = 2000; + return hasAddress; + } + + public int close() + { + int result = -1; + try + { + _portOperatorBase.Close(); + + result = 0; + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + result = -1; + } + + return result; + } + + public int write(string content) + { + int result = -1; + try + { + _portOperatorBase.WriteLine(content); + + result = 0; + } + catch (Exception ex) + { + + result = -1; + } + return result; + } + + public string read() + { + string content = ""; + try + { + content = _portOperatorBase.ReadLine(); + + } + catch (Exception ex) + { + LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getCounterId : " + ex.Message); + content = ""; + } + return content; + } + + } +} diff --git a/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs b/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs index 9eb0d13..adc64db 100644 --- a/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs +++ b/RbFreqStandMeasure/R_DevService/Service/SensitivityService.cs @@ -10,8 +10,8 @@ interface SensitivityService { //单行检测 - void beginTest(GPIBService gPIBService,string freq,CounterCheckParam counterCheckParam, - out SensitivityContentParam sensitivityContentParam); + void beginTest(string type,GPIBService gPIBService,GPIBService tcpService,string freq, + CounterCheckParam counterCheckParam, out SensitivityContentParam sensitivityContentParam); } } \ No newline at end of file diff --git a/RbFreqStandMeasure/RbFreqStandMeasure.csproj b/RbFreqStandMeasure/RbFreqStandMeasure.csproj index 67682c6..0d2d8a3 100644 --- a/RbFreqStandMeasure/RbFreqStandMeasure.csproj +++ b/RbFreqStandMeasure/RbFreqStandMeasure.csproj @@ -313,9 +313,13 @@ + + + + UserControl diff --git a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe index e879a62..5d4acd6 100644 --- a/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe +++ b/RbFreqStandMeasure/bin/Debug/RbFreqStandMeasure.exe Binary files differ diff --git a/RbFreqStandMeasure/tools/UnitConvertHelper.cs b/RbFreqStandMeasure/tools/UnitConvertHelper.cs new file mode 100644 index 0000000..e898f9c --- /dev/null +++ b/RbFreqStandMeasure/tools/UnitConvertHelper.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace Casic.Birmm.RbFreqStandMeasure.tools +{ + class UnitConvertHelper + { + double convertHZ(string currentFreq) + { + string unit= Regex.Replace(currentFreq, @"\d", ""); + + double value= Convert.ToDouble(Regex.Replace(currentFreq, @"[^\d.\d]", "")); + + switch (unit) + { + case "μHz": + return value/1000/1000; + case "mHz": + return value/1000; + case "Hz": + return value; + case "kHz": + return value*1000; + case "MHz": + return value*1000*1000; + default: + return 0; + } + } + + double convertS(string currentPeriod) + { + string unit = Regex.Replace(currentPeriod,@"\d",""); + + double value = Convert.ToDouble(Regex.Replace(currentPeriod, @"[^\d.\d]", "")); + + switch (unit) + { + case "ns": + return value/1000/1000/1000; + case "μs": + return value/1000/1000; + case "ms": + return value/1000; + case "s": + return value; + default: + return 0; + } + } + + /*int convertV(string currentVOLTage) + { + + } + */ + + /** + * + * 50kHz "+5.00000082583410E+004" "+1.99999966521428E-005" + * 20 "+1.99999966774069E-008" + * + * */ + } +}