Как успешно прочитать мое соединение tcpip - PullRequest
0 голосов
/ 01 февраля 2019

Несколько месяцев назад я реализовал функцию, которая отправляет данные из Matlab в захват Weiss WSG50.Это роботизированный инструмент захвата и использует двоичные коды в качестве команд.Я установил соединение с функцией tcpip.Я написал свои команды и отправил их с «записать» в виде uint8-данных в захват.Мой объект tcpip является клиентом.Захват сервер.Захват успешно выполняет команду отлично.До тех пор, пока здесь все работает, как я ожидал.

Проблема начинается, когда я пытался получить данные обратно из захвата.Захват реагирует сообщением awnser на каждую отправленную команду (может быть более одного сообщения).Но мой «Доступный байты» остается пустым.

Я знаю, что это будет трудно воспроизвести, потому что может потребоваться доступ к захвату.Но в конечном итоге я делаю что-то не так с настройкой объекта TCPIP.Я уже пытался использовать tcpclient, но с этой функцией отправка также не работает.

%% WORKING PART
%Preparing the gripper
gripper = tcpip('172.16.6.72',1000);
gripper.OutputBufferSize = 3000;
gripper.ByteOrder = 'littleEndian';
gripper.Timeout = 1;
fopen(gripper);

%Command
release = [170; 170; 170; 38; 8; 0; 0; 0; 160; 64; 0; 0; 210; 67; 0; 0];
release = hex2dec(release);
fwrite(gripper, uint8(release), 'uint8');
fclose(gripper);

%% NOT WORKING PART
readdata = fread(gripper,gripper.BytesAvailable);

Если «BytesAvailable» пуст, это имеет смысл, что это не работает.Нет данных нет чтения.Мой вопрос - это проблема с захватом или я что-то не так делаю с конфигурацией объекта tcpip?

...