如何将DataReader块配置为读取浮点数据?我使用了sig_source和DataWriter块来成功写入文件。由于我找不到DataReader块的描述,我的期望是它能够读取DataWriter块生成的文件。但是,当我尝试读取文件时,我没有看到任何数据生成。这是我遵循的程序:
我还尝试将一个块附加到DataReader的输出,以防RedHawk在数据从源流出之前需要接收器。这也不起作用。
编辑: 我执行了另一个实验来测试确定DataReader循环参数是否实际上是问题。在这个实验中,我将DataReader(指向原始文件)连接到DataWriter(指向新文件)。两个块的组件属性都是根据Youssef的帖子。我希望这能生成该文件的副本。结果很奇怪。新文件只有65536字节,而原始文件要大得多。它看起来似乎匹配65536个字节。此外,如果我删除新文件并尝试重新运行块,则没有输出(即不再创建文件)。为了第二次生成新文件,我必须从Chalkboard中删除DataReader块并重新加载它。
答案 0 :(得分:0)
我不确定你正在运行什么版本的REDHAWK但我最近在REDHAWK核心,IDE和&amp ;;的1.8.4和1.9.0版本中测试了DataReader和DataWriter组件。基本组件。这是我的设置:
波形1:
SigGen使用默认设置,python实现
DataConverter具有默认设置(需要SigGen输出Real double和数据Writer接收浮点数)
DataWriter的默认设置&文件名设置。
我启动并启动了波形并确认文件已写入。
波形2:
所有其他设置都保留为默认值
我启动了Waveform 2,启动了波形,并通过绘制端口输出确认数据流动。
一般来说,使用DataReader时需要注意以下几点。
将loop属性设置为true。播放可能发生得太快。请注意,loop属性是execparam即。必须在组件的进程启动时进行设置,以便在启动波形后或在IDE沙箱中进行设置。在设计波形时必须设置它。
如果您使用的是v1.8 IDE,请尝试绘制输出而不是使用端口监视器作为确认数据流的第二种形式。如果您使用的是v1.9 IDE,那么datalist工具将非常适合这种情况。进行100点捕获或连续捕获,它将位于端口上,直到数据点被推出端口并且已收集目标点数或用户已按下停止。
不要忘记将DataReader的play属性设置为true,并确保正确设置了complex属性。我认为复数默认为true,默认为默认。
如果您继续遇到问题,请告诉我们。
答案 1 :(得分:0)
DataReader只发送了64K的数据,因为它认为它在第一个pushPacket之后发现了一个EOF,这似乎是DataReader中的一个错误。
要发送大于64K的文件,您可以快速更改代码以使工作正常。在DataReader.py文件中($ SDROOT / dom / components / DataReader / python / DataReader.py)。找到(第44行?):
self.EOF = True
DataReader_i.initialize()方法中的。这应该是:
self.EOF = False