More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  LabVIEWPhotosProfileFriendsMore Tools Explore the Spaces community

LabVIEW

Q^Q 是我的眼镜
文章安内容分类
O Troupe of little vagrants of the world, leave your footprints in my words.
  • 4/24/2008 4:58:01 PM
    想请教一个问题:
    我用LabVIEW(system exce.vi)去调用一个VB应用程序,当在我的子界面打开这个程序后我的子界面会死机(控件失效了事件还在执行),主界面没有问题。我是个新手,这个问题我想了好久也不知道为什么?希望大侠能帮我解决!!!
     
     
  • 4/7/2008 11:24:46 PM
    居然在考察怎么从张江高科去NI时,拐弯抹角一不小心闯到贵宝地~看到留言板上泰翁的诗句,忍不住要留一个脚印。
    长铗......条件反射地想到弹铗而歌的冯驩,hoho~
    希望有可能与大侠共事=)
  • 3/20/2008 9:23:10 AM
    LabVIEW 中有个 VI 是 Set Cursor.vi。它可以改变光标形状。你可以查看一下和它相关的VI的用法,用它们解决你的问题。
  • chen
    3/20/2008 1:52:52 AM
    板大你好!
    我想LV跟電子繪畫版結合,在LV中模擬畫板的大小,滑鼠左鍵按下寫字或做圖,可以及時在LV模擬畫板中顯示!! 問題點:.要如何當左鍵按下時,模擬畫板可顯示像寫字的黑點呢?? 請不吝指教!感謝
  • 3/6/2008 9:16:17 AM
    我在这里介绍了一些Register Event Callback和event node的用法:http://ruanqizhen.spaces.live.com/blog/cns!5852D4F797C53FB6!2004.entry

    可能不是很详细。
    你有没有什么具体方面的问题,我可以针对这些问题补充一下。
  • 3/2/2008 6:05:07 PM
    大哥,能否讲解一下Register Event Callback和event node的用法
  • 2/29/2008 10:26:16 PM
    你好!想加你为好友,请接受邀请。本人自02年患上人工荨麻疹,一直未能治愈,因为次数太多,一度放弃治疗,对治愈绝望。能看了你的空间获益非浅,希望能成为好友,交流治疗心得。谢谢!
  • 2/22/2008 10:49:21 PM
    无恶意.来看看.
  • 2/22/2008 9:13:38 PM
    先谢谢F117现在我知道了History Property Node。其实开始我不知道这个端子在那个地方能找到,现在知道了。
    还有问题请教:
    1.像这种Property Node有没有书介绍的?
    2.现在我想解决的问题:已经编好了一些vi,现在想做成类似windows窗口的界面,点击哪个测试选项就可以运行那个vi.有这方面的参考书吗?
    现在没一点感觉。
    谢谢大家帮忙!困惑
     
     
  • 2/2/2008 11:41:54 AM
    对于"没有名字"同学的问题,我有些看法, 数组接History Property Node在于清除绘图显示的历史数据吧, 采样后的X Scale可以设置成Auto,或通过Property Node设定一个范围,呵呵
  • 2/2/2008 11:37:24 AM
    哈罗, 我是LabVIEW爱好者,做 电子电信 方面的应用 ,有时间 交流
  • 1/19/2008 12:44:27 PM
    你的问题实在有点太含糊,我没太理解。
    想你这样的问题,最好找到原来程序的作者,他的思路也许只有他自己说的清楚。
    另外,给你一个论坛地址:http://forums.ni.com/ni/board?board.id=2170
    你可以把问题发在这个论坛上,并且最好问问题的时候附上VI,或者截图。
    这样别人就方便理解你的问题了。
  • 1/18/2008 11:52:56 PM
    这是我邮箱:liyi_sunny@163.com
  • (没有名字)
    1/18/2008 11:49:50 PM
    我是研二的学生,毕业设计要用到lavbview作一套测试设备的人机交互界面,看了一星期的labview基础教程,知道一些基本操作,现在在看一师兄编的labview程序,有些不明白的:1.对一数组初始化之后接一个“history。。。”觉得应该是一指示端子,不太明白是什么意思;2.对采样数据画图之后画图设定x轴的标度范围,那个模块在哪?我本来想把那两个模块贴上来的。。。
    我是上网搜这个问题时看到你的博客的,很厉害,向你学习眨眼
    这些问题我都不知道在网上怎么搜,也许太简单了,别笑我啊,嘿嘿
    希望能多和你交流,向你学习!!!
    把答案发我邮箱里吧
    先谢了!
     
  • 1/14/2008 2:53:45 PM
    我没有自己用VB、VC 做过 ActiveX 控件,但是在 LabVIEW 中使用过别人的 ActiveX 控件。我的感觉是 ActiveX 控件应用起来,比DLL要方便一些。跟你的感觉不一致,我想主要原因是这个 ActiveX 控件在制作时是否设计得当。设计的好的 ActiveX 控件由于本身就带有函数的参数信息,可以在 LabVIEW 直接拿来就用,不需要自己动手设置参数,所以用起来应该更简便。等我找个时间,把使用 ActiveX 控件的经验也写一下。
  • 1/11/2008 6:00:32 PM
    阮虾,你好。呵呵。
    最近很多大作啊,有空可否写一下如何在LabVIEW中使用ActiveX控件?
    问题是这样产生的,我最近手上在做一个ATS,其中控制部分有一块是别人的协议,不愿意公开给我。他们自己做的一块板卡插在计算机上(PCI接口),然后用VB写了个简单的控制软件。我说这样我用不了啊,于是他们就编译了个ACTIVEX控件给我。我郁闷。不过好在这个控件很简单,只有一个用户方法,而且不需要返回值。我胡乱在LabVIEW里面弄了下,程序算是调通了。
    不过我仍然对它有恐惧或者说很烦的心理。因为不懂到底如何应用,我都不知道怎么调通控制部分的。只是看了下书,很简单的介绍了使用方法。
    大虾能给详细解释解释吗?感觉这玩意比DLL难调多了。
    非常感谢。
  • 1/10/2008 4:18:23 PM
    長鋏:在網上看到你的貼,有點驚喜。你專業LABVIEW,對我們來說是件很好的事,但是如果你願給自己及我司機會,善於用自己的優點再來開發一套國內沒有的軟件。將是一件很美的事,我司有技術支持,現需用LABVIEW來開發一套聲說軟件。如果有意請聯繫top_xin@hotmail.com
  • 1/9/2008 6:24:20 PM
    那你有几岁啊?你来做个自我介绍吧!
  • 1/8/2008 4:53:45 PM
    你的名字似乎很有亲和力阿。ruanqizhen似乎在那里见过,似成相识的感觉,难道你出过书?大笑
  • 1/6/2008 5:46:39 PM
    你好,我是刚准备学习Labview的大四学生,GOOGLE到这里来了。以后有问题也许会向你请教,提前谢谢:)
    并祝新年快乐。
  • 1/1/2008 7:50:13 PM
    很专业。
    新年好微笑
  • 12/31/2007 7:50:37 PM
    我就是看见有人叫我大侠,才起了这个名字,跟大侠的身份比较般配嘛微笑
    说道写博客,我虽然很早就接触过,但开始写的并不认真。只是觉得这东西新鲜,随便玩玩。认真开始写一些工作上的东西,和自己的想法,也是只有两年多的时间。
    你说你是语文老师,我也想起了我的中学语文老师。那时候她让我们写日记,还定期检查。我那时可是非常痛恨她的,我最烦的就是写作文了。强迫去做一件不想做的事情是很痛苦的。现在没人监督了,到时可以认真的写一写博客了。
  • 12/31/2007 7:35:51 PM
    你好,真的不知道怎么称呼,看有叫你大侠的,有叫你大哥的,还有叫你前辈的,我好像都不合适,简单看了你的相册,不知道是坐着的那个是你,还是站着的那个,主要是看到你的姓竟然和我最好的大学同学的姓一样,便想到也许是她弟弟,就赶紧去看了相片,其实平时我是不怎么看别人的资料的,一直相信文字是最简单和干净的了解别人的方式。
    我好像原来在谁的空间见到过你,当时觉得你的名字有荆轲的味道,一闪就过去了。今天看了你的前几篇的文字,脸热了,我好像真的遇到了一个写博的前辈了。现在握手吧,认识你很高兴哈哈哈。我写博快两年了,其实里面的技术还是什么都不懂,除了打字很快以外,别的都是儿子回来帮我收拾,我只会写,然后做个简单图片,然后更新。可是我好像也有个说起来很牛的记录,我坚持了两年的每天更新,除了出去旅游那几天,连生病都没有停止过,连台湾地震都没有停止过,哈哈哈,是不是挺不错的啊。
    看我,好像真的见了老朋友一般,说起来没停。我46岁,高中语文老师,家有二宝,大宝是老公,小宝是现在上大三的儿子,介绍完毕。新年好,欢迎来家玩。
  • 12/6/2007 3:56:17 PM
    阮哥你好,我正在学习labview,在网上搜索资料的时候看到了你的主页,写得真好,我想请教你一个问题:最近要做一个项目,就是用采集卡采集无线电波的数据,然后把这些数据进行频域的一些处理解密,并且利用这些数据画出电子地图,画电子地图这部分主要是利用vc的程序实现,数据处理用labview实现,我想在labview中通过动态链接库调用该电子地图程序,想问一下:能不能实现两种程序同时运行?因为最后要实现实时的行车采集数据并画出行车轨迹。要是方便的话可不可以发到我的邮箱circlegq@emails.bjut.edu.cn谢谢啦!
  • 11/27/2007 10:11:41 AM
    最近好多人问我一些在使用NI公司数据采集设备时出现的一些问题。可是我自己也没有使用过这些设备,对于这种问题都无法给予帮助。
    我的主要精力是在研究LabVIEW编程语言本身的,纯软件方面的。比如程序的设计、算法、数据结构什么的。如果是在这些方面有问题,我会很乐于做更详细的解答。超出这个范围的,恐怕我都不在行。
    所以,对于大多数的困难,最好的求助方式还是去论坛发帖,在那里更有可能找到能够帮助你的人。或者直接打电话给NI公司,找专门的技术支持人员。
More...
View space
KISSY
View space
Luna
View space
王非
View space
毛晓义
View space
Nerco
View space
果子
View space
Jenna
View space
芳芳

Updated 5/2/2008
Updated 3/28/2008
Updated 2/28/2008
Updated 12/4/2006
Updated 12/27/2007

LabVIEW 面向对象程序设计的简介

    LabVIEW 的数据流驱动模式,与面向过程的编程思想有些类似。它们都是把程序看成是一组过程或功能的集合,LabVIEW 利用数据流控制这些功能执行的顺序。由于开发者可以随意的修改、调用这些功能模块,在程序开发的后段,模块之间的划分会变得模糊,依赖关系也变得无序。这种思想不适合大型程序的开发。
    面向对象的编程思想是专为解决这个问题提出来的。面向对象的思想大大提高了编程时的灵活性和可维护性。现在的大型程序中几乎没有不基于面向对象编程思想的。LabVIEW 为了适应这一趋势,也从 8.2 版本开始引入了面向对象程序设计的思想。

    面向对象有三大特征:封装、继承和多态。

    封装是把把高度相关的一组数据和方法组织在一起,形成一个相对独立的类。外部程序只能通过严格定义好的接口来访问类允许公开的数据和方法。而对于不需与外部发生联系的数据和方法,类会把他们隐藏和保护起来。这样就避免了面向过程编程过程中,函数模块常常被到处滥用以至于难以维护的弊病。
    初一看 LabVIEW 中的 Class 就会发现它很像 Cluster,肯定是在 Cluster 基础上发展来的。C++ 中的 Class 也是在 Struct 的基础上发展来的,而且,在 C++ 中,除了函数默认的权限不同,Class 和 Struct 是等效的。LabVIEW 中,二者还是截然分开的,Cluster 中只有数据,Class 中除了数据,还可以有方法。
    C++ 类中的成员变量可以是私有也可以是共有;为了安全起见,LabVIEW 中所有的数据都是私有的。必须通过公有的VI才能访问这些数据。
    C++ 的类拥有构造函数和析构函数;LabVIEW 的类没有这两个方法。

    继承是为了鼓励代码重用。不同的类可能拥有共同属性和方法,这些共性可以被抽取出来成为父类,被所有子类继承。
    C++ 的类支持多继承;LabVIEW 的类之支持单继承,与 Java/C# 相似。
    LabVIEW 中所有的类都有一个共同的祖先类,而 C++ 中没有。这点也与 Java/C# 相似。

    多态最早也是个遗传学概念,源自同一祖先的不同生物会表现出多种不同形态。在面向对象中,多态是指同一个方法,在不同子类中有不同的表现方式。多态可以简化我们的编程,比如:
    某几个子类都有同样一个继承自父类“动物”的方法“走”,而不同的子类,比如人类和狗类,“走”的是现实代码不相同的:一个使用两条腿,一个使用四条腿。而某一段程序调用到了这个方法,它不需要再针对人类或狗类非别编写代码了。只要使用父类中“走”这方法,程序就会自动根据输入对象所属的子类调用不同的“走”的实现。
    LabVIEW 的面向对象也实现了对多态的支持。

结构性面试

    面试官需要多长时间可以对应聘者是否易于相处、是否积极主动、交流能力等相关特质做出预测?根据调查人员做过这样一个实验①,抽选两组人作为面试官,一组面试官对每个应聘者只面试12~15秒钟,另一组面试官对每个应聘者面试20~30分钟。再随机抽取了近百个应聘者分别接受两组面试官的面试。结果,两组面试官对应聘者的评价几乎是一致的。这个实验证实,面试官其实只需要15秒钟就对应聘者产生了第一印象,剩下的半小时面试基本不能变先前留有的第一印象。
    这个实验比较容易重现,下次面试前,先跟应聘者聊上一两句,然后就在纸上记录下上文提到的几个特质。在完成半小时面试后,对照先前所做记录,看是否需要修改。

    这个实验也说明非结构面试的低效率,半个小时完成的工作和15秒钟没有太大分别。因此,非结构性的面试其实就是在浪费时间。
    所谓非结构性面试,就是面试官询问一些主观性的问题要求应聘者回答。比如:“你如何应对压力?”,“你的组织能力如何?”等等。非结构性面试对于应聘者今后工作能力的预测是非常不准确的。这主要是由于以下两个原因造成的:
    应聘者是有备而来的。你可以判断应聘者对非结构性问题回答的好坏,但是不能判断他们答案的真假。
    非结构性面试的结果基本相当于面试官对应聘者的第一印象,正如上文实验证实的那样。第一印象是在发现了应聘者一些显著特性之后,马上把他归为与自己相识的某人一类,主观以为二者在其它方面也类似。我跟同事讨论应聘者时经常听到说这个应聘者跟我们的某某同事很像之类的议论,这就是第一印象在起作用了。而实际上二者的工作绩效可能完全不同。

    改善面试对工作绩效预测的方法之一是采用结构性面试。结构性面试要求面试官针对招聘的职位,精心设计一套可以探知应聘者以往经历的问题。问题类型应当是情景回忆式的,即询问应聘者在某些几位具体的情景下,处理问题的过程。这样做的目的是为了尽量考察应聘者以往的经历,而不是他的主观想法。毕竟,预测一个人未来的最可靠依据是他的过去。
    结构性面试也不是百分之百准确的,但是跟踪调查的结果显示结构性面试的准确率比非结构面试高两倍以上参考②。已经非常可观了。

相关文章:
    面试官的面经
    如何有效地在面试中考察应聘者的能力
    生活随笔
    ① ② 引用自《心理学》David G. Myers 第12章

调用动态链接库 6 - LabVIEW 中对 C 语言指针的处理

    C 语言函数常有指针类型的参数,有时候,在 LabVIEW 中只能得到一个指向某个数据的指针。比如,在第4节里的一个例子:

#pragma pack (1)
typedef struct { char a; char* str; int b} MyStct;
MyStct* testStruct;
long TestStructure(MyStct* tempStct);

    在 LabVIEW CLN 节点中,就只能返回以整数类型表示的 str 的指针。
    很多时候,不需要在 LabVIEW 中得到指针指向内存的具体数据。对这些数据的操作是在DLL的函数中完成的。在LabVIEW中得到这个指针的地址,再把它传递到下一个 CLN 节点就可以了。

    如果必须在 LabVIEW 中得到指针指向的内容,只能借助 C 语言来完成。比如上面的例子,需要再写一个 C 函数,把函数 TestStructure 返回的 tempStct 结构中的元素拆开成简单数据类型,作为新的函数的参数(新函数中的一个参数就是 char* str,这样LabVIEW就可以识别了)。在LabVIEW 中调用这个新的函数,可以得到这些简单数据类型的数据。
    有些函数需要在外部开辟的一块内存中写入数据,LabVIEW 中没有分配内存的操作,也需要再写一个 C 的函数分配好内存,给被调用的函数使用。
    这个做法的缺点是针对每个需要得到内容的指针都要做个包装函数,相当麻烦。

    一个减少C代码的方法是:只编写一个C函数,负责把指针指向的内存中的数据以数组的形式读出,再在 LabVIEW 中把它们从新组织成合理的数据类型。这个方法其实更复杂,好在 LabVIEW 8.5 中自带的一些 VI 已经做了这个工作。如果你需要,不需要再额外的编写代码,直接用 LabVIEW 提供的 VI 就可以了。
    D:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\importsl\GetValueByPointer\GetValueByPointer.xnode 就是用来得到指针内容的一个VI。告诉它指针地址、数据类型,它就会返回正确的 LabVIEW 数据。比如下图中的示例:

image

    DLLMemory.dll:ReturnPointerToConstant 返回的是一个指针,指向我在C语言中声明的一个整数常量。把这个指针传给 GetValueByPointer.xnode 并且告诉它数据类型是I32,GetValueByPointer.xnode 就会得到这个指针指向的内容。
    D:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\importsl\ 中还有几个 VI 可以在调用DLL时起到帮助作用。比如,对于函数需要使用外部开辟的内存的,就可以使用 DSNewPtr.vi 开辟一块内存,然后把地址传递给这个函数。
    需要注意的是,这几个 VI 不是 NI 承诺给用户使用的,所以没有什么文档。所以需要用户自己研究它们的用法。

《我和 LabVIEW》目录

《易中天品三国》

    今天终于听完了全套的《易中天品三国》,这是我最喜欢的《百家讲坛》专题之一。喜欢它的原因之一是我非常欣赏易中天先生的历史观:分析评价一个历史人物的 时候应该避免做道德评价,而是进行科学分析。换句话说,研究历史是为了以史为鉴,吸取前人的经验教训。因此,就不应该把一个人历史上的功过归结为其道德的 善恶,而是更应该关注社会制度对人的影响。

     我从小受的教育,是用道德评价的方法分析一个人:好人干好事;坏人干坏事。小时候的每一个故事,每一部电影都在重复着同一个的模式:好人从里到外都美的像 朵花;而坏人不但鼻歪眼斜,并且一定要坏事做绝。我当时心目中的头号坏蛋是蒋介石,我以为中国所有的苦难都是他造成的,提起他恨得牙根都痒痒。当得知西 安事变中,好人一伙把蒋介石抓住又放掉之后,我简直懊恼的要吐血(大概跟林冲听说宋江放走高俅时的感觉差不多)。如果当时把这个第一反派一杀,咱们不是早 十三年就解放了?现在想来,那时候还真幼稚。不过毕竟年龄小嘛,容易被愚弄的。
    那些人如此钟情于给大家灌输道德来评价的观点,说明这个观点的确有可利用的价值:
    首先,它确实可以用在某些人身上。即便是最黑暗时代,也可能会找出那么一两个不同流合污的人,再加上后世点缀,他们俨然就成了完美无暇的君子。他们的所作的一切只能用道德高尚来解释。相反也有那么些人不论如何管制,都铁了心与社会为敌。
    其次,利用道德标准,可以轻易的为重大失误找到替罪羊。比如说:不是我们打不过日本人,而是因为汉奸太多。当汉奸就是因为他们的道德败坏;说他们道德败坏,是因为他们当了汉奸。当官的贪污受贿,也是因为他们道德差。

    我的看法是这样的,不论啥环境下都高尚的人也许是有的。但是道德是很难衡量和评价的东西,真善与伪善往往只有到了最后关头才分辨的出来,而到那时一 切就已经晚了。再有,绝对高尚和绝对卑鄙的人都是极其罕见的,刨去感情因素,着两种人所具有的都是“变态”的人格。我们不能指望这些极其个别的人对社会 产生太大作用。
    人性天生就有恶的一面,一旦环境适合,它就会滋生膨胀。任何一个人,在特定环境下,都有可能被内心恶的一面