调试:记录信息到磁盘gydF4y2Ba
使用记录功能gydF4y2Ba
记录到磁盘信息提供了一个永久的记录仪器控制会话,并调试应用程序的一个简单方法。虽然仪器对象连接到仪器,你可以记录这些信息到一个磁盘文件:gydF4y2Ba
值写入到仪器的数量,从仪器读取的值的数量,和数据类型的值gydF4y2Ba
数据写入到仪器和数据读取仪器gydF4y2Ba
事件信息gydF4y2Ba
你记录信息的磁盘文件gydF4y2Ba记录gydF4y2Ba
函数。与记录相关的属性信息下面给出到磁盘。gydF4y2Ba
记录的属性gydF4y2Ba
属性名gydF4y2Ba |
描述gydF4y2Ba |
---|---|
指定数量的信息保存到一个文件记录。gydF4y2Ba |
|
指定数据和事件信息是否保存到一个文件或多个记录文件。gydF4y2Ba |
|
指定记录文件的名称。gydF4y2Ba |
|
表明如果数据和事件信息保存到一个文件记录。gydF4y2Ba |
介绍记录信息gydF4y2Ba
这个示例创建了通用接口总线对象gydF4y2BaggydF4y2Ba
之间传输,记录的数量值gydF4y2BaggydF4y2Ba
和仪器,并存储到文件文本的信息gydF4y2Bamyfile.txtgydF4y2Ba
。gydF4y2Ba
g =通用接口总线(ni, 0,1);g。RecordName =“myfile.txt”;fopen (g)记录(g)流(g, ' * IDN ? ') = fscanf (g);gydF4y2Ba
仪器控制会话结束。gydF4y2Ba
文件关闭(g)删除(g)清晰的ggydF4y2Ba
使用gydF4y2Ba类型gydF4y2Ba
命令来显示gydF4y2Bamyfile.txtgydF4y2Ba
在命令行中。gydF4y2Ba
创建多个记录文件gydF4y2Ba
当你开始记录的gydF4y2Ba记录gydF4y2Ba
函数,gydF4y2Ba语言gydF4y2Ba
属性决定了如果创建一个新记录文件或者新信息附加到一个现有的记录文件。gydF4y2Ba
您可以配置gydF4y2Ba语言gydF4y2Ba
来gydF4y2Ba覆盖gydF4y2Ba
,gydF4y2Ba附加gydF4y2Ba
,或gydF4y2Ba指数gydF4y2Ba
。如果gydF4y2Ba语言gydF4y2Ba
是gydF4y2Ba覆盖gydF4y2Ba
,然后记录文件覆盖每次记录开始。如果gydF4y2Ba语言gydF4y2Ba
是gydF4y2Ba附加gydF4y2Ba
,那么新的信息附加到指定的文件gydF4y2BaRecordNamegydF4y2Ba
。如果gydF4y2Ba语言gydF4y2Ba
是gydF4y2Ba指数gydF4y2Ba
,创建一个不同的磁盘文件每次记录开始。的规则指定一个文件名进行记录gydF4y2Ba指定一个文件名gydF4y2Ba。gydF4y2Ba
指定一个文件名gydF4y2Ba
您指定的名称的文件记录gydF4y2BaRecordNamegydF4y2Ba
财产。你可以指定任何值gydF4y2BaRecordNamegydF4y2Ba
,包括一个目录路径,提供文件的名字是由您的操作系统支持。金宝app另外,如果gydF4y2Ba语言gydF4y2Ba
是gydF4y2Ba指数gydF4y2Ba
遵循这些规则,那么文件名:gydF4y2Ba
索引文件名字,都有一个号码。这个数字之前的文件扩展名和增加了1连续记录文件。gydF4y2Ba
如果没有指定数量的初始文件名,然后第一个记录文件没有与之关联的数量。例如,如果gydF4y2Ba
RecordNamegydF4y2Ba
是gydF4y2Bamyfile.txtgydF4y2Ba
,然后gydF4y2Bamyfile.txtgydF4y2Ba
是第一个记录文件的名字,gydF4y2Bamyfile01.txtgydF4y2Ba
第二个记录文件的名称,等等。gydF4y2BaRecordNamegydF4y2Ba
更新后的记录文件关闭。gydF4y2Ba如果指定的文件名已经存在,然后覆盖现有的文件。gydF4y2Ba
记录文件格式gydF4y2Ba
记录文件是一个ASCII文件,它包含一个记录的一个或多个仪器控制会话。您指定的信息保存到一个文件与记录gydF4y2BaRecordDetailgydF4y2Ba
财产。gydF4y2Ba
RecordDetailgydF4y2Ba
可以gydF4y2Ba紧凑的gydF4y2Ba
或gydF4y2Ba详细的gydF4y2Ba
。一个紧凑的记录文件包含值写入到仪器的数量,从仪器读取的数量值,值的数据类型和事件信息。详细记录文件包含前面的信息传输以及数据的工具。gydF4y2Ba
与精密的二进制数据gydF4y2BauchargydF4y2Ba
,gydF4y2BaschargydF4y2Ba
,(gydF4y2BaugydF4y2Ba
)gydF4y2Baint8gydF4y2Ba
,(gydF4y2BaugydF4y2Ba
)gydF4y2Baint16gydF4y2Ba
,或者(gydF4y2BaugydF4y2Ba
)gydF4y2Baint32gydF4y2Ba
记录作为十六进制值。例如,如果整数值255从仪器读取16位整数,00 ff十六进制值保存在记录文件。单-和双精度浮点数字记录使用十进制值gydF4y2Ba% ggydF4y2Ba
格式,使用指定的格式IEEE十六进制值gydF4y2Ba®gydF4y2Ba二进制浮点运算的标准754 - 1985。gydF4y2Ba
IEEE浮点格式包括三个组成部分——符号位,指数领域和重要领域。单精度浮点值由32位,价值是由gydF4y2Ba
值= (1)gydF4y2Ba标志gydF4y2Ba(2gydF4y2Baexp - 127gydF4y2Ba)(1. significand)gydF4y2Ba
双精度浮点值由64位,价值是由gydF4y2Ba
值= (1)gydF4y2Ba标志gydF4y2Ba(2gydF4y2Baexp - 1023gydF4y2Ba)(1. significand)gydF4y2Ba
组件和相关的单精度和双精度浮点格式部分下面给出。gydF4y2Ba
格式组件gydF4y2Ba |
单精度比特gydF4y2Ba |
双精度的部分gydF4y2Ba |
---|---|---|
|
1gydF4y2Ba |
1gydF4y2Ba |
|
2 - 9gydF4y2Ba |
2 -gydF4y2Ba |
|
10-32gydF4y2Ba |
13 - 64gydF4y2Ba |
例如,假设您使用单精度格式记录十进制值4.25。4.25记录文件存储为十六进制值40880000,从IEEE单精度浮点计算格式。重建原来的值,将十六进制值转换成十进制值使用gydF4y2Bahex2decgydF4y2Ba
:gydF4y2Ba
dval = hex2dec (40880000) dval = 1.082654720000000 e + 009gydF4y2Ba
将十进制值转换成二进制值使用gydF4y2Badec2bingydF4y2Ba
:gydF4y2Ba
bval = dec2bin (dval, 32) bval = 01000000100010000000000000000000gydF4y2Ba
的解释gydF4y2BabvalgydF4y2Ba
由前面的桌子上。最左侧显示的值是正因为(1)gydF4y2Ba0gydF4y2Ba= 1。下一个8位对应于指数,给出的gydF4y2Ba
经验= bval(9)经验值= 10000001gydF4y2Ba
的十进制值gydF4y2Ba经验值gydF4y2Ba
是2gydF4y2Ba7gydF4y2Ba+ 2gydF4y2Ba0gydF4y2Ba= 129。剩下的部分对应的重要,这是由gydF4y2Ba
significand = bval (32) significand = 00010000000000000000000gydF4y2Ba
的十进制值gydF4y2BasignificandgydF4y2Ba
是2gydF4y2Ba4gydF4y2Ba= 0.0625。你重建堵的十进制值的初始值gydF4y2Ba经验值gydF4y2Ba
和gydF4y2BasignificandgydF4y2Ba
IEEE单打的公式:gydF4y2Ba
值= (1)gydF4y2Ba0gydF4y2Ba(2gydF4y2Ba129 - 127gydF4y2Ba)= 4.25(1.0625)的价值gydF4y2Ba
信息记录到磁盘gydF4y2Ba
这个例子延伸gydF4y2Ba读写二进制数据gydF4y2Ba通过记录相关的信息记录文件。此外,给出了生成的记录文件的结构:gydF4y2Ba
创建一个工具对象gydF4y2Ba——创建通用接口总线对象gydF4y2Ba
ggydF4y2Ba
与国家相关仪器™GPIB控制器板指数0,和乐器主要地址1。gydF4y2Bag =通用接口总线(ni, 0,1);gydF4y2Ba
配置属性gydF4y2Ba——配置输入缓冲区接受相当大的字节数,并配置超时时间值占数据传输慢两分钟。gydF4y2Ba
g。InputBufferSize = 50000;g。超时= 120;gydF4y2Ba
配置gydF4y2Ba
ggydF4y2Ba
执行回调函数gydF4y2BainstrcallbackgydF4y2Ba
每次5000字节存储在输入缓冲区。gydF4y2Bag。BytesAvailableFcnMode =“字节”;g。BytesAvailableFcnCount = 5000;g。BytesAvailableFcn = @instrcallback;gydF4y2Ba
配置gydF4y2Ba
ggydF4y2Ba
使用详细信息记录到多个磁盘文件格式。第一个磁盘文件gydF4y2Ba定义为gydF4y2BaWaveForm1.txtgydF4y2Ba
。gydF4y2Bag。语言=“指数”;g。RecordDetail =“冗长”;g。RecordName =“WaveForm1.txt”;gydF4y2Ba
连接到仪器gydF4y2Ba- - - - - -连接gydF4y2Ba
ggydF4y2Ba
示波器。gydF4y2Bafopen (g)gydF4y2Ba
-
记录(g)gydF4y2Ba
配置范围将屏幕显示位图。gydF4y2Ba
流(g,硬拷贝:端口GPIB)流(g,硬拷贝:格式BMP)流(g,硬拷贝开始)gydF4y2Ba
启动异步读操作,并开始生成事件。gydF4y2Ba
readasync (g)gydF4y2Ba
instrcallbackgydF4y2Ba
每次调用5000字节存储在输入缓冲区。结果显示如下所示。gydF4y2BaBytesAvailable事件发生在09:04:33对象:GPIB0-1。BytesAvailable事件发生在09:04:42对象:GPIB0-1。BytesAvailable事件发生在09:04:51对象:GPIB0-1。BytesAvailable事件发生在09:05:00对象:GPIB0-1。BytesAvailable事件发生在09:05:10对象:GPIB0-1。BytesAvailable事件发生在09:05:19对象:GPIB0-1。BytesAvailable事件发生在09:05:28对象:GPIB0-1。gydF4y2Ba
等到所有的数据存储在输入缓冲区,然后将数据传输到MATLABgydF4y2Ba®gydF4y2Ba工作区为unsigned 8位整数。gydF4y2Ba
=从文件中读(g, g.BytesAvailable, uint8);gydF4y2Ba
录音状态切换gydF4y2Ba
在gydF4y2Ba
来gydF4y2Ba从gydF4y2Ba
。因为gydF4y2Ba语言gydF4y2Ba
值是gydF4y2Ba指数gydF4y2Ba
,记录文件名自动更新。gydF4y2Ba记录g (g)。RecordStatusans = off g.RecordName ans = WaveForm2.txt
断开和清理gydF4y2Ba当你不再需要gydF4y2Ba
ggydF4y2Ba
,你应该断开它的仪器,将它从内存和MATLAB的工作区。gydF4y2Ba文件关闭(g)删除(g)清晰的ggydF4y2Ba
记录文件的内容gydF4y2Ba
显示WaveForm1的内容。txt文件记录,gydF4y2Ba
类型WaveForm1.txtgydF4y2Ba
记录文件的内容如下所示。注意,返回的数据gydF4y2Ba从文件中读gydF4y2Ba
函数以十六进制格式(大部分的位图数据未显示)。gydF4y2Ba
传说:* -一个事件发生。>——一个写操作发生。< -读操作发生。1在09:03:53.529记录截止2000年6月18日。小端字节格式的二进制数据。2 > 18 ascii值。硬拷贝:港口GPIB 3 > 19 ascii值。硬拷贝:格式BMP 4 > 14 ascii值。硬拷贝开始5 * BytesAvailable事件发生在18 - 2000年6月——09:04:33.334 6 * BytesAvailable事件发生在18 - 2000年6月,在09:04:41.775 7 * BytesAvailable事件发生在18 - 2000年6月- 8 09:04:50.805 * BytesAvailable事件发生在18 - 2000年6月,在09:04:00.266 9 * BytesAvailable事件发生在18 - 2000年6月- 10 09:05:10.306 * BytesAvailable事件发生在18 - 2000年6月,在09:05:18.777 11 * BytesAvailable事件发生在18 - 38462年6月在09:05:27.778 12 - 2000 < uint8值。42 4 d cf 03 00 00 00 00 00 00 3 e 00 00 00 28日00 00 00 80 02 00 00 e0 01 00 00 00 00 00 00 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 00。 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 13 Recording off.