问题标签 [measurement-studio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 无法将 ref double[] 转换为 ref 对象
好像我现在几乎每天都在这里问一个问题。我不确定这是好事还是坏事……
今天的“Flavor-Of-The-WTF”涉及我在使用 NI Measurement Studio 对象中的函数时完全无知。与我之前的大多数问题一样,这是关于一个实习项目,我的任务是在 .Net Framework 2.0 中将一个 VB6 项目翻译成 C#。
原始的 VB 代码如下所示:
我有一次停留在 MsgBox 中,以查看 realdata 和 imgdata 是如何被解释的。他们都是Double()
s。它在原始程序中工作得很好。诚然,我对原始程序的了解只是平庸,因为我最近拿起了这个项目,并且只有几年的编程经验(没有多年的机械工程。程序员是机械工程师,应用程序本身机器输出量的测量工具)。
将代码转移到 C# 中,我尝试将其重写为:
如您所见,我开始的方式与原始 VB 基本相同。出现以下错误:Cannot Convert double[] to ref object
嗯,那不好。所以我尝试了:DSP.ReFFT(ZData, ref realData, ref imgData);
只为返回:Cannot Convert ref double[] to ref object
所以我做了我认为显而易见的事情。我将 realData 和 imgData 装箱到object
s 中,并将它们传递给函数。然而,它并不太喜欢那个。如果我没有传递新对象,ref
它坚持我需要传递它们。 ref
如果我用 传递它们ref
,它会给我错误:
Cannot Convert ref double[] to ref object
.
咦……似曾相识。当我更改double[]
为Object
两个变量的实例化时,我终于让编译器停止产生错误。但是......当我运行该函数时,我得到一个Type Mismatch
错误。
我真的不知道我从这里去哪里。互联网上几乎没有关于使用 Measurement Studio 进行 C# 编程的信息。即使有,我相信解决方案比我预期的要简单得多。历史告诉我,当有一个我无法弄清楚的错误时,它几乎总是愚蠢的。
c# - 如何在 C# 中使用 NI 库中的 VI
我正在将我的 labVIEW 项目转换为 C#。在我的 labview 项目中,我使用了 NI 的 VI 。例如niModInstGet Installed Device Attribute(String).vi.
对于我正在使用的 C# 中的这个,我Measurement Studio
从IVI Foundation - > IVI - > Driver - > niModInst - > niModInst.fp
. 所以在 C# 中,我可以将这个 VI 作为Method
现在的问题是,在 LabVIEW 项目中,我使用的是来自C:\Program Files\National Instruments\LabVIEW 2009\instr.lib\niRFSG \ niRFSGExamplesSupport.llb\nfsg_FindWaveformPAramsForFrequincy.vi
我找不到任何驱动程序文件。我在哪里可以找到这个。或者我需要创建自己的 C# 函数来实现这一点。
请帮我把这个..
提前致谢
c# - 如何在 C#.Net 中使用 DAQmx 计时(采样时钟)
我正在使用测量工作室。我需要DAQmx Timing VI
在我的 C# 应用程序中使用该功能。这该怎么做。请帮我。
VI在这里
c# - 如何在 C# 中使用 LabVIEW 属性节点?
如何在 C# 中使用 LabVIEW 属性节点(使用 Measurement Studio)?
visual-studio-2010 - Measurement Studio 控件在 VS2010 中不可见
我正在尝试开始使用 NI Measurement Studio。安装软件后,控件没有出现在我的工具箱中。我收到文本“.Net Framework 4 客户端配置文件无法使用此类别中的控件。要更改此设置,请打开项目属性窗口。”
measurement-studio - 使用 WaveformGraph PlotYAppend 时如何扩展 AxisX 显示范围
我正在使用带有 PlotYAppend 功能的 National Instruments WaveformGraph 控件来显示来自外部 DAQ 板的数据流。
默认情况下,WaveformGraph 仅显示附加数组中的 1000 个点,如何更改呢?
c# - InitializeComponent() 中的应用程序崩溃
首先,我使用 Visual Studio 2010、Measurement Studio 2010 插件、C# 和 .NET 4.0。
我的应用程序从 USB 设备接收数据并使用WaveformPlot()
[这是 Measurement Studio 的一部分] 绘制数据。我能够在调试和发布模式下正常运行应用程序,甚至可以bin
在开发计算机上使用文件夹中的 EXE 文件直接运行它。
但是,我根本无法在另一台计算机上运行它。我正在使用ClickOnce创建安装文件和文件夹,并将发布文件夹从我的开发计算机复制到客户端计算机。然后我运行安装文件,ClickOnce 下载 .NET(如果尚未安装),然后打开应用程序。该应用程序显示我的初始对话框,要求我从许多可用的 COM 端口中选择一个。一旦我这样做了,我的代码就会经历InitializeComponent()
主窗体应该出现的地方。
初始框后主窗体未打开。使用Debug.WriteLine
语句,我已经能够将其范围缩小到
它在这里崩溃。它没有向我显示任何错误消息或任何东西。它在我的开发计算机上运行良好,但在其他计算机上却不行。我包含了National Instruments DLL 文件,并且其他 National Instruments 组件都已初始化。只是这一个没有。该应用程序会在 Windows 任务管理器中显示一段时间,然后在 10 秒后消失。
我应该怎么办?
更新 1
在阅读了关于 Stack Overflow 的另一个不相关的问题后,我意识到我可以将 theApplication.run
和 theform1 mainform = new form1()
放在一个 try-catch 块中。
System.TypeInitializationException:“NationalInstruments.UI.Internal.WaveformPlotElement”的类型初始化程序抛出异常。--> System.IO.FileNotFoundException:无法加载文件或程序集“NationalInstruments.Common.Native.dll”或其依赖项之一。指定的模块无法找到。
因为我现在至少知道这是一个例外,所以我会处理它,尝试找出缺少哪个 DLL 以及为什么,并更新这个问题。
更新 2
我检查了发布文件夹中的应用程序文件,它确实包含“NationalInstruments.Common.Native.dll”。我不知道为什么它不能加载它。
更新 3
我在客户端计算机上运行 Fusion Log Viewer 并看到NationalInstruments.Common.Native.dll
已成功加载。但是,调试异常消息仍然显示,如 OP 所示,
无法加载文件或程序集“NationalInstruments.Common.Native.dll”或其依赖项之一”
Fuslog Viewer 显示所有程序集都已成功加载。我在客户端计算机上进行了检查。虽然,National Instruments DLL 文件中有一行显示“GAC 查找不成功”,而其他程序集则没有。
DebugViewer 显示我使用打印出来的异常Debug.writeLine
。这表明NationalInstruments.Common.Native.dll
无法加载其依赖项或其中一个依赖项。
我很困扰。
我尝试添加对项目的引用,使用反编译器检查引用,使用其他安装程序(ClickOnce 除外),但它们似乎都没有让我到任何地方。:(
更新 4
我昨天才发现该应用程序在 64 位系统上安装和运行良好。我之前试过的两台电脑都是 32 位的 Windows 7 系统。我正在寻找是否可以以某种方式帮助我。该应用程序是在我的 64 位 Windows 7 开发笔记本电脑上编译的。项目属性下“构建”中的“平台”下拉菜单显示“活动(x86)”,我将“任何 CPU”作为平台目标。
mfc - NI Measurement Studio 替代方案
我需要一个用于 MFC/C++ 应用程序的 NI Measurement Studio 替代方案,因为它们不再支持它们。
visual-studio-2012 - NI测量工作室2012 for VS 2012
只是想确保测量工作室 2012 不适用于 VS 2012,并且不要浪费我的时间来安装它。
c# - BeginUpdate/EndUpdate 后无更新
使用 National Instruments Measurement Studio 和 Visual Studio 2012 中的 ScatterGraph。
为了防止图形在各种情况下更新,我通常通过调用 scatterGraph1.BeginUpdate 来阻止组件的重新绘制;
但有时我希望组件被重新绘制,所以我使用以下代码:
问题是当我执行上述操作时图表不会更新。我怀疑这个问题是由使用单独线程的图形组件引起的,因此我在图形设法重新绘制之前调用了 BeginUpdate。
问题 1:当我认为问题在于调用 Invalidate 后调用 BeginUpdate 太快时,我是否正确?
问题2:我能做些什么来强制更新?