For a Udp connection, while loop does not work. Code gives no error.

I am extratcing data from a file and receiving it on matlab via udp connection. I have written doen a code which works perfectly fine when I run it step by step. BUt when I run it as a whole while loop doesn't seem to work. Here is the code:
port=50021;
smartmeter = smartHES(port);
smartmeter.InitiateSocket();
dataAmount=0;
dataHistory=[];
pause(0.1)
byteav=smartmeter.smart.BytesAvailable;
while byteav
[smt]=smartmeter.readDATA();
dataHistory=[dataHistory smt];
fprintf('data is being read on port %d amount now %d\n',port,dataAmount);
end
What should I do to get this code running by just pressing run button. Further I will use this code for several ports using spmd.

5 个评论

you do not update, byteav in your loop, or dataAmount
Ports=[50021,50661];
n=2;
parpool('local',2,'AttachedFiles',{'smartHES.m'})
port = Composite(n);
for i=1:2
port{i}=Ports(i);
end
dataAmount=0;
dataHistory=[];
spmd
smartmeter = smartHES(port);
smartmeter.InitiateSocket();
byteav=smartmeter.smart.BytesAvailable;
while byteav
[smt]=smartmeter.readDATA();
dataHistory=[dataHistory smt];
fprintf('data is being read on port %d amount now %d\n',port,dataAmount);
dataAmount= dataAmount+1;
if byteav==0
disp('no data available to be read')
end
completedata = dataHistory;
end
smartmeter.NetworkDispose();
end
I tried the above code but still it does not work. Even if I don't use spmd, and run only for 1 loop, I have to run it section by section then it starts running and I have to stop it manually.

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Parallel Computing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by