2015-12-14 5 views
8

Wie verwende ich MATLAB, um Signale an einen Port einer IP-Adresse zu senden?Wie verwende ich MATLAB, um Signale an einen Port einer IP-Adresse zu senden?

Tatsache ist, dass ich ein Roboterauto mit PC durch Wifi verbunden habe und ich habe entschieden, dass das Signal FF000400FF, das vom Roboter empfangen wird, das Auto vorwärts fahren wird. Ich habe dies mit TCP & UDP-Tools getestet und es war OK. Also ich denke, es hätte OK sein sollen, MATLAB auch dieses Signal zu senden.

mein Code:

t = tcpip('192.168.1.1',2001); 
fopen(t); 
a=dec2hex(1095216922879); %FF000400FF(H) 
fprintf(t,a) 

, aber es funktioniert nicht. Ich habe lange daran gearbeitet, bin aber gescheitert.

+2

Willkommen bei Stack Overflow! Bitte beachten Sie, dass "es nicht funktioniert" nie ausreichende Informationen sind. Gibt es einen Fehler? Passiert etwas? Was passiert anstelle des erwarteten Verhaltens? –

+0

Kein Fehler wird von der MATLAB gemeldet. Aber der Roboter-Auto bewegt sich einfach nicht.So frage ich mich, ob das Signal gesendet wurde.Und ich benutze ein TCP-Tool, um Tasche vom PC gesendet zu fangen.Es hat nichts gefangen.So vielleicht Da stimmt etwas nicht mit dem Code oder der MATLAB? DANKE! – Yancy

+2

Welchen Datentyp erwartet Ihr Roboter? Erwartet es wirklich String-Daten? – Daniel

Antwort

0

versuchen diese:

fwrite(t, [255, 0, 4, 0, 255]) 
0

Try this:

myhost = java.net.InetSocketAddress('192.168.1.1',2001); 
mysoc = java.net.Socket(); 
mysoc.connect(myhost, 2000); % Two second timeout 
connected=mysoc.isConnected(); 
if connected 
    mystream = mysoc.getOutputStream(); 
    mystream.write(hex2dec('FF000400FF')); 
    mystream.flush(); 
    mystream.close(); 
end 

mysoc.close(); 

Sie dies in einem Try-Catch-Block wickeln kann:

try 
... 
catch ME 
    if (isa(ME, 'matlab.exception.JavaException')) 
     reason = class(ME.ExceptionObject); 
     connected = 0; 
    end 
end 

Diese auf jeder Plattform, Desktop arbeiten sollten oder entfaltet. Wenn Ihr Auto als Antwort auf den Befehl etwas zurückgibt, können Sie es mit einem inputStream lesen. Das Beste von allem, Sie können den Text in Grund schreiben, wenn "es nicht funktioniert"!

Verwandte Themen