• 0
Авторизация  
M1shQa

Прием данных по 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу