Matlab поддерживает USB-связь? - PullRequest
2 голосов
/ 23 сентября 2009

Я хотел бы получить вход для моей программы MATLAB от источника USB. Это возможно? Как? Я также являюсь разработчиком оборудования, которое отправляет аудиопоток через USB. Есть ли способ отправить данные такого рода, чтобы их было легче получить?

Ответы [ 3 ]

3 голосов
/ 23 сентября 2009

Можно ли на вашем устройстве использовать виртуальный COM-порт USB? Тогда обычные вызовы через порт MATLAB ( обзор ) работают хорошо.

s1 = serial(port,'BaudRate',57600,'Parity','none','Stopbits',1, ...
       'Terminator','CR/LF'); % there are more properties to play with
fopen(s1);
fprintf(s1, 'text'); % appends terminator
resp = fscanf(s1);  % waits for terminator
fwrite(s1, [1 2 3 4 5], 'uint8'); % writes binary chars, no terminator
resp = fread(s1, s1.BytesAvailable, 'char'); % reads all available bytes as chars
fclose(s1);

Эти вызовы не нуждаются в наборе инструментов сбора данных, что приятно, и, по моему опыту, хорошо работает как с ASCII, так и с двоичными данными.

Однако на некоторых компьютерах мы обнаружили, что вызов FOPEN длился вечно. По какой-то причине это было связано с виртуальными COM-портами Bluetooth на некоторых ноутбуках. Итак, мы закончили писать действительно простую .NET DLL, которая обернула класс последовательного порта Microsoft .NET, а затем импортировала его в Matlab в качестве сервера ActiveX. Но, надеюсь, вышеизложенное позволит вам начать.

2 голосов
/ 23 сентября 2009

Либо у вас есть виртуальный последовательный порт, и вы используете пример выше, либо у вас есть какой-то API на каком-то языке, предпочтительно C / C ++ (если вы хотите быструю передачу данных) для драйвера устройства, который устанавливается, когда вы подключаете устройство.

1 голос
/ 23 сентября 2009

Возможно, вам понадобится Панель инструментов управления .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...