• 0
MikeWuzHere

Прием данных по BT

Вопрос

Как организовать правильный прием сообщений через блютус? В стандартном classic примере нету приема. Попробовал метод.ReceiveData; - работает, но морозит (ожидаемо) приложение. Сделал отдельный поток (тут я совсем новичок) и первый раз сообщение получается нормально , код примерно такой:

Цитата

ReceiveBytes:=FSocket.ReceiveData;
ReceiveString := TEncoding.UTF8.GetString(ReceiveBytes);
Memo1.Lines.Add(ReceiveString);

Как постоянно принимать что-либо без фриза приложения, может есть примеры какие?Причем оно и в потоке не всегда срабатывает, но если срабатывает, то только один раз. Пробовал добавить конструкцию repeat until terminated; - не помогло.

Цитата

procedure Reciever.Execute;
 begin
 repeat
 Synchronize(Viv);
 until terminated;
 end;

Может поток нужно как то перезапускать? или использовать что то другое?

UPD. Нашел функцию ресив дата

Цитата

function ReceiveData: TBytes; overload; inline;
var
receives:string;
begin
Form1.DisplayR.Lines.Add('БУМ!');
ReceiveS := TEncoding.UTF8.GetString(ReceiveData);
Form1.DisplayR.Lines.Add(ReceiveS);
end;

Но проблема та же, после первого получения - приложение нормально отправляет текст, но не получает его.

Изменено пользователем MikeWuzHere

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 ответ на этот вопрос

  • 0

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

UPD. В примере Классик БТ апп нашел функцию  procedure TServerConnectionTH.Execute; КОТОРАЯ И ДОЛЖНА ОТВЕЧАТЬ ЗА ПРИЕМ ТЕКСТА, но она как и ожидалось не работает, вообще.

Может есть какой ивент On Receive?

 

Изменено пользователем MikeWuzHere

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу