Отправлять / получать текст и данные на bluetooth (Com-порт) с помощью C#

#c# #bluetooth

#c# #bluetooth

Вопрос:

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

Вопрос: Есть ли какой-либо способ отправить сетевой поток на виртуальный последовательный порт, например, программирование сокетов в локальной сети?

Вопрос: Как мне получать данные через Bluetooth? Выполняется ли это в форме сетевого потока?

Вопрос: Какой самый быстрый способ отправки и получения данных по Bluetooth?

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

Комментарии:

1. Хороший набор вопросов, но лучше разбить их на три отдельных вопроса. Затем на каждый из них можно ответить независимо.

Ответ №1:

1) Не уверен насчет виртуальных портов Bluetooth, но я подозреваю, что вы можете просто использовать ReadFile / WriteFile (или асинхронные версии ‘Ex’) для дескриптора, возвращаемого CreateFile(), точно так же, как «обычный» последовательный порт. Если это так, вы можете обрабатывать дескриптор, (извините!), точно так же, как дескриптор сокета, вызываемый в клиентском socket connect() или серверном прослушивателе accept(). Таким образом, вы должны иметь возможность использовать выделенный поток, процедуру ввода-вывода или порты завершения ввода-вывода для связи с виртуальным портом.

Я уже делал нечто подобное раньше, но с Delphi и «настоящим» последовательным портом и клиентским сетевым подключением. Я использовал процедуру завершения ввода-вывода, где класс ‘IOHandler’ был перенесен в процедуру завершения в поле ‘hEvent’. Классы последовательного порта и клиентского сокета были потомками IOHandler, поэтому для обоих работал один и тот же код процедуры завершения ввода-вывода. Это сработало нормально, (в конечном итоге:). Я не знаю ни одной причины, по которой это не работало бы нормально на C #.

2) Опять же, не забудьте о виртуальных портах Bluetooth. Учитывая, что многие реализации Bluetooth могут предоставлять эти виртуальные COM-порты в качестве интерфейса, то транспорт, безусловно, должен быть «октетным потоком», таким же, как TCP или «реальный» COM-порт.

3) В Windows? Я подозреваю, что порты завершения ввода-вывода. Вероятно, это не имеет большого значения, потому что пропускная способность Bluetooth не так велика по сравнению с тем, что может обрабатывать Windows.

Rgds, Мартин

Ответ №2:

возможно, это поможет вам в библиотеке SMS mCore ™ .NET