Как отправить данные с одного Mac на другой Mac через профиль последовательного порта Bluetooth (SPP) - PullRequest
0 голосов
/ 19 октября 2019

Как отправить данные с одного Mac на другой Mac через Bluetooth Профиль последовательного порта

Сценарий

Я ищу способ отправки последовательных данных с одного Mac на другой через Bluetooth. Последовательная связь интегрирована во многие творческие платформы кодирования ( MaxMSP , Обработка , PureData , Unity , Grasshopper ),Я создаю инсталляцию, которая позволила бы другим художникам внести свой вклад в центральную среду на одной из предыдущих платформ. В большинстве моих собственных сред есть место для использования данных, считываемых через последовательный порт, традиционно через устройство, подключенное через USB (Arduino), или через какое-то соединение Bluetooth SPP, например HC-05 .

Мне также очень нравится возможность тайных выступлений и джемов с другими артистами, которые Bluetooth может себе позволить, но настройка локальной сети этого не делает.

В настоящее время у меня нетимел успех с pybluez на macOS, хотя я все еще делаю это. Я также не встречал ничего в API от Apple , которое бы соответствовало этой потребности, пока.

Мой вопрос:

  • Возможно ли для Mac рекламировать службу Bluetooth SPP?
  • , чтобы она отображалась как устройство с последовательным портом на другом подключенномMac?
  • Какие платформы доступны для достижения вышеуказанного?
  • Имеется ли текущий рабочий пример (например, MacOS High Sierra и далее)?

Идеальный рабочий процесс

  1. Mac 1 рекламирует службу Bluetooth SPP
  2. Mac 2 обнаруживает эту службу
  3. При подключении:
    1. и Mac 1, и 2 имеютдоступен новый последовательный порт.
    2. ИЛИ, Mac2 имеет новый доступный последовательный порт
  4. Этот последовательный порт виден другим программам, таким как перечисленные выше

Предостережения

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

Вопрос ограничен соединением двух компьютеров. Методы для подключения других устройств, таких как Arduino и Raspberry Pi , хорошо документированы, и решения для других ОС (windows / Linux) снова выходят за рамки вопроса.

Текущее решение идеально, поэтому macOS High Sierra и далее. Все, что работало в прошлом, но в настоящее время может не функционировать, я бы сказал, выходит за рамки.

Решение должно быть ориентировано на SPP, BLE UART выходит за рамки.

Я доволен возможностью того, что одному макинтошу может потребоваться перенаправить данные на какой-нибудь скрипт, например, Пример RFCOMM , хотя бы на одном компьютере должно быть соединение Bluetooth, видимое как устройство с последовательным портом.

1 Ответ

0 голосов
/ 22 октября 2019

Использование другого устройства в качестве канала

  • Кабель USB-TTL (обычно называемый FTDI), подключенный к HC-05 или подобный модуль Bluetooth SPP
  • Подключение Arduino и HC-05на каждый mac

При использовании Arduino последовательные данные с Mac просто необходимо будет передать на второй программный (или аппаратный, если имеется) последовательный выход , подключенный к Bluetoothmodule.

В этом случае bluetoothSerial уже будет определен как некоторое последовательное соединение в выбранном вами порядке.

void loop()
{
    while (Serial.available())
    {
        bluetoothSerial.write(Serial.read());
    }
}

Pros

Это относится ко всемпредостережения, упомянутые в вопросах

Минусы

Это зависит от внешнего аппаратного обеспечения. Затраты на это оборудование довольно небольшие, хотя (~ £ 20)

Рабочий процесс

  • Mac 1 подключает кабель FTDI / Arduino
  • Это открывает последовательный порт
  • Последовательные данные с Mac 1 затем направляются через устройство
  • Mac 2 подключает устройство Bluetooth, подключенное к Mac1
  • . Это создает последовательный порт через Bluetooth SPP
  • Mac 2 может открыть этот новый порт и начать чтение данных
...