WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Kommunikation via TCP/IP mit RemoteControlServer-Hilfegesuch

 

jheimann
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 03.11.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2020, 12:42     Titel: Kommunikation via TCP/IP mit RemoteControlServer-Hilfegesuch
  Antworten mit Zitat      
Hallo,

Ich versuche die Kommunikation zwischen MATLAB R2019b und dem RemoteControlServer 2.1.0 (RCS) von Brain Products herzustellen.

[ https://www.brainproducts.com/index.php - HomePage
https://www.brainproducts.com/downloads.php?kid=2 - Download RCS + Manual
https://pressrelease.brainproducts.com/rcs/ - Press Release]

Das Problem ist, dass nach erfolgreicher Verbindung zwischen MATLAB und RCS via TCP/IP, die gesendeten Befehle nicht direkt beim RCS ankommen.

Das verwunderlichste ist, dass nach Trennung der Verbindung zwischen MATLAB und RCS und anschließendem Aufbau der Verbindung zwischen RCS und dem dazugehörigen RemoteControl Client die gesendete Nachricht beim RCS ankommt.
Als wäre der gesendete Befehl irgendwo auf der Strecke geblieben.

Die verwendete Software soll genutzt werden, um EEG-Experimente über einen einzigen PC zu steuern. Bisher waren immer zwei Systeme dafür notwendig. BrainProducts hat mit dem RCS jetzt neu die Möglichkeit eröffnet alles über einen PC zu steuern.
Für Testzwecke und zum Scriptschreiben versuche ich gerade den RCS an einem PC und MATLAB an einem zweiten miteinander zu verbinden und die Befehle zu testen.
Google, etc hat bisher keine Hilfe geliefert. Der BrainProducts Support konnte auch nicht weiterhelfen.


Genutztes System auf beiden Rechnern:
Windows 10 Pro - Dell
64-Bit
Intel Core i5-4590
8, bzw 12 GB RAM
+
MATLAB R2019b

Script:
Code:
% Schalte die Echo-Abfrage ein
echotcpip('on', 6700)

% Erzeuge ein TCP Objekt
t = tcpip('141.83.25.152', 6700);

% -- optional:
% t = tcpip('localhost', 6700, 'NetworkRole', 'server');
% set(t,'InputBufferSize',7500);
% set(t,'OutputBufferSize',7500);

% Öffne den Port
fopen(t);


% Schreibe einen String (Message) an den Server
fwrite(t, 'DIES SOLLTE EIN BEFEHL SEIN, DEN DER RCS BEKOMMT');
% -- optional:
% fwrite(t, 'M', 'char', 'sync');
% fprintf(t, 'M');

 
 
% Lese den Puffer aus
while 1
    if t.BytesAvailable > 0
        A = fread(t, t.BytesAvailable);
        % A = readline(t);
        % Zeige den Inhalt des Puffers an
        disp(char(A)');
        break;
    end
end

% Schalte die Echo-Abfrage aus
echotcpip('off');

% Schliesse den Port
fclose(t);

% Lösche das TCP Objekt
delete(t);
clear t;


Log Window des RCS auf PC Nr.2 :
[11:19:53.490] Start listening...
[11:20:00.303] Connection established!
[11:20:08.850] Connection BROKEN!
[11:20:08.865] Start listening...
[11:20:14.443] Connection established!
[11:20:14.443] Received: DIES SOLLTE EIN BEFEHL SEIN, DEN DER RCS BEKOMMTVM
[11:20:14.459] Sent: Command not supported:DIES SOLLTE EIN BEFEHL SEIN, DEN DER RCS BEKOMMTVM

Log Window des RemoteControl Client:
[11:20:14.299] Connecting... waiting for response...
[11:20:14.299] [11:20:14.299] Connection successfully establised!
[11:20:14.299] Sent: VM
[11:20:14.315] Received: Command not supported:DIES SOLLTE EIN BEFEHL SEIN, DEN DER RCS BEKOMMTVM

Vielen Dank für jedwede Hilfe!!!

VG, Jannik
Private Nachricht senden Benutzer-Profile anzeigen


jheimann
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 03.11.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2021, 10:37     Titel: Solved: Communication: MATLAB and Remote Control Server
  Antworten mit Zitat      
We have solved the problem described above:

(Control of EEG experiments via MATLAB, Remote Control Server and Brain Vision Recorder by Brain Products:)

Communication between MATLAB and Remote Control Server by Brain Products as follows:

Code:

t = tcpip('127.0.0.1', 6700); % modify ipaddress and port if necessary

% terminator is important!
t.Terminator = 13;

fopen(t); %, 'UTF-8');

% this is the important command
fprintf(t, 'VS');

% GetSecs is only useable via Psychtoolbox!
t0 = GetSecs;

% read answer from RCS
while 1
    if GetSecs - t0 > 3
        break;
    end
    if t.BytesAvailable > 0
        A = fread(t, t.BytesAvailable);
        % A = readline(t);
        % Zeige den Inhalt des Puffers an
        disp(char(A)');
        break;
    end
end

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.