2017-09-28 166 views
0

現在、外部デバイスからデータのパケットを受信して​​いて、別のデバイスにデータを送信しようとしています。しかし、私はMatlabでそれをコード化する方法がわかりません。UDP Matlabを受信して​​送信

MATLABでUDP受信ブロックのパラメータは、この画像に示されている UDP Receive Parameters

私がこれまでに同じリンクを作るために持っているコードは、私は読むことができるようにしたい

echoudp('on', 25000) 
u = udp('0.0.0.0', 25000) 
fopen(u) 
while True 
A = fread(u, 8156, 'unit16') 
end 

ですデータを継続的に印刷して印刷します。しかし、フリーダはこれまでどんなデータも私には与えていませんが、Simulinkモデルはうまく動作します。どこが間違っているのか?

答えて

0

これは動作するはずです:これは、連続(非同期)を設定

clc(); 

echoudp('on',25000); 

u = udp('127.0.0.1',25000); 
u.InputBufferSize = 10000; 
u.OutputBufferSize = 10000; 
u.ReadAsyncMode = 'continuous'; 
u.BytesAvailableFcn = @BytesAvailable_Callback; 
u.BytesAvailableFcnMode = 'terminator'; 

fopen(u); 

if (~strcmp(u.Status,'open')) 
    NetworkError(u,'Connection failed!'); 
end 

try 
    for i = 1:10 
     fprintf(u,'Hey!'); 
    end 
catch e 
    NetworkError(u,['Communication failed! (' e.message ')']); 
end 

pause(1); 

NetworkDispose(u); 

function BytesAvailable_Callback(u,evt) %#ok<INUSD> 
    data = fscanf(u); 
    disp('Data Received!'); 
    disp(data); 
end 

function NetworkDispose(u) 
    fclose(u); 
    delete(u); 
    clear u; 

    echoudp('off'); 
end 

function NetworkError(u,msg) 
    NetworkDispose(u); 
    error(msg); 
end 

UDP上でリスニング。詳細はthisをご覧ください。

関連する問題