Labview_Note_2

1.TDMS文件读写

TDMS写入文件可以支持以下数据类型:
一维数组、二维数组。数组的元素类型可以是:有符号或者无符号的整数;单精度、双精度或扩展精度数值;不包含空字符的字符串由数字和字母组成的字符串;时间标识;布尔。
波形,或一维、二维波形数组。
数字表格。
动态数据。
简单写入TDMS文件请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

2.压缩文件

请添加图片描述
需要注意的是,添加文件到ZIP文件函数中“ZIP文件目标路径是需要相对路径”,可以采用FILE→高级函数→两路径比较函数来产生相对路径。

3.File Dialog

请添加图片描述
在这里插入图片描述

Button Lable :接确定按钮中的文本;Prompt:接弹出对话框提示;default name:接默认选中的名字;Pattern:接选择文件的类型,如*.txt、*.*;pattern name:接用户选择类型提示。

4.Read Text File

在这里插入图片描述
按图中进行txt文本写入和读取时,读取txt读取不到任何字符,并且未返回错误。该做法需要注意。
右键选择读取行,在count上未连接的话,读取单行并返回字符串类型输出,在count上连接-1,则读取所有行并返回字符串类型的数组。
在这里插入图片描述
在这里插入图片描述

如未通过右键单击函数在快捷菜单中取消勾选转换EOL选项,该函数将把所有基于平台的行结束符转换为换行符。

5.动态注册事件与用户事件

用户事件的创建流程:创建用户事件→注册用户事件→产生、处理用户事件→取消注册事件→销毁用户事件。
动态注册事件与用户事件的异同:动态注册事件与用户事件都是通过注册事件事件函数实现的;不同的是输入参数,动态事件输入的是控件的引用,而用户事件是用户的引用。
Labview 例程中的动态注册事件中的 VI的非法引用句柄在Labview前期版本内是有鼠标移动事件的,在后期版本内没有,将此换为窗格引用就可以,在2018版本中可行。

6.队列与数据缓冲区的异同

都是先进先出的FIFO结构
初始化后都是没有数据的
数据缓冲区与队列装满数据后,数据缓冲区自动移出进入缓冲区的数据,队列则是要求如队列的线程被动等待,直到队列中有别的线程取出数据,才会新入队列

7.Labview 读取和写入Excel文件

请添加图片描述

通过设置Get Worksheet函数可以指定读取Excel中某一个工作表。通过设置Get Data函数中的start可以指定开始读取的位置。 Start与End均不设置时,该函数会读取这个Excel表格,行列的坐标索引均从0开始,仅设置Start时,只能读取一个一维数组,当与End搭配使用时,可以读取二维数组。

Excel写入
在这里插入图片描述
合并单元格
该函数的作用为,Excle单元格合并功能,只需要设置好Start与End。
写入表头
写入Excel表头,在Title中写入要输入的表头并设置其Start与Font。

将字符串写入单元格
适合写入单个单元格的函数,当其起始位置均设置后,会将起始位置范围内的单元格进行合并。并会返回当前函数执行完后的下一个空白单元格左下角与右上角的行列信息。
将二维数组写入单元格
适合写入二维数组,写入时可以指定数据的行首和列首的信息。
设置单元格边框的颜色和粗细
根据设置的起始位置,设置单元格边框的颜色及粗细。
设置单元格对其方式
根据起始位置设置单元格水平与竖直方向的对齐方式。

8.Word 文件的写入和读取

Word文件的写入与Excel文件大同小异,在读取上Labview并没有读取的相关函数,只可以调用ActiveX。
在这里插入图片描述

9.右键快捷菜单的设定

对于表格或者多列列表框,在某些场合需要自定义设定其右键快捷菜单的内容及其功能,以下为多列列表框的设置方法:
在这里插入图片描述
在事件结构内设定多列列表框的快捷菜单激活事件,删除默认的菜单项,并插入自定义的菜单标识符,此时就可以在运行时看到其效果,需要注意的是每次右键时都会触发该事件,对于移位寄存器内的数据要做好相应的保护。

在这里插入图片描述
然后在对应控件的快捷菜单选择中设定对应动作的处理。2018_32位下载地址:https://download.youkuaiyun.com/download/weixin_45052358/85172103

10.TCP与UDP

TCP读取:TCP为流控制传输,会将未读取的数据放到缓冲区内,所以当读取时可以选择将TCP缓冲区内的所有数据都读取出来,然后根据数据的特征进行解析。此也可以用来清空TCP缓冲区,将超时设置1ms,然后清空错误即可。
UDP读取:UDP为报文传输,所以在读取时可以选择直接最大字节数去读取每次读取只能读取一包数据,该包数据的大小取决于发送方。但是UDP在Labview中无法一次全部将数据读取出来,只能不断的读取,然后将读取出来的数据存起来,防止UDP缓冲溢出后,新的数据进不来的情况。
打开本地UDP对应端口后,即使不读取数据,其他端口传过来的数据也会先暂存到数据接收缓冲区。

### LabVIEW与电子琴交互开发 #### 使用LabVIEW进行电子琴开发的关键要素 在使用LabVIEW进行电子琴开发时,主要涉及硬件接口设计、信号处理以及用户界面创建等方面的工作。对于硬件接口部分,通常会涉及到MIDI协议的应用,因为大多数现代电子键盘设备都支持此标准[^1]。 #### MIDI协议简介 MIDI(Musical Instrument Digital Interface)是一种用于连接音乐合成器和其他音频设备的标准通信协议。它允许不同品牌和类型的乐器之间交换音符信息、控制指令以及其他数据。当利用LabVIEW来构建基于计算机的控制系统并与实际物理按键互动时,理解并正确实现该协议至关重要。 #### 创建简单的LabVIEW VI以读取来自电子琴的数据 下面是一个基本的例子,展示了怎样编写一个VI程序去接收由外部连接到PC上的USB-MIDI适配器发送过来的信息: ```labview // 初始化MIDI输入端口 Init_Midi_Input(); while (true){ // 获取下一个可用的消息事件 Midi_Message msg = Get_Next_Event(); if(msg.type == NOTE_ON || msg.type == NOTE_OFF){ // 处理音符开闭消息... // 更新前面板显示当前演奏状态 Update_Display(msg.note, msg.velocity); } } ``` 这段伪代码片段仅作为概念证明;具体细节取决于所使用的特定版本LabVIEW及其附加库函数的支持情况。此外,在真实项目里还需要考虑错误检测机制等问题。 #### 实现更复杂的功能——录制回放功能 为了增加更多实用性,可以尝试加入录音特性,即捕获一段时间内的所有键位活动并将它们保存下来供以后重播之用。这可以通过记录每条接收到的消息的时间戳,并按照时间顺序重新发出这些命令来完成。 ```labview // 录制模式下收集所有的MIDI事件 Recorded_Events record[]; void Start_Record(){ Clear(record); // 清空之前的录影资料 while(recording_flag){ Midi_Message msg = Wait_For_New_Event(); Append_To_Record(&record,msg,System_Timer()); } } void Play_Back(){ foreach(event in record){ Send_Midi_Msg(event.message); Sleep_Until_Time_Passes(event.timestamp); } } ``` 以上两段代码提供了关于如何扩展基础应用程序的一些思路。当然,完整的解决方案可能还会牵涉到更多的组件和服务,比如图形化编辑工具或是与其他多媒体资源集成的能力等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值