2015-12-14 7 views
8

Come utilizzare MATLAB per inviare segnali a una porta di un indirizzo IP?Come utilizzare MATLAB per inviare segnali a una porta di un indirizzo IP?

Il fatto è che ho collegato un'auto robotica con il PC tramite WiFi e ho deciso che il segnale FF000400FF ricevuto dal robot guiderà l'auto in avanti. Ho provato questo da strumenti TCP e UDP ed era OK. Quindi penso che avrebbe dovuto essere OK usando MATLAB per inviare anche questo segnale.

il mio codice è:

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

ma non funziona. Ho lavorato su questo a lungo ma ho fallito.

+2

Benvenuti in Stack Overflow! Si noti che "non funziona" non è mai un'informazione sufficiente. C'è un errore? Succede qualcosa? Cosa succede al posto del comportamento previsto? –

+0

Nessun MATLAB riporta errore. Ma la macchina del robot non si muove. Quindi mi chiedo se il segnale è stato inviato. E io uso uno strumento TCP per prendere la busta inviata dal PC. Non ha catturato nulla. Forse c'è qualcosa di sbagliato nel codice? o nel MATLAB? GRAZIE! – Yancy

+2

Quale tipo di dati si aspetta il tuo robot? E 'davvero in attesa di dati stringa? – Daniel

risposta

0

provare questo:

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

Prova questo:

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(); 

si può avvolgere questo in un blocco try cattura:

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

Questo dovrebbe funzionare su qualsiasi piattaforma desktop o schierato. Se la tua auto restituisce qualcosa in risposta al comando, puoi leggerlo con un inputStream. Meglio di tutti, puoi postare il testo nella ragione se "non funziona"!

Problemi correlati