Используйте коллбэки для коммуникации Bluetooth

Можно улучшить степень и гибкость устройства Bluetooth® при помощи событий и коллбэков. Событие имеет место после того, как условие соблюдают и может привести к одному или нескольким коллбэкам.

В то время как MATLAB® соединяется с bluetooth-устройством, можно использовать события, чтобы отобразить сообщение, данные об отображении, анализировать данные, и так далее. Можно управлять коллбэками через свойства коллбэка и функции обратного вызова. Все типы событий имеют связанное свойство коллбэка. Функциями обратного вызова являются функции MATLAB, которые вы пишете, чтобы удовлетворить вашим определенным потребностям приложения. Выполните коллбэк, когда конкретное событие будет иметь место путем определения имени функции обратного вызова как значение для связанного свойства коллбэка.

Свойства коллбэка

Свойства Bluetooth и функции, сопоставленные с коллбэками, следуют.

Свойство или функцияЦель
NumBytesAvailableКоличество байтов, доступных в чтение
BytesAvailableFcnБайты доступная функция обратного вызова
BytesAvailableFcnCountКоличество байтов данных, чтобы инициировать коллбэк
BytesAvailableFcnModeБайты доступный триггерный режим коллбэка
configureCallbackУстановите функцию обратного вызова и инициируйте условие для связи с bluetooth-устройством
ErrorOccurredFcnФункция обратного вызова инициирована ошибочным событием
UserDataСвойство общего назначения для пользовательских данных

Используя коллбэки

Этот пример использует модуль приемопередатчика Bluetooth HC-06, сконфигурированный в качестве устройства закольцовывания.

  1. Создайте функцию обратного вызова. Задайте функцию обратного вызова collectData это считывает полученные данные и хранит их в UserData свойство bluetooth объект.

    function collectData(src,evt)
        src.UserData = [src.UserData; read(src,src.BytesAvailableFcnCount)];
    end
    
  2. Создайте bluetooth объект hc06 для модуля HC-06.

    hc06 = bluetooth("HC-06",1)
    hc06 = 
      bluetooth with properties:
    
                     Name: "HC-06"
                  Address: "98D331FB3B77"
                  Channel: 1
        NumBytesAvailable: 0
          NumBytesWritten: 0
    
      Show all properties
    
    
  3. Сконфигурируйте свойства коллбэка считать и собрать данные каждый раз, когда пять байтов отправлены устройством и получены в MATLAB.

    configureCallback(hc06,"byte",5,@collectData);
  4. Очистите bluetooth объект устройства, когда вы закончите работающий с ним.

    clear hc06

Смотрите также

| |

Похожие темы