Передача данных по интерфейсу Bluetooth

Можно считать и записать оба текстовых данные (базирующийся ASCII) и двоичные данные. Для текстовых данных используйте функции fprintf и fscanf. Для двоичных данных используйте функции fwrite и fread.

Этот пример использует робота LEGO Mindstorm NXT с RemoteName C3PO, который вы обнаружили в Viewing Bluetooth Device Properties. Дополнительную информацию см. в том разделе по свойствам просмотра и обнаружению устройств.

Связываться с устройством NXT:

  1. Определите, какие устройства Bluetooth® доступны от вашего компьютера.

    instrhwinfo('Bluetooth')
  2. Просмотрите список устройств с помощью свойства RemoteNames.

    ans.RemoteNames
  3. В этом случае C3PO является удаленным именем робота NXT и показан в выводе. Отобразите информацию об этом устройстве с помощью интерфейса Bluetooth и свойства RemoteName.

    instrhwinfo('Bluetooth','C3PO')

    Instrument Control Toolbox™ отображает информацию об устройстве.

  4. Создайте объект Bluetooth под названием bt с помощью канала 1 устройства NXT.

    bt = Bluetooth('C3PO', 1);
  5. Соединение с устройством.

    fopen(bt)
  6. Отправьте сообщение в удаленное устройство с помощью функции fwrite.

    В этом примере определенные символы отправляются в устройство, которое понимает это конкретное устройство (робот NXT C3PO). Можно записать в устройство, затем запросить объект, как показано здесь, чтобы видеть, что значения были отправлены.

  7. Считайте данные из удаленного устройства с помощью функции fread.

    Вы видите, что ValuesSent является 4, которые являются этими четырьмя символами, отправленными в fwrite (2,0,1,155). Это также показывает, что байты 35 доступны. Таким образом, можно затем использовать функцию fread и дать ей 35 байтов, чтобы считать символы из удаленного устройства.

    Устройство возвращает символы, показанные сюда. Возвращенными символами является C3PO, который является RemoteName устройства. Это было ответом на указания, которые были отправлены к нему. См. документацию для своего устройства для этого типа специфичной для устройства информации о коммуникации.

  8. Вымойтесь путем удаления и очистки объекта.

    fclose(bt);
    clear('bt');

Примечание

Этот пример использует функции fwrite и fread. Чтобы считать и записать основанные на тексте данные, используйте функции fprintf и fscanf.

Примечание

Можно сделать асинхронное чтение и запись данных с помощью интерфейса Bluetooth. Это подобно тем же операциям с помощью Последовательного интерфейса Instrument Control Toolbox. Для получения дополнительной информации смотрите Асинхронную Запись и Операции чтения.

Другая функциональность

Следующие функции могут использоваться с объектом Bluetooth.

ФункцияЦель
binblockwriteЗапишите binblock данные в инструмент
fgetlПрочитайте строку текста от инструмента и отбросьте терминатор строки
flushinputУдалите данные из входного буфера
fopenОбъект интерфейса Connect оснастить
freadСчитайте двоичные данные из инструмента
fwriteЗапишите двоичные данные в инструмент
methodsИмена метода класса и описания
readasyncСчитайте данные асинхронно из инструмента
scanstrСчитайте данные из инструмента, отформатируйте как текст, и синтаксический анализ
binblockreadСчитайте binblock данные из инструмента
fcloseОтключите интерфейсный объект от инструмента
fgetsПрочитайте строку текста от инструмента и включайте терминатор строки
flushoutputУдалите данные из буфера вывода
fprintfЗапишите текст в инструмент
fscanfСчитайте данные из инструмента и отформатируйте как текст
queryЗапишите текст в инструмент и считайте данные из инструмента
recordДанные записи и информация о событии к файлу
stopasyncОстановите асинхронные операции чтения и операции записи

Для получения дополнительной информации об этих функциях, см. документацию функций.

Примечание

Чтобы получить список опций, можно использовать на функции, нажать клавишу Tab после ввода функции на командной строке MATLAB®. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.