女儿的名字

虽然我的下一代影都还没有呢,但我未雨绸缪,已经开始为他们想名字了。由于干我这行的倾向于生女儿,目前只考虑了女儿的名字。

老婆是山东人,所以老早给女儿想了个名字叫“阮思齐”。我并不是很喜欢这个名字,理想的名字应当是:字不算太生僻,但组合起来却没有重名的。“思齐”这个名字网上一搜一大把,创意不够。

上个星期,回南京参加同学聚会。老同学得知我十年没跳槽,还在NI工作,跟我打趣说:“你打算在NI呆一辈子啦,将来生个孩子叫‘阮恩爱’得了。”
“阮恩爱”这名字不算常见,不过听起来像是韩剧里的人物,不好。再说了,也不能真把公司名挪来用啊。叫“阮恩爱”、“阮仪器”,将来孩子会恨我的。

不过这事还没完,回上海的路上,老婆说如果把你们公司名称里的“恩”“仪”两个字取出来做名字还是不错的。回到家Google上一搜还真没有叫“阮恩仪”的。我仔细想了想,这个名字还不错:常用字、无重名、有纪念意义,还带着台湾味,比韩版的好听多了。

【2010.12.06补记】老婆生了一个可爱的大胖小子,女孩名暂时用不到了。

 

Advertisements

LabVIEW 2009 新功能 – 传引用

以前版本的LabVIEW虽然也有多种方法可以让数据以引用的方式在程序间传递,但是用起来都有些麻烦。LabVIEW有了构建数据传引用的节点,大大简化了传引用的程序代码。

新添的有关传引用的两个节点在函数选板“Programing->Application Control->Memory Control”中,分别是“New Data Value Reference”和“Delete Data Value Reference”。“New Data Value Reference”用于创建一个数据的引用,“Delete Data Value Reference”可以从引用中取回原来的数据。

引用最主要应用于多线程程序中。如果两个线程同时对同一份数据进行修改,则必须使用传引用的机制。否则,使用值传递的方式,数据在数据线分叉的地方,就会编程独立的两份,之后在两个线程内分别修改的是两份完全独立的数据,没办法对同一份数据进行修改的。

比如下图这个程序,程序输入了一个数组,然后需要在两个并行的子VI中同时对这个数组中的数据进行修改。每个子VI可能修改了数组不同的元素,程序运行结束产生的数组应当把两个子VI中的修改都包含进来。因此,程序一开始需要数组数据生成一个引用,然后把引用分别传递到两个子VI中去。两个子VI都运行结束后,在从引用中取回数据。

LabVIEW中已有的函数还都是为值传递设计的,所以使用值传递少不了把数据取出、放回的过程。这以过程中,可能又会产生数据拷贝,效率会比较差。好在我们可以使用“In Place Element Structure”结构来处理从引用中取出、放回数据的过程。配合了“In Place Element Structure”结构使用后,LabVIEW会尽量使用数组原地址,而不是把从引用中取出的数据复制一份,这样就做到了传引用与效率的兼顾。比如下面两图中的程序,功能是完全相同的,但LabVIEW会对下面一幅图中的程序进行优化,提高效率。

 

《我和LabVIEW》补充与注释

Express VI 5 – 创建 Express VI 的框架

Express VI 有多种创建方式,但是普通用户只有唯一的一条途径来创建Express VI。LabVIEW中自带了一个专用于创建 Express VI 的工具,用户可以使用这一工具创建或修改Express VI。这个工具在LabVIEW的菜单“工具->高级->创建或编辑Express VI”下。

这个工具的主界面包含一张列表,列出以往创建过的一些Express VI。从列表上可以看到,一个Express VI有两个主要的功能VI组成:Source VI 和 Configure VI。Source VI实现的是Express VI 的功能;Configure VI实现的是Express VI的配置对话框。

我们可以在列表上双击Express VI这两个功能VI,然后对其修改。不过,为了更详细的演示Express VI的功能,我们还是从一个全新的Express VI说起。点击“创建或编辑Express VI”对话框上的“新建”按钮,将会弹出Express VI的创建向导,帮助我们一步一步创建出新的Express VI。我们可以选择从零做起,也可以以一个已经存在的VI或Express VI为模板,在基础上创建Express VI。

我们选择从空白VI开始,创建一个和LabVIEW已有的“时间延迟”功能类似的Express VI来。点击“下一步”,向导提示为新Express VI起一个名字。

再点击“完成”,一个空白的Express VI就创建成功了。它的Source VI和Configre VI还都是一个空架子,需要进一步添加内容才可以成为具有一个功能的Express VI。

返回《我和LabVIEW》的补充内容