我正在将一个数据矩阵保存到一个bin文件中,并且有些时间(这是奇怪的部分)它交换了最后一行,它显示为第3行或第4行。不一致。 系统实时运行存储放大器的数据。放大器发送样本包,在一个包中每个(9)个通道有1个样本,第9个是特殊信号。
这是基本结构:
using (FileStream fs = new FileStream (path, FileMode.Create))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
while(recording)
{
packages = readData();
foreach(Package package in packages) //packages of 9 floats
{
foreach(float sample in package)
{
binaryWriter.Write(sample)
}
}
}
}
}
这就是我从bin文件中读取数据的方式。
using (FileStream fs = File.OpenRead(path))
{
int numElems = (int)(fs.Length / sizeof(float));
int numChannels = 9;
numElems = numElems / numChannels;
using (BinaryReader br = new BinaryReader(fs))
{
for (int col = 0; col < numElems; ++col)
{
data.Add(new List<float>());
for (float elem = 0; elem < numChannels; ++elem)
{
data[col].Add(br.ReadSingle());
}
}
}
}
在那里,我发现有时,特殊信号ara在chennel num 4而不是最后的第9个通道。
有任何线索吗?可能是因为一些缺失的样本使整个事情变得困难和转移或......某事?