[Code Share]如何用LabVIEW取得计算机主频

大部分Windows下程序都是使用计算机计时器计算CPU主频,(当然也可以跑个算法自己算)最基础的就是这个了:

  • 使用Win32API取频率

好处是功能简单速度快,下面代码没做返回值处理,如果计算机没有高精度计数器(这个可能性比较小)有可能出不来频率,详细可以去看MSDN:

WINAPI QueryPerformanceFrequency

  • .NET  利用WMI获取系统信息

这个接口是使用系统信息(C:\Windows\System32\msinfo32.exe)能拿到的信息更多,不过方法复杂,速度也慢。

 

System.Management.ManagementObjectSearcher

这两个算法都在Win7 32bit,LabVIEW2009SP1下测试通过。

博客升级至Wordpress

微软的网络战略总是变来变去,而功能更新总是极其缓慢,和其他网站竞争总是处于不利地位,终于MSN Space就要被砍掉重练,M$要玩SNS了。

前前后后也用了不少blog,基本上没有什么太好的选择,国内的说倒就倒了,不倒的隐私也是个问题,国外的不是被墙就是速度不理想,终于趁着MS脑抽升级到Wordpress.com了。还好YO2原来玩过一段时间WP,上手还算简单。

看见这个帖子的大家可以测试一下留言,以前MSN的space留言经常被吃掉,希望这个能好一些。速度就不报什么希望了,只希望晚一点被墙吧。

顺便骂一下Windows Live Messenger 2011的开发人员,每次升级干的两件事就是UI大变+功能缩水,不知道回头是不是要把聊天的功能也砍掉。

记得8.5的时候有个共享文件夹的功能,局域网共享东西还是很给力的,结果2009的时候砍掉了。

然后2009搜索联系人是可以搜索昵称中间的,比如ABC 搜索BC也能出来搜索AB也能出来,结果2011果断悲剧了。

还有2009包括以前的所有版本双击主界面左上角是能滚到后台的,2011果断就关闭了。以前是阴魂不散,现在突然玩消失还真是谢谢啊!

image

唯一长进的地方就是能排排坐吃果果了

image

LabVIEW 2010图标编辑器与库技巧一则

LabVIEW 2009时一个很方便的改进是图表编辑器支持图层,2010版本里又大幅强化了不少:

例如支持图层的复制粘贴,自定义图表模板和图例.

image

对于库(包含LabVIEW Class, X Control)等来说一个很方便的特性是可以批量修改库中VI(包含自定义控件)的模板

通过这一点我们可以简化图标设计的工作:

image

1.首先设计库图标模板:

在库上右键,选择属性,点击编辑图标

image

a)首先选择库模板

image

b)填充颜色

image

C)编辑文字

image

点击OK返回库属性,再点击OK提交图标,LabVIEW提示是否应用至库中其他VI,选择YES

image

2 编辑VI图标:

此时库中VI图标包含如下图层

image

a)首先我们隐藏掉图标编号

image

b)然后选择合适的图标

image

C)填写说明文字

image

这样一个图文并茂,风格统一的Icon就轻松完成了,可以看到利用LabVIEW2010的图层功能,加上良好的程序架构,优美的代码就在我们手中。

imageimage

快速放置快捷键

LabVIEW 2010发布以后无意中发现一个”古老”的新功能:快速放置

这个功能的默认快捷键在LabVIEW英文版下是Ctrl+空格,和输入法切换的快捷键冲突了,因此一直没有使用过,

LabVIEW 2010的中文版将这个快捷键修改为Ctrl+Shift+空格,就可以比较方便的调用了,

LabVIEW 默认的键盘快捷键已经将26个字母全用完了,因此一些不是最常用的功能就放到了快速放置里:

键盘快捷键 说明
Ctrl-D 当快速放置对话框为活动状态时,为选中程序框图对象所有未连接的输入和输出创建输入或显示控件。
Ctrl-Shift-D 当快速放置对话框为活动状态时,为选中程序框图对象所有未连接的输入和输出创建常量。
Ctrl-R 当快速放置对话框为活动状态时,移除选中的程序框图对象和与之相连的控件和常量,并连接删除对象输入输出类型相同的接线端。
Ctrl-T 当快速放置对话框为活动状态时,将前面板控件的输入标签移至控件左边,将前面板显示控件的标签移至控件右边。
Ctrl-P 当快速放置对话框为活动状态时,将选中的前面板或程序框图对象替换为快速放置对话框中选中的对象。
Ctrl-I 当快速放置对话框为活动状态时,在程序框图选中的连线上插入快速放置对话框中选中的对象。
Ctrl-Shift-I 当快速放置对话框为活动状态时,在选中的多条连线上插入快速放置对话框中选中的对象。
Ctrl-B 当快速放置对话框为活动状态时,将选中属性节点、调用节点、类说明符常量的VI服务器类改为在快速放置窗口输入的类。
Ctrl-Shift-B 当快速放置对话框为活动状态时,将选中的属性节点/调用节点的属性/方法转换为快速放置窗口键入的属性或方法。

另外LabVIEW的快捷键时可以在选项里面修改的,个人最喜欢的就是Ctrl+`这个组合,比较冷僻,一般不会冲突。

image

批量安装LabVIEW及组件

有了命令行我们只不过节约了几下鼠标,还要安装好一个组件之后再手动装下一个组件,还是很麻烦,有没有什么省事的办法呢?

当然有,我们有请批处理文件(*.bat)出场.

![image](https://aftv2q.bay.livefilestore.com/y1mqqNVZcgJPai7kLPfP-bwMXNiRj29p8OYhJkPI15R4vn-ro4qQ2lmU7LvHK1j8vfdh80QCLBLHUUlNPZ8CGUSbKVIA0-GWa2ehglraOPJmcCneWxwzrX6qOYGMC-_ATAVTbAGb9Tm6YnLhpCHrvT4lA/image_thumb[3] 61095F84.png “image”)

[![image](https://aftv2q.bay.livefilestore.com/y1mi-lnu06Lw7420S6HuMj8vWvDELiUrYj5iFZh4uw6XG8ORN_jYecm_QDrc07hu3RGxH1HiXUe6FW4TdMn3h6mhcfBrgK-V3dyrx033bkzAzVBJlOr23tK3rI6MB8wA1ukQGmrQh3218WNIc-kGtsWaw/image_thumb[5] 2B50062B.png “image”)](https://aftv2q.bay.livefilestore.com/y1mvtOis4jV9Le2-VIxUzE8D0cQwamCCNhUO-ndQNg3MCQ5ElsW3S70crQNR2pKO9BgeMwPvD8QNK3VYn2isBius6dsvpwOoV9sIEVwNuy8T8wC246WqxJpAudZsF1O0INPxzTdfRK85AWTO7BTzcLePg/image[11] 0C99DDE7.png)

对于上面这种情形,我们只要建立一个文本文件,输入以下内容,命名为Install.bat双击运行就可以一次安装LabVIEW2009SP1,实时,控制设计仿真等软件:

"o:NI SoftwareLabVIEW 2009 SP1LabVIEW 2009 Service Pack 1 32-bitsetup.exe" /qb /acceptlicenses yes /disableNotificationCheck /r:n
"o:NI SoftwareLabVIEW 2009 SP1LabVIEW 2009 SP1 Real-Time Modulesetup.exe" /qb /acceptlicenses yes /disableNotificationCheck /r:n
"o:NI SoftwareLabVIEW 2009 SP1LabVIEW 2009 SP1 Control Design and Simulation Modulesetup.exe" /qb /acceptlicenses yes /disableNotificationCheck /r:n

假如安装包放在其它计算机的共享里面呢?可以使用命令行把共享映射到本地驱动器:

net use o: \pansinoagtreadonly

image

这样我们就可以让他自己安装,而不需要我们操心了。

快速安装LabVIEW

通常我们安装LabVIEW最常干的事情就是不停点的下一步,然后等进度条,然后再不停的点下一步,再等待进度条,最后重启。

image image image image image image

其实LabVIEW是支持命令行安装的

在CMD里面运行SETUP.EXE加上不同的参数就可以实现快速安装,例如下面这条就是快速安装LabVIEW到C盘并且装完不重启

D:NI SoftwareLabVIEW 2009 SP1LabVIEW 2009 Service Pack 1 32-bit>setup.exe /qb /acceptlicenses yes /disableNotificationCheck /r:n

一旦运行就直接开始扫进度条

image

一个更简单的办法是创建Setup.exe的快捷方式,然后再目标后面直接加上 /qb /acceptlicenses yes /disableNotificationCheck /r:n

image

这样可以减少我们鼠标点击的次数…

最省事的办法还是建立一个批处理文件,批量安装多个软件~

image

LabVIEW 2009 SP1已经可以下载

下载地址:(须注册)

https://lumen.ni.com/nicif/us/evallvmaint/content.xhtml

据说修正了不少错误,比较令人郁闷的是需要用下载器下载,还好我猜测出了实际下载地址。

因为牵涉到NI的版权问题,我就不放出实际的下载地址了,大家自己试验吧,还是有迹可寻的。

对应的DCD可以在ftp://ftp.ni.com/support/drivercd/找到,

Index of /support/drivercd/

Name
Size
Date Modified

[parent directory]

2008.08/ LabVIEW 8.6
9/22/08 7:31:00 PM

2008.11/
7/1/09 9:39:00 PM

2009.02/ LabVIEW 8.6.1
2/6/09 5:02:00 PM

2009.08/ LabVIEW 2009
7/17/09 4:31:00 PM

2009.11/
11/15/09 7:57:00 PM

2010.02/ LabVIEW 2009 SP1
1/26/10 10:58:00 PM

2010.08/ LabVIEW 2010
1/22/10 5:38:00 PM

2010.02目录就是LabVIEW2009SP1的对应驱动。可以看到已经出现了八月的站位目录,LabVIEW 2010应该正在Beta测试中,预计八月份就可以正式发布。现在NI的开发工具还是保持着一个快速演进的生命周期,还是非常有活力的,每年一个大版本升级能不断加入新的特性和功能,小版本修正错误。

As of August 2010, new LabVIEW releases will no longer support:

  • Windows 2000
  • Mac OS X 10.4

    1 Prior to LabVIEW 2009, LabVIEW was only a 32-bit application that was compatible with Windows Vista x64 through Windows on Windows (WoW) 64. LabVIEW 2009 and later will provide both 32-bit and 64-bit versions of the LabVIEW development environment.

    而微软还是保持2~3年一代Visual Studio的速度发布,基本上和操作系统相差半年左右。VS2010预计4月份完成,针对Win7和2K8R2开发,个人的感想是.net开发终于进入一个比较成熟的阶段,VS本身也应用了.net来开发,OS也普遍内置.net,以后普及就比较快速了。

http://support.microsoft.com/lifecycle/search/?sort=PN&alpha=Visual+Studio

http://tech.it168.com/a2009/1208/821/000000821252.shtml

总体来说LabVIEW的演进和Visual Studio越来越像,不断地拓展新功能和增加新特性,推动技术的发展和进步。

最后提醒一下 LabVIEW2009SP1是一个收费升级,安装需要重新激活软件。

关于LabVIEW 2009图标编辑器技巧两则

LabVIEW2009的图标编辑器在书写字符时会出现模糊的现象

![image](https://aftv2q.bay.livefilestore.com/y1m80sTh9OID-hm_xBpKcQJPf8_l_40wO8nkraFJxyFseIXlBkmBq6Vj0WvgUUJRsb4Hu6IyDvmuyjJ5oSATC62_cykAwMJ_B852vsgnYTj3FYtTjnYLFL_pgHzx0IgBXG85Y_BTw4lQy5CJIHojMzYrg/image[11] 264EED05.png “image”)

这个BUG是Cleartype导致的,Cleartype是一种LCD优化显示技术用来平滑字体,在大屏幕上显示大号字体也不会有明显的锯齿,但是对于小号字体就会有模糊的现象。

IE8中就强制打开了这一技术来获得更好的观感。(说句题外话,虽然我现在主浏览器是Google Chrome,不过对页面渲染效果最好的还是IE8)

如何解决呢?XP在我的电脑上右键,选择属性

image

在高级标签页选择设置

image 

在视觉效果里关闭平滑字体边缘。

Windows7/Vista在控制面板里搜索ClearType

image

取消打开Cleartype。

image

这样打出来的字就不会模糊了。

image

关于Cleartype的一些相关链接。

Wiki的介绍

http://en.wikipedia.org/wiki/ClearType

M$自家的介绍

http://www.microsoft.com/typography/cleartypeInfo.mspx

XP的Cleartype在线调节工具

http://www.microsoft.com/typography/cleartype/tuner/step1.aspx

离线版

http://www.microsoft.com/typography/ClearTypePowerToy.mspx

另外,关于图标编辑器禁用的办法:

 http://ruanqizhen.spaces.live.com/blog/cns!5852D4F797C53FB6!4848.entry

我个人觉得LabVIEW最好的办法是支持标准的图标文件,这样可以更加开放。例如M$的VisualStudio图标编辑器其实就是第三方的Axialis _IconWorksho_p

还需要增加更大分辨率和颜色数的支持,能够在图标里提供更多的信息,像LabVIEW Lego开发软件的图标就很有特点。当然这个工作量就非常巨大了,需要修改大量的图标。

[火星技巧]如何删除LabVIEW VI 程序框图?

我们为了保护代码,比较常用的办法有以下几个:

1。框图混淆:这个是最简单的办法

![LabVIEW diagram protect](https://aftv2q.bay.livefilestore.com/y1mW78VLyOAk-HYGJzedM__H9TNoOvHktwgiyEoe3U5guxLvzYvMHV5_7CIHqGgPO5tqsdJwG6oIhjNC-zuB6Boe_QVFk2whDyHTYP53qWOsPwJ5z2wDSMn5eSUFWCjb_wqV0K7U11fnfs39h6pIkYC8g/LabVIEW diagram protect[5].png “LabVIEW diagram protect”)

不过随着LabVIEW2009的一键框图整理就没有什么意义了。

2。加密:缺点是如果获得密码还能被修改

image

3。编译为EXE:无法修改,但是也无法被调用。

image

4。删除程序框图:无法编辑但是可以被同版本LabVIEW调用。

具体操作步骤:

1。新建工程

image

2。新建空白主VI

image

3。添加被处理VI

image

4。创建应用程序,添加启动VI和支持VI

image

5。源文件设置:**被处理VI选择目标到支持目录,还可以配置是否需要删除前面板和程序框图**

image 

6。生成程序

image

该VI可以被打开和调用但是无法被编辑,也无法察看程序框图。

image

LabWindows/CVI2009 MeasurementStudio2009 Evaluation