我尝试通过tcp连接将matlab与流连接起来,问题是tcp连接错误来自流式传输的数据太多。我想一次读47个整数,这就是为什么我添加循环等到BytesAvailableFcnCount
的值大于47 * 4(假设整数是4个字节)的原因,同样matlab给我以下警告:
Warning: Unexpected Warning: A timeout occurred before the Terminator was reached
这是代码:
`function data = get_data()
t = tcpip('127.0.0.1', 5000);
t.BytesAvailableFcnMode = 'byte' ;
t.BytesAvailableFcnCount =47*4 ;
fopen(t) ;
t.Timeout = 20 ;
while (t.BytesAvailableFcn < 47*4)
end
data = fscanf(t, '%d', 47);
dlmwrite('test.dat',data);
x = 1 ;
while (x ==1)
while (t.BytesAvailableFcn <47*4)
end
data = fscanf(t, '%d', 47)
end
`
答案 0 :(得分:0)
您正在混淆BytesAvailableFcn
和BytesAvailable
。 BytesAvailableFcn
是一个由你设置的回调函数,BytesAvailable
返回可用字节数。