1、前言

此次需要用到工具操作示波器动态配置和检验数据,下面为武小栈此次开发的一些总结记录。按理说这里应该用泰克(tektronix)提供的示波器(oscilloscope)驱动和API,但是我没有找到泰克提供的.NET版本的API,我又不是特别熟悉C封装到C#的开发,所以干脆使用了NI-VISA .NET,可能是没有使用到特殊驱动部分,使用并没有出现异常。

2、安装环境

1、NI-VISA

3、C#代码

using System;
using System.Collections.Generic;
using Ivi.Visa;
using NationalInstruments.Visa;namespace VisaInstruments
{public class NiVisaInstrumentsAPIs{private MessageBasedSession mbSession;private IVisaAsyncResult asyncHandle = null;public void FindResources(string filter){using (var rm = new ResourceManager()){try{IEnumerable<string> resources = rm.Find(filter);foreach (string s in resources){//可以根据ParseResult查询出硬件类型,如Custom,Gpib,Serial,Usb等//ParseResult parseResult = rm.Parse(s);//HardwareInterfaceType hardwareType = parseResult.InterfaceType;}}catch (Exception ex){//处理错误}}}public bool OpenInstrument(string address){try{using (var rmSession = new ResourceManager()){mbSession = (MessageBasedSession)rmSession.Open(address);//mbSession.SynchronizeCallbacks = true;使用异步方法需设SynchronizeCallbacks为truereturn true;}}catch (Exception exp){return false;}}public void Write(string s){mbSession.RawIO.Write(ReplaceCommonEscapeSequences(s));}public string Read(){return InsertCommonEscapeSequences(mbSession.RawIO.ReadString());}public void WriteAsync(string s){try{string textToWrite = ReplaceCommonEscapeSequences(s);asyncHandle = mbSession.RawIO.BeginWrite(textToWrite,new VisaAsyncCallback(OnWriteComplete),(object)textToWrite.Length);}catch (Exception exp){}}private void OnWriteComplete(IVisaAsyncResult result){try{mbSession.RawIO.EndWrite(result);// "Success";}catch (Exception exp){}}public void ReadAsync(){try{asyncHandle = mbSession.RawIO.BeginRead(1024,new VisaAsyncCallback(OnReadComplete),null);}catch (Exception exp){}}private void OnReadComplete(IVisaAsyncResult result){try{string responseString = mbSession.RawIO.EndReadString(result);string info = InsertCommonEscapeSequences(responseString);}catch (Exception exp){}}public void AbortRW(){try{mbSession.RawIO.AbortAsyncOperation(asyncHandle);}catch (Exception exp){}}private string ReplaceCommonEscapeSequences(string s){return (s != null) ? s.Replace("\\n", "\n").Replace("\\r", "\r") : s;}private string InsertCommonEscapeSequences(string s){return (s != null) ? s.Replace("\n", "\\n").Replace("\r", "\\r") : s;}}}

4、实体按钮对应指令

重新设置参数  --- *RST前面板Autoset按钮    ----  AUTOSet EXECute前面板通道1,2,3,4按钮 --- DISplay:GLObal:CH1:STATE on ACQUIRE:STOPAFTER RUNSTOP前面板Single/Seq按钮 --- ACQUIRE:STOPAFTER SEQuence前面板放大镜按钮  ---  DISplay:WAVEView1:ZOOM:ZOOM1:STATe ON前面板Default setup按钮  --- FACtory需要先执行此条命令解锁命令操作旋钮 HORIZONTAL:DELAY:MODE ON前面板HORizontal区域position旋钮 -- HORizontal:DELay:TIME 0.3前面板HORizontal区域scale旋钮 HORIZONTAL:MODE:SCALE 0.5e-3HORIZONTAL:MODE:SCALE?前面板vertical区域scale旋钮 CH1:SCAle 100E-2前面板vertical区域position旋钮  CH2:POSition -2.0前面板touch off按钮 --- TOUCHSCReen:STATe OFF前面板trigger区域force按钮 --- TRIGGER FORCE前面板trigger区域mode按钮 --- TRIGger:A:MODe {AUTO|NORMal}前面板A,B旋钮  --- TRIGger:{A|B|B:RESET}

5、简单测量参数指令

//设定读取通道和参数MEASUREMENT:MEAS1:TYPE AMPLITUDEMEASUREMENT:MEAS1:SOURCE CH1//读取信息MEASUREMENT:MEAS1:RESUlts:CURRentacq:MEAN?//删除测试信息MEASUREMENT:DELETE "MEAS1"//截屏SAVE:IMAGE "C:/Dut12–tests.png"//可测参数列表MEASUrement:MEAS<x>:TYPe{ACCOMMONMODE|ACRMS|AMPlITUDE|AREA|BASE|BITAMPLITUDE|BITHIGH|BITLOW|BURSTWIDTH|COMMONMODE|DATARATE|DCD|DDJ|DDRAOS|DDRAOSPERTCK|DDRAOSPERUI|DDRAUS|DDRAUSPERTCK|DDRAUSPERUI|DDRHOLDDIFF|DDRSETUPDIFF|DDRTCHABS|DDRTCHAVERAGE|DDRTCKAVERAGE|DDRTCLABS|DDRTCLAVERAGE|DDRTERRMN|DDRTERRN|DDRTJITCC|DDRTJITDUTY|DDRTJITPER|DDRTPST|DDRTRPRE|DDRTWPRE|DDRVIXAC|DDRTDQSCK|DELAY|DJ|DJDIRAC|DPMOVERSHOOT|DPMUNDERSHOOT|DPMRIPPLE|DPMTURNOFFTIME|DPMTURNONTIME|EYEHIGH|EYELOW|FALLSLEWRATE|FAHIGH|HEIGHT|HEIGHTBER|HIGHTIME|HOLD|JITTERSUMMARY|J2|J9|LOW|LOWTIME|MAXIMUM|MEAN|MINIMUM|NDUtY|NPERIOD|NPJ|NOVERSHOOT|NWIDTH|PDUTTY|PERIOD|PHASE|PHASENOISE|PJ|PK2Pk|POVERSHOOT|PWIDTH|QFACTOR|RISESLEWRATE|RISETIME|RJ|RJDIRAC|RMS|SRJ|SSCFREQDEV|SSCMODRATE|SETUP|SKEW|TIE|TIMEOUTSIDELEVEL|TJBER|TNTRATIO|TOP|UNITINTERVAL|VDIFFXOVR|WIDTH|WIDTHBER|}

6、简单的GPIO测试用例

//设置垂直刻度为300mvCH1:SCAle 300E-3 //位置为-3divCH1:POSition -3.0 //耦合为DCCH1:COUPLING DC //设置水平刻度为20msHORIZONTAL:MODE:SCALE 20e-3//打开采集ACQUIRE:STATE ON//测量最大电压MEASUREMENT:MEAS1:TYPE MAXIMUMMEASUREMENT:MEAS1:SOURCE CH1//测量最小电压MEASUREMENT:MEAS2:TYPE MINIMUMMEASUREMENT:MEAS2:SOURCE CH1//测量高值MEASUREMENT:MEAS3:TYPE TOPMEASUREMENT:MEAS3:SOURCE CH1//测量低值MEASUREMENT:MEAS4:TYPE BASEMEASUREMENT:MEAS4:SOURCE CH1//停止采集ACQUIRE:STATE OFF//设置标签CH1:LABEL:NAME "GPIO1HIGH"//截屏SAVE:IMAGE "G:/GPIO1HIGH.png"

参考资料

4, 5, 6 Series MSO (MSO44, MSO46, MSO54, MSO56, MSO58, MSO58LP, MSO64, LPD64) Programmer Manual

TEKVISA Connectivity Software - V4.2.0

[经验栈]C#与泰克示波器(Tektronix oscilloscope)MSO64通信操作相关推荐

  1. 泰克示波器查眼图_泰克示波器自带上位机软件功能介绍,了解一下

    有人问,仪器背后那么多程控接口,为什么平时大家都只手动设置调试,从来没见过它们派上用场呢?今天安泰测试马工就给大家介绍一下电子工程师常用的仪器--泰克示波器的上位机软件功能,如果有你常用到的,就快快收 ...

  2. 泰克示波器上位机软件功能分享,这几款你都用过吗?

    泰克示波器作为电子工程师的常用仪器,在它的背后有很多的程控接口,那他们都是在什么时候发挥作用的呢?今天纳米软件Namisoft小编就给大家介绍一下几款泰克示波器上位机软件 及功能. 一.泰克示波器Te ...

  3. tek示波器软件_泰克示波器自带上位机软件功能介绍

    原标题:泰克示波器自带上位机软件功能介绍 有人问,仪器背后那么多程控接口,为什么平时大家都只手动设置调试,从来没见过它们派上用场呢?今天安泰测试马工就给大家介绍一下电子工程师常用的仪器--泰克示波器的 ...

  4. 【推荐】Tektronix 泰克示波器DPO3000系列固件升级方法

    很多人常常忽略示波器固件升级,一台机器用到老,实际上,固件升级不仅仅是功能的增加,更是对出厂时固件存在的bug进行修复,就像是发动机添加润滑油一样,更新固件将使你的仪器用起来更得心应手. 今天安泰小课 ...

  5. 语言 泰克示波器程序_泰克Tektronix 任意波函数发生器AFG2000系列AFG2021

    一.概述 通常,生成多种信号需要投资购买高端的信号发生器.AFG2021 任意波形/函数发生器具有 20 MHz 的带宽,14 位分辨率和 250 MS/s 采样率,可创建简单和复杂波形. 最令人印象 ...

  6. Tektronix泰克示波器MSO46规格一览

    泰克示波器MSO46主要指标: 模拟带宽:200 MHz - 1.5 GHz 模拟通道:6通道 数字通道:最多32条(可选) 采样率:高达 6.25 GS/s 点击输入图片描述(最多30字) 记录长度 ...

  7. 泰克示波器TDS210更换IPS彩色屏幕

    本文将介绍如何为泰克示波器TDS210更换当前流行的IPS彩色屏幕,甚至在以后准备将屏幕图像转换为HDMI输出,彻底对以往的老旧屏幕说拜拜. 文章如有侵权请联系我删除. 目录 一.缘起 1.与TDS2 ...

  8. 泰克示波器采样率设置

    泰克示波器是一种常用的电子仪器,它用于观测和分析电子信号.采样率是指每秒采样的次数,通常已经预设在示波器中,但需要针对特定的应用进行设置.下面简要介绍如何对泰克示波器进行采样率的设置. 首先,需要了解 ...

  9. tek示波器软件_Tektronix(泰克示波器)

    美国泰克DPO4000/MSO4000系列数字/混合信号示波器 常用用型号:TDS3054B TDS3052C OPO4554 TDS1012B DPO 3032 TDS 1012B-SC TDS30 ...

最新文章

  1. 认识下PHP如何使用 phpmailer 发送电子邮件
  2. 13.multi_search_api
  3. sqlsugar的sum的用法
  4. Linux操作系统Ifconfig命令详细解析
  5. XGBoost算法原理
  6. c#实现简单学生信息管理系统
  7. UGMT buildingEXODUS v4.0 WiN32.rar
  8. 回溯法求解n个元素的集合的幂集
  9. 人脸识别眨眼张嘴软件_手机端APP活体真活人检测扫描人脸识别SDK之张嘴摇头眨眼点头确认真人非...
  10. android 定位 指南针,Android 实现指南针效果
  11. android根据经纬度获取位置,Android获取经纬度
  12. 北航计算机学院马殿富,北京航空航天大学计算机学院院长马殿富演讲
  13. 不要用PS啦,python+opencv代码给证件照换底色
  14. 【win7右下角的小喇叭不能调节声音怎么办】
  15. 大型、超大型数据中心园区设计如何审查与优化
  16. 2017年7月14日 星期五 --出埃及记 Exodus 28:5
  17. アプリケーションコンポーネント(大分類)
  18. jQuery vs JavaScript
  19. 温度报警程序c语言设计,单片机温度报警器与时钟显示C程序和原理图
  20. 深度学习领域目前仍有哪些值得追踪的前沿研究?

热门文章

  1. 如何检测Android应用是32位还是64位
  2. 创业的Idea是怎样产生的?
  3. 信息学奥赛一本通 1376:信使(msner)
  4. 07年助理医师分数线(预测)
  5. 2022年广州国际生物基展览会|降解产业应用展
  6. [MySQL] 零基础学MySQL 08
  7. 在安卓上部署服务器--ksweb+wordpress
  8. Bootstrap_02_全局CSS之排版、代码、表格
  9. ISO21434车辆网络安全解读-2.组织网络安全管理
  10. 零售业数据分析的规划思路与应用场景